楼主: Jasonbestone
720 3

[其他] R语言if语句 [推广有奖]

  • 0关注
  • 0粉丝

高中生

30%

还不是VIP/贵宾

-

威望
0
论坛币
399 个
通用积分
0.7426
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
638 点
帖子
19
精华
0
在线时间
26 小时
注册时间
2020-5-16
最后登录
2024-5-8

1论坛币
有没有大佬可以帮我看看这个语句有什么问题呀?



setwd("D:/R_edu/data")
loans=read.csv("loans.csv")
if (loans$status == "A"){loans$bad_good <-0
}else if (loans$status == "B") {loans$bad_good <-1
}else if (loans$status == "D") {loans$bad_good <-1
}else{
  loans$bad_good <-NA
}

报错:
Warning messages:
1: In if (loans$status == "A") { :
  the condition has length > 1 and only the first element will be used
2: In if (loans$status == "B") { :
  the condition has length > 1 and only the first element will be used



谢谢大佬



关键词:R语言 status loans READ Data
沙发
橙红的果士 学生认证  发表于 2022-10-24 22:47:19 |只看作者 |坛友微信交流群
  1. for (i in 1:length(loans$status)){
  2. if (loans$status[i] == "A") {loans$bad_good<-0}  #这里的bad_good变量是原数据集中就存在的吗?建议写成loans[, 'bad_good']
  3. else if (loans$status[i] == "B") {loans$bad_good<-1}
  4. else if (loans$status[i] == "D") {loans$bad_good<-1} #这里的赋值有重复
  5. else {loans$bad_good<-NA}
  6. }
复制代码

使用道具

藤椅
橙红的果士 学生认证  发表于 2022-10-25 08:50:27 |只看作者 |坛友微信交流群
loans$status 是数据集中的一列变量的取值,理论上来说是向量或者1维的矩阵,这就需要使用循环,遍历这个向量或者1维矩阵的每一个元素,去判断是否等于 A 或者 B,所以建议使用 for 循环

使用道具

板凳
哈我会努力的! 发表于 2022-10-25 10:35:16 来自手机 |只看作者 |坛友微信交流群
Jasonbestone 发表于 2022-10-24 22:47
有没有大佬可以帮我看看这个语句有什么问题呀?
不写if语句也可以直接赋值的,如果写if语句的话,上面再这个循环才可以

使用道具

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

本版微信群
加JingGuanBbs
拉您进交流群

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

GMT+8, 2024-10-5 20:29