首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >if函数和逻辑向量的长度

if函数和逻辑向量的长度
EN

Stack Overflow用户
提问于 2011-11-29 21:35:47
回答 3查看 1.2K关注 0票数 1

我有一个数据框架,其中日期以水文年份(10月到9月)的形式给出。为了改变这一点,我尝试使用if语句:

代码语言:javascript
运行
复制
if(cet$month== 10|cet$month==11|cet$month==12) 
  cet$year <- substr(as.character(cet[,2]),1,4) else
  cet$year <- substr(as.character(cet[,2]),6,9)

但是我得到一个错误:the condition has length > 1 and only the first element will be used

阅读"if“帮助文件时,我意识到条件必须是一个长度为1的逻辑向量。有没有办法把"or“和"if”一起使用?如果月份是10月、11月或12月,我想要的就是应用这个表达式。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-29 21:43:00

ifelse是矢量化版本。您还可以使用%in%来减少语句的数量。

代码语言:javascript
运行
复制
cet$year <- ifelse(cet$month%in%(10:12), substr(as.character(cet[,2]),1,4), substr(as.character(cet[,2]),6,9))
票数 4
EN

Stack Overflow用户

发布于 2011-11-29 21:45:22

好的,这里有一个可以重复使用的例子,可以帮助我们弄清楚一些事情:

代码语言:javascript
运行
复制
 # generate some vector
 x <- c(1,2,4,4,5,5,6,6,6)
 # have a check using OR, return values
 x[x == 2 | x == 1]
 ## or return TRUE / FALSE
 (x == 2 | x == 1)

或查看?ifelse

编辑:请注意,对于字符,您需要使用"",如x == "yourchars" | x == "someotherchars"

这里还有一些简单的参考,以及如何使用运算符:QuickR

票数 0
EN

Stack Overflow用户

发布于 2011-11-29 21:48:38

OR指令是双管道

the if()中的| => ||

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8311629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档