给定两个布尔分类因子,我如何将它们的组合作为第三类?
> my_data <- data.frame(a = c(0, 0, 1, 1, 1),
b = c(0, 1, 0, 1, 1))
> my_data
a b
1 0 0
2 0 1
3 1 0
4 1 1
5 1 1
Run Code Online (Sandbox Code Playgroud)
我想添加一个新类别,结合使用a和b,以便:
> my_data
a b c
1 0 0 1
2 0 1 2
3 1 0 3
4 1 1 4
5 1 1 4
Run Code Online (Sandbox Code Playgroud)
我不想懒惰,为自己考虑一下:
my_data$c <- as.numeric(as.factor(my_data$a + 1 + (my_data$b + 1) * 2))
Run Code Online (Sandbox Code Playgroud)
这很接近,但我发现它并不特别优雅.因此,可以理解基础R中的任何更好的解决方案.肯定还有喜欢reshape2提供类似功能的软件包.
对于您提供的所有案例,以下逻辑似乎已足够.
my_data$c <- with(my_data, 2*a + b + 1)
my_data
a b c
1 0 0 1
2 0 1 2
3 1 0 3
4 1 1 4
5 1 1 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |