2

次の構造のtxtファイルがあります。

NAME     DATA1    DATA2
a        10       1,2,3
b        6        8,9
c        20       5,6,7 ,8

最初の行はヘッダーを表し、データはタブで区切られています。DATA1要素を 1 つずつトラバースできるように、要素をリストまたはベクトルに配置する必要があります。

DATA2また、 for eachの要素を抽出NAMEしてリストに入れる必要があるため、個別にトラバースできます。たとえば、NAMEb の要素 8,9 を取得してリストに入れます。(3 番目のレコードには、リスト内のと コンマのDATA2間にスペースがあることに注意してください)。7

両方の操作を行うにはどうすればよいですか? read.table個々の要素にアクセスするために andを使用できることはわかっています$が、立ち往生しています。

info<-read.table("table1", header=FALSE,sep="\t")
namelist<-list(info$NAME)
4

1 に答える 1

6

このデモを実行してn、 、d1、およびd2-- の構造を見てください。

df = read.table(text="NAME\tDATA1\tDATA2
a\t10\t1,2,3
b\t6\t8,9
c\t20\t5,6,7 ,8", 
                header= TRUE, 
                stringsAsFactors=FALSE,
                sep='\t')

n  = df$NAME
d1 = df$DATA1
d2 = lapply(strsplit(df$DATA2, ","), 
            as.numeric)
names(d2) = n

d2['b'][1] # access first element in list named 'b'

lapply(d2, FUN=mean) # mean of all rows in d2
于 2012-07-13T13:06:44.137 に答える