【发布时间】:2015-10-21 19:31:12
【问题描述】:
我正在尝试从向量d 创建一个因子,该因子指示d 的每个值是否缺失、小于threshhold 或大于/等于threshhold。我尝试使用以下代码,使用 memisc 包中的 cases 函数。
threshhold = 5
d <- sample(c(1:10, NaN), 50, replace=TRUE)
d_case <- cases(
is.na(d),
d > threshhold,
d <= threshhold
)
并收到警告:In cases(is.na(d), d > threshhold, :
condition is.na(d) is never satisfied。
我也尝试过使用赋值运算符,
d_case <- cases(
is.na(d) -> 0,
d > threshhold -> 1,
d <= threshhold -> 2
)
并得到同样的警告。我已经检查过了,d 确实包含 NaN 值,is.na() 应该返回为真(并且是,当我在案例之外检查它时)。有谁知道为什么案例不起作用,或者我可以做些什么来获得我需要的指标因素?
【问题讨论】:
-
您从哪里获得
cases函数?这不是基本 R 的一部分。它还有助于提供带有示例输入和所需输出的 reproducible example,以明确您要完成的工作。 -
对于这个简单的例子,你也可以使用类似
as.numeric(x > threshold)的东西,加1,然后根据需要将0分配给NA元素。 -
@MrFlick 谢谢,我已经编辑了我的问题以表明案例来自 memisc,并包含生成示例数据的代码,以便问题可重现。
标签: r switch-statement warnings