Как поменять значения столбцов - PullRequest
0 голосов
/ 03 октября 2018

Это кажется простой задачей, но я не могу понять ее жизнь.У меня есть столбец данных со следующей структурой:

df = as.data.frame(c(1,1,2,2,3,3,4,4))

У меня также есть следующие векторы:

index = seq(1,2)
labels = c('Control','Treatment')

Индекс обновляется циклом for ивсе, что я хочу сделать, это заменить все значения в столбце df, которые соответствуют индексу, соответствующей меткой (например, все значения 1 и 2 в df будут заменены на «Control»).Пока что самое близкое, что я получил, это:

df$col[df$col == index[1]] = labels[1]

Если index[1] заменить на index, сопоставляется только первое значение вектора.Как я могу сделать это так, чтобы все значения были сопоставлены и заменены?

Спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Не совсем понятно, что вы хотите сделать.Но из вашего описания я предполагаю, что вам может понадобиться factor:

df <- data.frame(col=c(1,1,2,2,3,3,4,4))
labs <- c("first", "second", "third", "fourth")
df$col2 <- factor(df$col, labels=labs)
df
#   col   col2
# 1   1  first
# 2   1  first
# 3   2 second
# 4   2 second
# 5   3  third
# 6   3  third
# 7   4 fourth
# 8   4 fourth

Вы можете изменить эти метки на levels, например:

> levels(df$col2)[3:4] <- c("tre", "fyra")
> df
  col   col2
1   1  first
2   1  first
3   2 second
4   2 second
5   3    tre
6   3    tre
7   4   fyra
8   4   fyra
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...