楼主: jdmnobitch
1589 4

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

  • 0关注
  • 0粉丝

大专生

8%

还不是VIP/贵宾

-

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

楼主
jdmnobitch 在职认证  发表于 2018-12-12 16:54:26 |AI写论文

+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 (2.58 KB)

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
拉您进交流群
GMT+8, 2026-1-8 06:06