【问题标题】:Comparing Dataframe column names in R比较 R 中的数据框列名
【发布时间】:2019-03-17 09:52:47
【问题描述】:

我正在尝试比较两个数据帧之间的列名并修改后一个数据帧中的列。

n = c(0, 1, 0) 
s = c(1, 0, 1)
b = c(1, 1, 1)
a = c(0, 0, 0)
c = c(1,3,2)
df1 = data.frame(n, s, b)
df2 = data.frame(n,s,a,c)

如何编写比较/合并 df1 和 df2 的语法,以便输出如下:

df1 output:
  n  s  b
1 0  1  1
2 1  0  1
3 0  1  1

df2 output:
  n  s  b  
1 0  1  0 
2 1  0  0
3 0  1  0

感谢您的帮助!

【问题讨论】:

    标签: r dataframe merge compare


    【解决方案1】:

    我们可以使用intersectsetdiff 来做到这一点

    #Drop columns from df2 which are not present in df1
    df2 <- df2[intersect(names(df1), names(df2))]
    
    #add columns which are present in df1 but not in df2 and assign it to 0
    df2[setdiff(names(df1), names(df2))] <- 0
    
    df2
    #  n s b
    #1 0 1 0
    #2 1 0 0
    #3 0 1 0
    

    【讨论】:

      猜你喜欢
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多