【问题标题】:Removing Column from Dataframe that contains a string in R从包含 R 中的字符串的数据框中删除列
【发布时间】:2015-07-04 12:25:04
【问题描述】:

我正在尝试创建一个允许人们输入数据的闪亮应用。为了使数据可用,我试图删除任何在数据帧 df 中具有字符串实例的列。这个任务在 python 中非常简单,但在 R 中变得非常困难。

我的第一次尝试是

df[ ,colSums(apply(df, MARGIN=c(1,2),FUN=is.character))==0]

问题是应用隐式调用 as.matrix (据我了解)它将生成一个具有混合值的数据框,因此如果任何列中有字符串,is.character 会删除每一列!

我尝试了几个循环来遍历每个单元格并尝试删除一列,但这也失败了。

任何帮助或指示都会非常有帮助!

【问题讨论】:

    标签: r string parsing character frames


    【解决方案1】:

    您不能有混合类型的列(至少在 R 中没有)。所以一列可以有数字、字符或因子值,但不能有来自不同类型的值。所以你只需要检查列是否是字符,而不是每个值。试试:

    df <- data.frame(c1 = 1:10, c2 = letters[1:10], c3 = sample(10, 10), c4 = letters[sample(10,10)], stringsAsFactors = FALSE)
    df[!sapply(df, is.character)]
       c1 c3
    1   1  4
    2   2 10
    3   3  5
    4   4  6
    5   5  7
    6   6  3
    7   7  9
    8   8  8
    9   9  2
    10 10  1
    

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 2021-10-05
      • 2011-03-28
      • 1970-01-01
      相关资源
      最近更新 更多