全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1610 5
2018-10-10
请问大侠下面这个语句出来的结果为什么不对?

ifelse(nchar(temp$no)==15,temp$birth<-paste("19",substr(temp$no,7,8),sep = ""),temp$birth<-substr(temp$no,7,10))


其中temp$no是15位和18位的数字,出来的结果是不管nchar(temp$no)是不是等于15,都执行temp$birth<-substr(temp$no,7,10)

请问这是为什么?

二维码

扫码加我 拉你入群

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

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

全部回复
2018-10-10 19:20:57
上传测试数据及全部代码
二维码

扫码加我 拉你入群

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

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

2018-10-10 22:07:16
先分清楚ifelse() 和 if (...) {...} else {...} 的区别
二维码

扫码加我 拉你入群

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

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

2018-10-11 17:24:39
cheetahfly 发表于 2018-10-10 22:07
先分清楚ifelse() 和 if (...) {...} else {...} 的区别
我也用了if(){}else{}的形式,可结果还是错的

if(nchar(temp$no)==15) {
        temp$birth<-paste("19",substr(temp$no,7,8),sep = "")
}
else{
        temp$birth<-substr(temp$no,7,10)
}
二维码

扫码加我 拉你入群

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

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

2018-10-11 19:00:49
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

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

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

2018-10-11 22:25:17
salacn 发表于 2018-10-11 17:24
我也用了if(){}else{}的形式,可结果还是错的

if(nchar(temp$no)==15) {
if () {} else{} 结构不支持向量化,需要用循环来完成,你可以考虑楼上的建议。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群