在数据框中分组元素

时间:2016-04-13 13:21:34

标签: r

假设我在数据框中有一个变量,它可以取值“a”,“b”,“c”,“d”和“e”。它可能看起来像这样:

V1
c
d
e
e
d
e
a
c
b
b

然而,我知道/怀疑“a”和“b”几乎描述了samt的东西,以及“c”和“d”。因此,我想创建一个新变量,它们具有相同的值,即

V1 V2
c  c
d  c
e  e
e  e
d  c
e  e
a  a
c  c
b  a
b  a

我觉得这很容易,但我找不到办法去做!

3 个答案:

答案 0 :(得分:2)

我们可以使用

library(car)
df1$V2 <- recode(df1$V1, "'d'='c';'b'='a'")
df1$V2
#[1] "c" "c" "e" "e" "c" "e" "a" "c" "a" "a"

答案 1 :(得分:1)

你有没有理由不能使用:

df$V2 <- df$V1
df$V2[df$V2=="d"] <- "c"
df$V2[df$V2=="b"] <- "a"

答案 2 :(得分:0)

我在前一天发布了一个类似的问题。

我的解决方案是:

l <- c("a","a","c","c","e")
factor(l[V1])

使用dplyr软件包:

library(dplyr)
df %>% mutate(V2 = factor(l[V1]))

请参阅此主题以获得更多答案:

Combining factor level in R