全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1518 4
2018-12-12
我是R的初学新手,刚接触,最近看到ifelse语句的用法,有一点不是太明白。
我创建一个数据框,

1.png
对其运用ifelse,得到的向量结果我可以理解。
2.png
但是再次列出数据框z时,为什么新添加的r列里,全部都是2。ifelse里列出的条件不是大于3,r赋值为1吗,为什么全都是2呢?
3.png
求各位大神指点迷津。

附件列表
3.png

原图尺寸 2.58 KB

3.png

二维码

扫码加我 拉你入群

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

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

全部回复
2018-12-12 17:38:09
z$r <- ifelse(z$x > 3, 1, 2)
二维码

扫码加我 拉你入群

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

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

2018-12-12 17:40:42
应该 ifelse 返回的值是你需要的,但是你的ifelse语句本应该只给值的语句产生了副作用,即对z dataframe的变量赋值。
ifelse 执行会对后面两个表达式求值,并且依次执行,
复制代码

执行到
复制代码

, 最终的结果是z dataframe的r变量变成了2(长度不一致的向量R这里会自动循环)。
应该写成:
复制代码

二维码

扫码加我 拉你入群

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

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

2018-12-13 08:50:17
hszest 发表于 2018-12-12 17:40
应该 ifelse 返回的值是你需要的,但是你的ifelse语句本应该只给值的语句产生了副作用,即对z dataframe的变 ...
明白了,特别感谢您的详细解答,非常感谢[handshake]
二维码

扫码加我 拉你入群

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

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

2018-12-13 08:51:53
jinkelazzz 发表于 2018-12-12 17:38
z$r  3, 1, 2)
非常感谢您的帮助。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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