【问题标题】:How do I remove duplicated columns from a data frame in R?如何从 R 中的数据框中删除重复的列?
【发布时间】:2020-02-16 21:12:10
【问题描述】:

我有一个包含许多重复列的 data.frame,例如:

df = data.frame(a=1:10, b=1:10, c=2:11)

是否有删除重复 的函数(base R 或 dplyr)? unique() 删除重复行。

How to remove duplicated column names in R? 不同,我的列已经有不同的名称,但值是相同的。

【问题讨论】:

  • 这实际上不是上面提到的重复答案,因为这里没有关于列名的内容,而是重复的列内容,可能有不同的名称。
  • 这能回答你的问题吗? Identifying duplicate columns in a dataframe
  • 这里的答案比那个问题中的答案要好@Emmanuel-Lin

标签: r


【解决方案1】:

一个选项是

df[!duplicated(as.list(df))]

或者

df[!duplicated(unclass(df))]

【讨论】:

  • 不应该是:df <- as.data.frame(df); df[, !duplicated(as.list(df))](因为df 在示例中是一个矩阵)
  • @JBGruber。如果dfmatrix,那么您可能需要!duplicated(asplit(df, 2))
  • @JBGruber。在这里,它是一个data.frame,因为sleep 是一个data.frame,而cbind 将根据结构调度cbind.data.frame,但如果OP 使用cbind(a = sleep[,1], b = sleep[,1], c = 1:20),那么它将是一个matrix它正在调度不同的方法
  • 啊! sleep 是内置数据集!我不知道。
猜你喜欢
  • 2012-11-13
  • 2015-11-03
  • 2019-11-19
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
相关资源
最近更新 更多