我有一个我称之为"鱼"的数据框.
数据框有3个不同的变量.其中一个变量称为"物种".
有些物种以字母M开头.我想改变以字母M缺失(NA)开头的物种的所有值.
当你做整个物种的名字时,我知道如何将它改为NA,但你怎么做只用字母M开头的物种呢?
我试过这个:
fish$species[fish$species=="^M_"] <- NA
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有人可以帮忙吗?
您可以使用替换功能is.na<-()沿startsWith().
is.na(fish$species) <- startsWith(fish$species, "M")
Run Code Online (Sandbox Code Playgroud)
根据R文档help(startsWith),
startsWith()相当于但速度要快得多grepl("^<prefix>", x),其中prefix不包含特殊的正则表达式字符.
上面的代码假定一个字符列.对于因子列,您可以更改适当的级别.
is.na(levels(fish$species)) <- startsWith(levels(fish$species), "M")
Run Code Online (Sandbox Code Playgroud)
另一种方法是更换levels<-(),NA用于右侧的更换.
levels(fish$species)[startsWith(levels(fish$species), "M")] <- NA
Run Code Online (Sandbox Code Playgroud)
请注意,grepl()如果您愿意,绝对可以使用,但这个问题似乎是使用新startsWith()功能的一个很好的例子.
另请注意,所有这些都已在iris数据集上成功测试.
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |