【发布时间】:2019-06-19 15:13:24
【问题描述】:
我是 R 的初学者,所以这是一个非常基本的问题。我没有找到具体的答案,所以我想在这里问你。
我面临以下挑战;我想重新编码一个字符变量并从中创建一个。
具体来说,我的数据框(数据)中的变量称为“驱动程序”,类别为“市场”、“立法”、“技术”和“混合”。
现在我只想创建一个新变量“driverrec”,其值为“market”和“others”。在“其他”中应总结其余三个变量。
我在这个页面上试过了:http://rprogramming.net/recode-data-in-r/
基本上,我尝试在我的身上采用以下代码,但它不适用于多个类别。
#Create a new field called NewGrade
SchoolData$NewGrade <- recode(SchoolData$Grade,"5='Elementary'")
# my attempt
driverrec <- data$driver
recode(driverrec, "'Mixed'='others'") This is working.
但整个重新编码不起作用:
recode(driverrec, "'Mixed'='others'", "'Technology'='others'",
"'Legislation'='others'", "'Market'='market'" )
我期待并感谢您的帮助。
【问题讨论】:
-
您使用的是哪个
recode?dplyr还是arules?不确定它们是否相同。 -
在链接中,还显示了来自
car的recode。因此,您可能需要添加dplyr::recode或car::recode,否则它们中的任何一个都可能会被屏蔽 -
dplyr版本将是dplyr::recode(names(iris), Species='Nope', Sepal.Length='Yep') -
我建议用
forcats处理factors。可能会更容易。 -
添加 car:: 或 dplyr 不会改变任何东西 出现此错误: if (as.factor) { : 参数无法解释为逻辑错误 我还没有使用 forcats 的经验,我认为会有一个简单的解决方案来改变这一点,因为它适用于单个类别,但不适用于所有 4...