Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于列名在R中追加数据帧_R_Dataframe - Fatal编程技术网

基于列名在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 这可能吗?是的,其实

我对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

这可能吗?

是的,其实很简单:

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