Rに特定の列だけ読み込む方法。
こちらのほうは速い。
基本はscan関数を用いる。
例えば、CSVの場合、4列のデータの1列目と4列目を抜き取る場合は、
data<-scan(sep=",",file="test.txt",what=list("",NULL,NULL,""))
下の例は1列目と3列目だけを抜き出す。
retusu<-read.csv(file="test.txt",nrow=1) #1列目と3列目だけ抜き取る。 nukitori<-c(1,3) str<-0 str<-rep("NULL",length(retusu)) str[nukitori]="\"\"" str<-paste(collapse=",",str) str2<-paste(sep="","scan(file=\"test.txt\",sep=\",\",what=list( ",str,"))") eval(parse(text=str2))
再掲載:
Rで特定の列だけ読み取る方法。本当は、awkやcutで処理した後
Rにいれるのが一番ベストだが、
それができない場合。
例えば、
「数字,100000文字の日本語文字列,数字」
のように、普通にはメモリーオーバーで
読み取れないようなファイルのとき、1列目と
3列目だけ読みだしたいときなど役立つかもしれない。