正在做生存分析。有一个带有日期列表(作为日期类)的数据框架工作表。(worksheet$date.of.first.positive)。我想创建另一个列,如果日期在某个范围内,我将该列标记为组0、1、2。
if (worksheet$date.of.first.positive < '2011-07-01'){
worksheet$aspera2 <- 0
}else if (worksheet$date.of.first.positive > '2012-10-01') {
worksheet$aspera2 <- 2
} else{
worksheet$aspera2 <- 1
}我收到以下错误:警告消息: In if (worksheet$date.of.first.positive < "2011-07-01") {:条件长度>1,只使用第一个元素
我读过逻辑向量的答案,但不完全明白我做错了什么。
迪内什的反应正是我所需要的。我用了以下方法。去筑巢!谢谢!
worksheet$aspera2 <- ifelse(worksheet$date.of.first.positive < '2011-07-01', 0, ifelse(worksheet$date.of.first.positive > '2012-10-01', 2, 1))发布于 2014-12-10 20:14:52
错误信息简洁但非常有意义。IF正在返回一个T/F向量,但是if并不是这样工作的。试试ifelse风格
worksheet$aspera2 <- ifelse(worksheet$date.of.first.positive < '2011-07-01', "value-when-true", "value-when-false")你可以嵌套ifelse
https://stackoverflow.com/questions/27409886
复制相似问题