【发布时间】:2021-07-12 21:16:33
【问题描述】:
我目前参与 R 中的数据操作任务,并尝试在所选列上组合两个数据集(= 使用主键和外键 - Column2)
Column1 <- c("Name1", "Name2", "Name3", "Name4")
Column2 <- c("ID1", "ID2", "ID3", "ID4")
Column3 <- c(4, 5, 6, 7)
Column4 <- c(8, 9, 10, 11)
Column5 <- c(1, 2, 3, 4)
table1 <- data.frame(Column1, Column2, Column3, Column4, Column5)
Column1 <- c("Name1", "Name2", "Name3", "Name4")
Column2 <- c("ID4", "ID5", "ID6", "ID7")
Column3 <- c(22, 33, 44, 66)
Column4 <- c(66, 55, 77, 77)
Column5 <- c(1, 2, 3, 4)
table2 <- data.frame(Column1, Column2, Column3, Column4, Column5)
table3 <- full_join(table1, table2, by = "Column2")
我选择了完全连接函数,因为它可能有助于解决我的任务,但遇到了一个问题:使用 full_join 函数 R 显示第二个表中的 Column1.y 列,而不是列出该列的值Column.1.x
例如,R 产生:Column.1.x 然后是 Column2, Column3.x, Column4.x, Column5.x,在 Column5.x 旁边我要显示 Columns "Column3.y", "Column4.y ", "Column5.y", 但 "Column.1.y" 显示在 Column5.x 之后,而不是向下显示到列出所有名称的 "Column.1.x"。
我该如何解决? :)
【问题讨论】:
-
欢迎来到stackoverflow。为了获得足够的支持,请提供一个最小的可重现示例stackoverflow.com/help/minimal-reproducible-example>。我猜你需要另一个连接(可能是 inner_join 或 left_join)。
-
如果没有reprex,就很难回答,但是您可以不添加一个步骤来取消选择您的Column.1.y 吗?类似于:full_join(x,y) %>% select(-Column1.y)
-
DarwinsBeard,感谢您的帮助!您列出的代码确实删除了整个列“Column1.y”,但将这一列的值显示为“Column1.x”的值也很重要..
-
图片不是共享数据/代码的正确方式。以更易于复制的可复制格式添加它们。阅读how to give a reproducible example。
标签: r dataframe data-manipulation