2

我有一个具有以下结构的 txt 文件:

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

第一行代表标题,数据由制表符分隔。我需要以DATA1一种可以逐个遍历元素的方式将 的元素放入列表或向量中。

此外,我需要提取DATA2for each的元素NAME并将它们放入列表中,以便我可以单独遍历,例如获取NAMEb 的元素 8,9 并将其放入列表中。(请注意,第三条记录在列表中DATA27和逗号之间有一个空格)。

我怎么能做到这两个操作?我知道我可以使用read.table$访问单个元素,但我被卡住了。

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

1 回答 1

6

运行此演示并查看、 和-- 的结构n,这应该可以帮助您开始:d1d2

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 回答