R语言—填坑随笔

1.ifelse语句返回值的特殊性

  正常的ifelse语句格式为ifelse(判断条件,TRUE时执行,FALSE时执行)

 学过编程语言的人不难理解,但在R中容易被误导。今天我遇到了一个情况。需求是判断一个字符向量的长度,如果大于0,返回向量所有内容,否则输出"没有"两个字。结果却只输出了1个元素。

代码如下:

> ##可以看出向量有值
> ls_1
[1] "天津" "上海" "安徽" "福建" "四川" "重庆" "陕西" "青海" "新疆"
> ##向量内有9个元素
> length(ls_1)
[1] 9
> ##进行判断
> ifelse(length(ls_1),ls_1,"没有")
[1] "天津"
> ##结果只显示了第一个元素,后来得知,判断条件有几个元素,就会返回ls_1向量的几个元素
> ##如果我想每次都全部现实,可以这样写
> ifelse(is.na(ls_1),"没有",ls_1)
[1] "天津" "上海" "安徽" "福建" "四川" "重庆" "陕西" "青海" "新疆"

总结:R语言的if判断语句,虽然大部分情况都是和其他编程语言一样使用,但在返回内容包含多个值时,需要注意返回结果是否正确。

 

posted @ 2017-06-01 10:29  DM_2  阅读(410)  评论(0编辑  收藏  举报