【问题标题】:How do I recode character variable?如何重新编码字符变量?
【发布时间】: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'" ) 

我期待并感谢您的帮助。

【问题讨论】:

  • 您使用的是哪个recodedplyr 还是 arules?不确定它们是否相同。
  • 在链接中,还显示了来自carrecode。因此,您可能需要添加dplyr::recodecar::recode,否则它们中的任何一个都可能会被屏蔽
  • dplyr 版本将是 dplyr::recode(names(iris), Species='Nope', Sepal.Length='Yep')
  • 我建议用forcats 处理factors。可能会更容易。
  • 添加 car:: 或 dplyr 不会改变任何东西 出现此错误: if (as.factor) { : 参数无法解释为逻辑错误 我还没有使用 forcats 的经验,我认为会有一个简单的解决方案来改变这一点,因为它适用于单个类别,但不适用于所有 4...

标签: r recode


【解决方案1】:

我找到了一个不使用替换命令的解决方案:

data$driverrec[dataframe$driver=='Market']

这很好用;按顺序,有人正在寻找解决方案;)!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多