这个问题在这里已有答案:
我的任务是整理一些数据,并且尝试从这种格式转换数据时遇到问题:
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
我们可以使用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