Могу ли я заменить только одну строку, несмотря на существование других строк с аналогичными значениями в R - PullRequest
1 голос
/ 29 мая 2020

Я изучаю 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», помогите пожалуйста: (

1 Ответ

0 голосов
/ 29 мая 2020

grep/grepl векторизован. Итак, мы можем создать логический вектор прямо в столбце и изменить его на NA

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

Или выполнить фиксированное соответствие

d2[,10][d2[,10] == '0'] <- NA
...