我有一些带有数据的csv文件。我加载了它们:
tbl = list.files(pattern="*.csv")
list_of_data = lapply(tbl, read.csv)
数据如何:
首先是csv:
Exp1 Exp2 Exp3
Morgan.1 11 23 22
Catrine.2 14 33 55
Markus.1 ger 32 12
第二个csv:
Exp1 Exp2 Exp3
Morgan.2 17 nex 23
Catrine.1 15 23 15
Markus.7 11 ger 11
我想制作这些数据的单个csv文件。如何在不同的csv文件中找到Morgan的数据(忽略点之后的内容)并将它们放在一个文件中。
首选输出:
Exp1 Exp2 Exp3 Exp1 Exp2 Exp3
Morgan 17 nex 23 11 23 22
Catrine 14 33 55 15 23 15
我很确定我必须制作一个循环来收集所有数据,但让我知道如何为单个名称等做。
这就是我在一张表中获得所有“名字”的列表所做的:
all_data = do.call(rbind.fill, list_of_data)
data_rd <- subset(transform(all_data, X = sub("\\..*", "", X)),
!duplicated(X))
答案 0 :(得分:1)
我会做这样的事情:
首先,我使用`do.call(rbind,...)
dt1 = read.table(text=' Exp1 Exp2 Exp3
Morgan.1 11 23 22
Catrine.2 14 33 55
Markus.1 ger 32 12',header=TRUE,stringsAsFactors=FALSE)
dt2 = read.table(text='Exp1 Exp2 Exp3
Morgan.2 17 nex 23
Catrine.1 15 23 15
Markus.7 11 ger 11',header=TRUE,stringsAsFactors=FALSE)
DT = do.call(rbind,list(dt1,dt2))
然后我使用row.name:
上的一些正则表达式提取“morgan”行DT[grep('Morgan',rownames(DT)),]
Exp1 Exp2 Exp3
Morgan.1 11 23 22
Morgan.2 17 nex 23