Как заменить несколько вхождений нескольких значений в векторе - PullRequest
1 голос
/ 24 марта 2019

У меня есть столбец в пределах data.frame с несколькими вхождениями каждого из его уникальных значений, которые мне нужно заменить различными значениями. Как мне этого добиться?

Я создал фактор уникальных значений и попытался заменить каждый элемент циклическим переключением уровней факторов с помощью функции gsub

nf <- factor(1, 2, 3, 4, 5, 6)
let <- c("a", "b", "c", "d", "e", "f")

dat <- c(1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6)

dat <- for (i in levels(nf)){
gsub(i,let[i], dat
}

Я ожидал вывода:

"a" "b" "b" "c" "c" "c" "d" "d" "d" "d" "e" "e" "e" "e" "e" "f" "f" "f" "f" "f" "f" 

но вместо этого я получаю: NULL.

1 Ответ

2 голосов
/ 24 марта 2019

Вы только после

let[dat]
#[1] "a" "b" "b" "c" "c" "c" "d" "d" "d" "d" "e" "e" "e" "e" "e" "f" "f" "f" "f"
#[20] "f" "f"

или если вы предпочитаете factor

factor(dat, labels = let)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...