【发布时间】:2017-05-24 05:59:00
【问题描述】:
我有几个 csv 文件,每个文件大约有 50,000 行。所有文件都有名为id 和PositionX 的列。我只想在 id 和 PositionX 相同的情况下绑定它们。如果不一样,只需放一个 NA。我正在使用以下内容:
datlist<-list(Cfour,Cfive,Csix,Cseven,Cten,Ctwelve,Cthirteen,Cfourteen,Cfifteen,Csixteen,Cseventeen,Cnineteen,Ctwoone,Ctwofour,Ctwosix,Ctwonine,Cthreethree,Cthreeseven,Cfourty)
ss<-Reduce(function(df1,df2) merge(df1,df2,by=c("id", "PositionX"),all=T),datlist)
例如文件 1 有,
id PositionX val1
1 5 4.2
2 8 4.3
文件 2 有
id PositionX val2
1 5 6.3
2 8 9.3
文件 3 有
id PositionX val3
0 5 6.2
2 8 9.3
我想拥有
id PositionX val1 val2 val3
0 5 NA NA 6.2
1 5 4.2 6.3 NA
...
有没有办法快速做到这一点?
【问题讨论】:
-
你检查过
full_join和dplyr包吗? -
这有点不清楚。您想要合并多个 CSV 文件(数据框),其中包含 id、positionX 和其他数据。还有什么数据?如果两个以上的 csv 文件具有相同的 id、positionX 变量怎么办?输出数据中有多少个变量?您只是想从长格式转换为宽格式吗?显示一些示例输入和输出。
-
@Spacedman 我希望这很清楚。
-
@Jamil 是的!更清晰。