【问题标题】:R - create column based on words in another columnR - 根据另一列中的单词创建列
【发布时间】:2018-06-13 19:52:51
【问题描述】:

有没有办法根据另一列中的单词在 R 数据框中创建一个新列?

例如我有一个“颜色”列,其中有“蓝色 1”、“蓝色 2”,直到“蓝色 6”,然后我有 6 种其他颜色,后面有自己的一组数字。有没有办法创建一个新列,只写“蓝色”、“绿色”、“黄色”等,而不用自己写出每种颜色?

color2 <- ifelse(color=="Blue 1", "Blue",
    ifelse(color=="Blue 2", "Blue",
    ifelse(color=="Blue 3", "Blue",
    ifelse(color=="Blue 4", "Blue",
    ifelse(color=="Blue 5", "Blue",
    ifelse(color=="Blue 6", "Blue",
                    NA  ))))

显然,我会继续使用其他颜色,但有没有更简化的方法来做到这一点?

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以通过在sub 中创建一个pattern 来删除数字后跟空格,并将其替换为空白(""

    sub("\\s+\\d+", "", color)
    

    或者使用str_extract,只提取字符串开头(^)的一个或多个字母

    library(stringr)
    str_extract(color, "^[A-Za-z]+")
    

    【讨论】:

    • 完美!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 2021-11-18
    • 1970-01-01
    相关资源
    最近更新 更多