我花了很多时间环顾四周,无法找到解决我具体问题的方法。我真的很感激任何帮助。
我有一个csv文件列表,这些文件都有一个包含物种名称的列(在下面的例子中标题为“行”)。每个csv文件还有一系列样本,其中一些样本在所有csv文件中都是唯一的,其中一些存在于许多csv文件中。我正在寻找一种方法来合并所有这些csv文件在“行”变量,同时也总结出现在多个csv文件中的任何样本。
举个例子:
dfrm_1 <- data.frame(a = c("species1", "species2", "species3", "species9"), b= c(100,5,24,100), c=c(52,151,15,100))
dfrm_2 <- data.frame(a = c("species2", "species4", "species6", "species9"), b= c(4,2,500,100), c=c(67,98,153,100))
names(dfrm_1) <- c("Row", "S1", "S2")
names(dfrm_2) <- c("Row", "S2", "S4")
mDF <- merge(dfrm_1, dfrm_2, by="Row", all=TRUE)
当合并两个数据帧时,样本2(S2,它存在于两个数据帧中)变为S2.x和S2.y.我不想添加字母后缀的合并函数,而是将两列相加。
所需的输出是:
df_merge <- data.frame(a=c("species1", "species2", "species3", "species9", "species4", "species6"), b=c(100,5,24,100,0,0), c=c(52,155,15,200,2,500), d=c(0,67,0,100,98,153))
names(df_merge) <- c("Row", "S1", "S2", "S4")
注意:编辑以扩展示例并包含所需的输出
答案 0 :(得分:1)
但是,您已经关闭,而不是合并要附加数据的数据。下面的代码可以为您提供所需的信息。
library(dplyr)
rbind_list(dfrm_1, dfrm_2) %>%
group_by(Row) %>%
mutate_each(funs(sum(., na.rm = TRUE))) %>%
unique()