У меня есть кадр данныхЗамена категориальных значений в векторе на номер
t = data.frame(c(5,5,5), c('a','b','c', 'a', 'b', 'd'), c(1,2,3), c(1,2,3))
И вектор с rownames
vector = table(t$V2)
Как заменить второй категорический столбец в dataframe с номерами от вектора?
Я сделал некоторые Google Foo и попытался сделать следующее:
map = setNames(vector, rownames(vector))
to_replace = t$V2
to_replace[] = map[unlist(map)]
Но я получаю сообщение об ошибке:
Warning message:
In `[<-.factor`(`*tmp*`, , value = c(146L, 146L, 27L, 82L, 110L, :
invalid factor level, NA generated
EDIT
Извините, ребята, я не сделал ясно, что я хотел сделать
t $ V2 и вектор имеют разную длину. В основном вектор с именами ростов - это сама карта. Я хочу сопоставить имена ростов в векторе с значениями в t $ V2 и заменить его значениями вектора. Сам вектор был создан с использованием функции table (t $ V2).
предположительно вы имеете в виду 'имен (вектор)' (не 'rownames (вектор)') в строке 3 –
Я не уверен, но я редактировал свой пост, чтобы сделать его более четким. – YKY
'rownames (vector)' создает ошибку как для меня, так и для @ 42 (см. Ниже) –