我有两个数据框:
data <- data.frame(ID1 = c("D1","D1","D1","D1","D2","D2"),
ID3 = c("A","A","D","D","B","C"),
Attribute = c("KL","KM","KL","KM","AB","AB"),
Value = c(2,2,3,3,5,7))
data_new <- data.frame(ID1 = c("D1","D1","D2","D2"),
ID2 = c("D1-1","D1-1","D2-1","D2-1"),
Attribute = c("KL","TA","AB","AA"))
现在我想在新数据框中合并Values
和ID3
数据。另外我想删除一些属性并添加新属性。输出应如下所示:
expected_output <- data.frame(ID1 = c("D1","D1","D1","D1","D2","D2","D2","D2"),
ID2 = c("D1-1","D1-1","D1-1","D1-1","D2-1","D2-1","D2-1","D2-1"),
ID3 = c("A","A","D","D","B","B","C","C"),
Attribute = c("KL","TA","KL","TA","AB","AA","AB","AA"),
Value = c(2,2,3,3,5,5,7,7))
任何人都可以帮我这个吗?
到目前为止我尝试的是一个简单的合并。
mergeddata <- merge(data_new,data,
by.x = c("ID1"),
by.y = c("ID1"))
结果看起来很有希望ID1 = D2
我只需要删除列Attribute.x
“。但是ID = D1
不是我想要的。第5-8行不应该在新的桌子了。
任何帮助?
答案 0 :(得分:0)
我认为您可以尝试以下方法:
mergeddata <- merge(data_new ,unique(data[, c("ID1", "ID3", "Value")]), by = "ID1")