Rに特定の列だけ読み込む。

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列目だけ読みだしたいときなど役立つかもしれない。