我是否可以只替换一个字符串,尽管在R中存在其他具有相似值的字符串

问题描述 投票:0回答:1

我正在学习R。我想将数据帧的列中的“ 0”字符串替换为NA值。此列中还有其他字符串,其中包含“ 0”值。

我用过:

For(n in 1:nrow(d2)) {
  If(grepl(“0”, d2[n,10]) == TRUE)
  d2[n,10] <- NA

并且它可以工作,但是它用其他信息替换了每个带有“ 0”的字符串(该列是一个很大的问题),许多其他字符串中的其他信息中都带有“ 0”,但是我不想替换它们,只是在单元格中仅包含“ 0”的代码。

[如果有人知道如何用“ 0”值专门替换单元格,请帮助:(

r string replace na grepl
1个回答
0
投票

grep/grepl被矢量化。因此,我们可以直接在列上创建逻辑向量并将其更改为NA

d2[,10][grepl("^0$", d2[,10])] <- NA

或进行固定匹配

d2[,10][d2[,10] == '0'] <- NA
© www.soinside.com 2019 - 2024. All rights reserved.