我有一个由5个虚拟变量组成的数据集,如下所示:...
> head(type)
convertible coupe hatchback sedan wagon
1 0 0 0 1 0
2 0 1 0 0 0
3 1 0 0 0 0
4 1 0 0 0 0
5 1 0 0 0 0
6 1 0 0 0 0
如果要使用dplyr代码,如何创建一个名为“TypeOfCar”的新变量,并将所有虚拟变量都折叠到其中?谢谢!
编辑:很抱歉。使用上面的信息,我想知道dplyr中是否有一种方法可以收集当前的一组虚拟变量,以创建一个名为TypeOfCar的变量。下面的示例(分别对应于1-6以上的ID)
TypeOfCar
1 sedan
2 coupe
3 convertible
4 convertible
5 convertible
6 convertible
最佳答案
可以使用“tidyverse”库-特别是“tidyr”和“dplyr”来完成。以下代码产生您想要的输出。
library(tidyverse)
type %>% gather(TypeOfCar, Count) %>% filter(Count >= 1) %>% select(TypeOfCar)
输出:
TypeOfCar
<chr>
1 convertible
2 convertible
3 convertible
4 convertible
5 coupe
6 sedan
希望这可以解决您的问题,如果需要任何更改,请告诉我!谢谢。
关于r - 使用dplyr收集虚拟变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42036652/