我在调查问卷中有几个数据文件,我想合并"评级"每个文件的列都换成新的。但是,并非每个数据文件都包含相同的项目,因此我希望根据项目名称进行字符串匹配。
以下是三个可能文件的缩小示例:
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)。我不明白这种重复的模式。
我也不太了解这些功能的结构,所以我确定问题出在那里......
有人可以向我解释这些功能的确切含义吗?最后,我将合并三个以上的文件。
我希望我的例子足够清楚?
谢谢!