如何将0 = ...,1 = ...的列转换为1个单列

时间:2019-04-09 16:20:35

标签: r

我的任务是整理一些数据,并且在尝试从这种格式转换数据时遇到问题:

id occupation_busdriver   occupation_cashier   occupation_nurse
1   0                       0                    1
2   0                       1                    0
3   1                       0                    0

我的实际数据集要大得多,但这是我在努力的领域,因此,对此集的示例将不胜感激。

我已经尝试使用收集和选择功能

我正在寻找具有以下格式的数据:

id  occupation
1   nurse
2   cashier
3   busdriver

1 个答案:

答案 0 :(得分:1)

我们可以使用max.col获取每行最大值的列索引,并根据该索引获取列名

data.frame(df1[1], occupation = sub(".*_", "", names(df1))[-1][max.col(df1[-1])])
#    id occupation
#1  1      nurse
#2  2    cashier
#3  3  busdriver