【问题标题】:How do I create a new column in r that is a binomial variable based on a string variable? [duplicate]如何在 r 中创建一个新列,它是基于字符串变量的二项式变量? [复制]
【发布时间】:2018-09-05 08:30:46
【问题描述】:

我目前正在尝试使用 mutate() 基于另一列在我的数据框中创建一个新列。

我想让新列成为二项式变量(1 或 0),具体取决于它所基于的列是否显示“活动”。我目前正在尝试这样做:

violations$outcome = if (violations$RESULT == "Active") { 1 } else { 0 }

这当前会产生“警告消息: 在 if (violations$RESULT == "Active Rat Signs") { 中: 条件的长度 > 1,并且只使用第一个元素”,我查看了我的新数据框,每个 violations$outcome 都是 0。

有谁知道如何做到这一点以及为什么我的原始答案不起作用?这非常令人沮丧,如果您提供任何 cmet、建议或帮助,我将不胜感激。谢谢。

【问题讨论】:

  • ifelse 是矢量化if,所以violations$outcome = ifelse(violations$RESULT == "Active", 1, 0)。但是您可以将逻辑强制转换为数字,因此大多数人更喜欢violations$outcome = as.integer(violations$RESULT == "Active"),因为它更有效。

标签: r dataframe dplyr


【解决方案1】:

R 有一个方便的函数,叫做ifelse

试试violations$outcome = ifelse(violations$RESULT == 'Active', 1, 0)。第一个参数是您正在测试的条件,第二个参数是如果它是TRUE,则返回什么,第三个参数是如果它是FALSE,则返回什么。

【讨论】:

  • 太棒了!我还发现我可以使用 dplyr 执行 'violations = mutate(violations, ratsigns = ifelse(RESULT == "Active Rat Signs", 1, 0))'
猜你喜欢
  • 1970-01-01
  • 2022-12-31
  • 1970-01-01
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
相关资源
最近更新 更多