基于列名在R中追加数据帧
我对R比较陌生,所以请容忍我。我有一个数据帧列表,我需要将这些数据帧组合成一个数据帧。因此:基于列名在R中追加数据帧,r,dataframe,R,Dataframe,我对R比较陌生,所以请容忍我。我有一个数据帧列表,我需要将这些数据帧组合成一个数据帧。因此: dfList <- list( df1 = data.frame(x=letters[1:2],y=1:2), df2 = data.frame(x=letters[3:4],z=3:4) ) 我想让他们结合常用列,并添加任何尚未存在的内容。结果将是: final result x y z 1 a 1 2 b 2 3 c 3 4 d 4 这可能吗?是的,其实
dfList <- list(
df1 = data.frame(x=letters[1:2],y=1:2),
df2 = data.frame(x=letters[3:4],z=3:4)
)
我想让他们结合常用列,并添加任何尚未存在的内容。结果将是:
final result
x y z
1 a 1
2 b 2
3 c 3
4 d 4
这可能吗?是的,其实很简单:
library(dplyr)
df_merged <- bind_rows(dfList)
df_merged
x y z
1 a 1 NA
2 b 2 NA
3 c NA 3
4 d NA 4
只需使用
do.call
和rbind.fill
do.call(rbind.fill,dfList)
x y z
1 a 1 NA
2 b 2 NA
3 c NA 3
4 d NA 4
您可以使用
base
函数merge()
:
或者使用带有功能的dplyr
软件包full\u join
:
dplyr::full_join(dfList$df1, dfList$df2, by = "x")
# x y z
# 1 a 1 NA
# 2 b 2 NA
# 3 c NA 3
# 4 d NA 4
它们都将两个data.Frame中的所有内容连接起来
希望这对你有用。我知道我想得太多了,太努力了。谢谢您。
do.call(rbind.fill,dfList)
x y z
1 a 1 NA
2 b 2 NA
3 c NA 3
4 d NA 4
merge(dfList$df1, dfList$df2, by = "x", all = TRUE)
# x y z
# 1 a 1 NA
# 2 b 2 NA
# 3 c NA 3
# 4 d NA 4
dplyr::full_join(dfList$df1, dfList$df2, by = "x")
# x y z
# 1 a 1 NA
# 2 b 2 NA
# 3 c NA 3
# 4 d NA 4