请选择 进入手机版 | 继续访问电脑版
楼主: jdmnobitch
1250 4

[问答] 关于ifelse语句的问题求助各位大神 [推广有奖]

  • 0关注
  • 0粉丝

大专生

6%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
2.9008
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
26336 点
帖子
21
精华
0
在线时间
42 小时
注册时间
2018-11-28
最后登录
2023-11-9

jdmnobitch 在职认证  发表于 2018-12-12 16:54:26 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我是R的初学新手,刚接触,最近看到ifelse语句的用法,有一点不是太明白。
我创建一个数据框,

1.png

对其运用ifelse,得到的向量结果我可以理解。
2.png

但是再次列出数据框z时,为什么新添加的r列里,全部都是2。ifelse里列出的条件不是大于3,r赋值为1吗,为什么全都是2呢?
3.png

求各位大神指点迷津。

二维码

扫码加我 拉你入群

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

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

关键词:else LSE ELS 指点迷津 数据框

3.png

回帖推荐

hszest 发表于3楼  查看完整内容

应该 ifelse 返回的值是你需要的,但是你的ifelse语句本应该只给值的语句产生了副作用,即对z dataframe的变量赋值。 ifelse 执行会对后面两个表达式求值,并且依次执行, 执行到 , 最终的结果是z dataframe的r变量变成了2(长度不一致的向量R这里会自动循环)。 应该写成:
jinkelazzz 发表于 2018-12-12 17:38:09 |显示全部楼层 |坛友微信交流群
z$r <- ifelse(z$x > 3, 1, 2)
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

hszest 学生认证  发表于 2018-12-12 17:40:42 |显示全部楼层 |坛友微信交流群
应该 ifelse 返回的值是你需要的,但是你的ifelse语句本应该只给值的语句产生了副作用,即对z dataframe的变量赋值。
ifelse 执行会对后面两个表达式求值,并且依次执行,
  1. z$r <- 1
复制代码

执行到
  1. z$r <- 2
复制代码

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

已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

jdmnobitch 在职认证  发表于 2018-12-13 08:50:17 |显示全部楼层 |坛友微信交流群
hszest 发表于 2018-12-12 17:40
应该 ifelse 返回的值是你需要的,但是你的ifelse语句本应该只给值的语句产生了副作用,即对z dataframe的变 ...
明白了,特别感谢您的详细解答,非常感谢[handshake]

使用道具

jdmnobitch 在职认证  发表于 2018-12-13 08:51:53 |显示全部楼层 |坛友微信交流群
jinkelazzz 发表于 2018-12-12 17:38
z$r  3, 1, 2)
非常感谢您的帮助。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 04:00