【发布时间】:2018-11-15 16:48:01
【问题描述】:
我知道this solution,但我很难将它应用于不仅仅是虚拟变量的数据。
一些要加载的示例代码,主要来自一系列开销
df <- data.frame(Charge = c(12,4,6,10,5,9), Groceries = c(1,0,0,0,0,0),Utilities = c(0,1,0,0,0,0),Consumables = c(0,0,1,0,0,0), Transportation = c(0,0,0,1,0,0),Entertainment = c(0,0,0,0,1,0),Misc = c(0,0,0,0,0,1))
我想创建一个新变量“Category”,它采用当前编码为二进制文件的列名。我可以使用ifelse 做到这一点,但我正在寻找更通用的解决方案,例如从 reshape 包中取出。
目前,我只能通过以下方式解决此问题:
df$Category <- ifelse(df$Groceries==1, "Groceries",
ifelse(df$Utilities==1,"Utilities",
ifelse(df$Consumables==1,"Consumables",
ifelse(df$Transportation==1,"Transportation",
ifelse(df$Entertainment==1,"Entertainment","Misc")))))
【问题讨论】:
标签: r if-statement reshape