【问题标题】:Combine two data frames and remove duplicate columns合并两个数据框并删除重复列
【发布时间】:2011-11-18 10:44:45
【问题描述】:

我想cbind 两个数据框并删除重复的列。例如:

df1 <- data.frame(var1=c('a','b','c'), var2=c(1,2,3))
df2 <- data.frame(var1=c('a','b','c'), var3=c(2,4,6))

cbind(df1,df2) #this creates a data frame in which column var1 is duplicated

我想创建一个包含var1var2var3 列的数据框,其中var2 列不重复。

【问题讨论】:

    标签: r duplicate-data


    【解决方案1】:

    merge 将完成这项工作。

    尝试:

    merge(df1, df2)
    

    【讨论】:

    • 和上面的例子没有矛盾,但是如果var1有偏差值,这些情况会被merge删除;例如试试df2&lt;-data.frame(var1=c('a','b','d'),var3=c(2,4,6))。这与变量名称重复但相应数据不重复的情况有关。
    【解决方案2】:

    如果您继承了其他人的数据集并最终以某种方式出现重复的列并想要处理它们,这是一个很好的方法:

    for (name in unique(names(testframe))) {
      if (length(which(names(testframe)==name)) > 1) {
        ## Deal with duplicates here. In this example
        ## just print name and column #s of duplicates:
        print(name)
        print(which(names(testframe)==name))
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 2017-06-05
      • 1970-01-01
      相关资源
      最近更新 更多