我有一个由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/

10-12 14:04