匹配和合并R中几个数据帧的列

时间:2017-05-02 13:09:51

标签: r

我在调查问卷中有几个数据文件,我想合并"评级"每个文件的列都换成新的。但是,并非每个数据文件都包含相同的项目,因此我希望根据项目名称进行字符串匹配。

以下是三个可能文件的缩小示例:

DF1:

word    rating
P_1          1
P_2          1
P_3          1
A_1          X 

DF2:

word    rating
P_2         2
P_3         2
P_4         2
A_3         Y
A_4         Z

DF3:

word    rating
P_2         3
P_4         3

我想要的输出是:

word    rating_df1    rating_df2    rating_df3
P_1              1            
A_1              X 
P_2              1             2             3
P_3              1             2
A_3                            Y
P_4                            2             3   
A_4                            Z

我阅读了类似问题的答案,最后运行了以下代码:

df1 <- read.table('1.txt', header=TRUE, sep="\t")
df2 <- read.table('2.txt', header=TRUE, sep="\t")
df3 <- read.table('3.txt', header=TRUE, sep="\t")

merged = Reduce(function(x,y) merge(x,y, all = TRUE, by = "word"), list(df1, df2, df3))

这确实给出了关于如何排列列的所需输出。但是,它有时会为在多个文件中评级的项目重复行(例如,P_2)。我不明白这种重复的模式。

我也不太了解这些功能的结构,所以我确定问题出在那里......

有人可以向我解释这些功能的确切含义吗?最后,我将合并三个以上的文件。

我希望我的例子足够清楚?

谢谢!

0 个答案:

没有答案