楼主: 甲基橙crads
4682 6

[问答] 一个关于条件语句的问题 [推广有奖]

  • 0关注
  • 3粉丝

已卖:1461份资源

博士生

23%

还不是VIP/贵宾

-

威望
0
论坛币
5899 个
通用积分
16.4568
学术水平
4 点
热心指数
11 点
信用等级
0 点
经验
3016 点
帖子
101
精华
0
在线时间
315 小时
注册时间
2016-2-23
最后登录
2023-2-14

楼主
甲基橙crads 发表于 2018-5-31 20:40:54 |AI写论文
5论坛币
代码如下,系统始终对if后面的条件句报错,请问怎么办
a3$a28 <- if((a3$x1 > a3$x2)==FALSE){
          -1
         }else{
           a3$x1+3
         }


错误为:In if ((a3$x1 > a3$x2) == FALSE) { :
  the condition has length > 1 and only the first element will be used

数据如图所示,我想让x1中为-1的在a28中依然为-1,x1中那些大于-1的值在a28中加3。
x1和x2的类型均为numeric,长度均相等。
捕获3333.PNG

最佳答案

关键词:怎么办 条件句

回帖推荐

zerofung 发表于5楼  查看完整内容

你遇到了我曾经遇到的问题,我也是在论坛上找到答案的,感谢论坛曾经对我的帮助。答案是:因为if只接受一个判断,不能接受向量化的判断,如果给if一串T or F,它只认第一个,所以要用楼上说的ifelse,或者用循环

沙发
cheetahfly 在职认证  发表于 2018-5-31 20:40:55
a3$a28 <- ifelse(a3$x1 <= a3$x2, -1, a3$x1 + 3)

藤椅
甲基橙crads 发表于 2018-5-31 20:42:18
补充一张代码的图,文字有点乱
捕获.PNG

板凳
甲基橙crads 发表于 2018-5-31 20:43:19
再补充一张报错的截图

捕获.PNG (5.99 KB)

捕获.PNG

报纸
zerofung 学生认证  发表于 2018-6-1 10:14:42
你遇到了我曾经遇到的问题,我也是在论坛上找到答案的,感谢论坛曾经对我的帮助。答案是:因为if只接受一个判断,不能接受向量化的判断,如果给if一串T or F,它只认第一个,所以要用楼上说的ifelse,或者用循环
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

地板
甲基橙crads 发表于 2018-6-1 14:24:18
zerofung 发表于 2018-6-1 10:14
你遇到了我曾经遇到的问题,我也是在论坛上找到答案的,感谢论坛曾经对我的帮助。答案是:因为if只接受一个 ...
感谢指教,非常管用,又学习了

7
甲基橙crads 发表于 2018-6-1 14:24:47
cheetahfly 发表于 2018-5-31 20:40
a3$a28
感谢,成功解决

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-30 06:47