【发布时间】:2020-11-01 11:58:36
【问题描述】:
如果LineItem的长度大于平均值,我需要创建一个新变量LineItem_LongName,编码为1,否则为0。
我已经尝试过使用代码:
data <- data %>% mutate(LineItem_LongName = ifelse(length(LineItem)) > mean(LineItem)),1,0))
但它给了我一个错误
Warning messages:
1: Problem with `mutate()` input `LineItem_LongName`.
i argument is not numeric or logical: returning NA
i Input `LineItem_LongName` is `ifelse(length(LineItem) > mean(LineItem))`.
2: In mean.default(LineItem) :
argument is not numeric or logical: returning NA
我该怎么办?谢谢!
【问题讨论】:
-
1.您的列 LineItem 是字符串还是数字? 2. ifelse(condition,1,0) 的条件在上面的代码中没有正确设置,不应该有太多的括号,即应该是 ifelse(len(LineItem) > mean(LineItem),1,0)。您的条件当前正在评估 ifelse(length(LineItem)) 这不是布尔评估。
-
嗨,安迪,我尝试运行代码: data % mutate(LineItem_LongName = ifelse(len(LineItem) > mean(LineItem),1,0) 但它不起作用。它给了我一个错误。LineItem 是一个字符变量
-
为 len(LineItem) 道歉,因为 R 中没有 len 函数。我的目的是指出代码中的条件没有正确编写,因为括号没有正确定义。尽管如此,还是在下面添加了我的答案。