【问题标题】:Use a character vector to extract columns from a dataframe in R使用字符向量从 R 中的数据框中提取列
【发布时间】:2021-11-29 10:39:28
【问题描述】:

我有以下字符向量

Group1
[1] "c(\"Ca\", \"Mg\", \"SO4\", \"HCO3\", \"NO3\", \"Cr\", \"Ni\", \"Sr\")"
> class(Group1)
[1] "character"

我希望 το 使用 Group1 的元素(例如“Ca”)根据 colnames() 函数从数据帧 (df) 中提取列。

colnames(df) <- Group1

我试过了,但是没有用。我的猜测是我需要删除“”符号。

【问题讨论】:

    标签: r dataframe character


    【解决方案1】:

    首先你需要解析你的角色,然后进行评估。

    Group1 <- "c(\"Ca\", \"Mg\", \"SO4\", \"HCO3\", \"NO3\", \"Cr\", \"Ni\", \"Sr\")"
    
    Group1b <- parse(text = Group1)
    Group1c <- eval(Group1b)
    

    接收

    > Group1c
    [1] "Ca"   "Mg"   "SO4"  "HCO3" "NO3"  "Cr"   "Ni"   "Sr" 
    

    *编辑 我忘了问,为什么这会以文本形式存储?如果你输入这个,你实际上需要Group1 &lt;- c("Ca", "Mg", "SO4", "HCO3", "NO3", "Cr", "Ni", "Sr")

    【讨论】:

      【解决方案2】:

      colnames 用于设置/重命名列名,因为您提到要从 data.frame 中提取 Group1 中的列,您可能想要这样:

      Group1 <- c("Ca", "Mg", "SO4", "HCO3", "NO3", "Cr", "Ni", "Sr")
      df[names(df) %in% Group1]
      

      【讨论】:

        猜你喜欢
        • 2021-12-03
        • 2020-08-07
        • 1970-01-01
        • 2021-02-01
        • 2022-11-16
        • 2022-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多