楼主: mashagua
1739 5

[问答] ifelse出现结果为什么错了 [推广有奖]

  • 0关注
  • 1粉丝

博士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
60 个
通用积分
69.1920
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
3931 点
帖子
198
精华
0
在线时间
258 小时
注册时间
2013-9-20
最后登录
2020-12-21

楼主
mashagua 学生认证  发表于 2016-10-17 17:26:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
date_1<-NA
ifelse(is.na(date_1),seq.Date(ymd(20110601),ymd(20110610),by='day'),seq.Date(ymd(20110607),ymd(20110620),by='day'))
为什么出来的结果是15216,怎样改才能出来正确的结果

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:else LSE ELS date ATE

沙发
zhou1_20 发表于 2016-10-17 20:32:26
这样不对呀,后面的判断要用前面的变量,你直接用 if  --------else

藤椅
jgchen1966 发表于 2016-10-17 21:08:22
用 by =1

板凳
johnmy 发表于 2016-10-18 04:55:12
看了半天?ifelse,
好像说类型会发生变化,尤其是日期和factor时注意。
而且根据判断条件返回的个数来返回结果的个数。
date_1<-NA只会返回一个值,所以结果也是一个值,也就是yes中的第一个,并且转化成了numeric。
y<-ifelse(con,yes,no),我猜con的长度如果和yes的长度相等就可以了,最后还要执行
class(y)<-"Date"才能输出正确结果。

我查到几个链接:
http://stackoverflow.com/questions/6668963/how-to-prevent-ifelse-from-turning-date-objects-into-numeric-objects
http://stackoverflow.com/questions/24983470/r-ifelse-avoiding-change-in-date-format
http://stackoverflow.com/questions/32013013/ifelse-statement-returning-number-instead-of-date

报纸
johnmy 发表于 2016-10-18 05:04:11
下面代码可以得到结果,当然还是if else简单

  1. yes<-seq.Date(ymd(20110601),ymd(20110610),by="day")
  2. no<-seq.Date(ymd(20110607),ymd(20110620),by="day")
  3. date_1[max(length(yes),length(no))]<-NA
  4. c<-is.na(date_1)
  5. a<-ifelse(c,yes,no)
  6. class(a)<-"Date"
  7. a
复制代码

地板
mashagua 学生认证  发表于 2016-10-18 06:12:12
johnmy 发表于 2016-10-18 05:04
下面代码可以得到结果,当然还是if else简单
谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 07:12