1

R に csv ファイルをインポートして R データセットを作成するとします。現在、このファイルには数値、文字、データ、およびパーセント値が含まれています。インポートするデータが Raw ファイルと同じデータ形式であることを確認する方法。

SAS では、通常、インポート中にデータをフォーマットするこのオプションがあります。これが例です

data test ;  
           infile "c:\mydocument\raw.csv" 
           delimiter = ',' MISSOVER DSD lrecl=32767
           firstobs=2 ;

           input 
              varA         
              varB         : $50.
              varC        : date9.
              varD      : Percent5.2
              varE      : $20.
;
run;

Rに同じ種類のアクションを実行できるオプションはありますか? 誰かが私にそれについていくつかの参照を与えることができれば、それは素晴らしいことです!

以下の回答に基づく例:

Local<-read.csv("C:\\Users\\Raw.csv",colClasses = c("character","character","Date","character","character","character","character","character","character","character","numeric","numeric", "numeric","numeric"),row.names=1)

Dasonの例に基づいて、次のコードを使用しました。しかし、次のエラーが発生します。このエラーが発生する理由を教えていただけませんか? 大変お世話になりました。

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  scan() expected 'a real', got '.'

ありがとうございました。Rgds。

4

2 に答える 2

4

read.csv の colClasses パラメータが必要です。から?read.csv:

colClasses: character.  A vector of classes to be assumed for the
          columns.  Recycled as necessary, or if the character vector
          is named, unspecified values are taken to be ‘NA’.

          Possible values are ‘NA’ (the default, when ‘type.convert’ is
          used), ‘"NULL"’ (when the column is skipped), one of the
          atomic vector classes (logical, integer, numeric, complex,
          character, raw), or ‘"factor"’, ‘"Date"’ or ‘"POSIXct"’.
          Otherwise there needs to be an ‘as’ method (from package
          ‘methods’) for conversion from ‘"character"’ to the specified
          formal class.

          Note that ‘colClasses’ is specified per column (not per
          variable) and so includes the column of row names (if any).

いくつかの使用例

dat <- data.frame(num = 1:4, ch = letters[1:4])
write.csv(dat, file = "test.csv")
read.csv("test.csv", 
          colClasses = c(NA, "numeric", "character"),
          row.names = 1)
#  num ch
#1   1  a
#2   2  b
#3   3  c
#4   4  d
out <- read.csv("test.csv", 
                 colClasses = c(NA, "numeric", "character"),
                 row.names = 1)
str(out)
#'data.frame':  4 obs. of  2 variables:
# $ num: num  1 2 3 4
# $ ch : chr  "a" "b" "c" "d"
于 2012-09-23T06:03:36.437 に答える
1

2 番目のエラー メッセージに関しては.、特殊文字として使用されている可能性があります。おそらく、データセット内のどこに NA があるかを示すためのものです。na.strings引数を使用して、read.csvNA と見なされる文字列を指定できます。

于 2012-09-23T11:04:00.227 に答える