楼主: 地瓜艾小七
26339 12

[问答] R程序中出现要TRUE/FALSE值的地方不可以用缺少值 [推广有奖]

  • 2关注
  • 0粉丝

初中生

33%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0.0019
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
139 点
帖子
15
精华
0
在线时间
10 小时
注册时间
2018-11-11
最后登录
2020-2-29

楼主
地瓜艾小七 发表于 2019-6-12 17:05:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
微信图片_20190612170140.png
分开每块都能算出结果,但整合到一起就会出现:
   Error in while (itenum <= itemax && diff >= 10^(-3)) { :
     需要TRUE/FALSE值的地方不可以用缺少值

求大神解救一下
二维码

扫码加我 拉你入群

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

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

关键词:LSE R程序 Rue TRU Error

沙发
OhGretta 发表于 2019-6-13 12:07:10
首先,你的while语句的itenum并没有在增加,一直是0。
然后我以前也出现过这种情况,是判断语句里面一旦出现变量本身是空值的情况,整个判断语句就不是T/F而是NA,所以,有可能是你的diff在迭代的过程中出现了没有考虑到的情况导致算出了一个NA值,这个时候可能会出现这种报错。

藤椅
drunkfish69 发表于 2019-6-13 13:38:35
眼睛不好看不清,你把CODE贴上来嘛!

板凳
地瓜艾小七 发表于 2019-6-14 09:02:06
OhGretta 发表于 2019-6-13 12:07
首先,你的while语句的itenum并没有在增加,一直是0。
然后我以前也出现过这种情况,是判断语句里面一旦出 ...
谢谢您的解答,但是我能算的都算了,也都能算出来,但是用while循环就出错,也没发现会有出现空缺值的情况呀,都是有数的,能请您具体解释一下这个NA么,什么情况下会算出NA呀?谢谢!

报纸
地瓜艾小七 发表于 2019-6-14 09:03:46
drunkfish69 发表于 2019-6-13 13:38
眼睛不好看不清,你把CODE贴上来嘛!
您好,首先感谢您的参与与解答,我在这里添了一个附件,附件里就是内容的图片形式,您可以下载附件然后查看,谢谢!

地板
地瓜艾小七 发表于 2019-6-14 09:03:54
drunkfish69 发表于 2019-6-13 13:38
眼睛不好看不清,你把CODE贴上来嘛!
您好,首先感谢您的参与与解答,我在这里添了一个附件,附件里就是内容的图片形式,您可以下载附件然后查看,谢谢!

7
OhGretta 发表于 2019-6-14 10:59:10
地瓜艾小七 发表于 2019-6-14 09:02
谢谢您的解答,但是我能算的都算了,也都能算出来,但是用while循环就出错,也没发现会有出现空缺值的情况 ...
比如说sum()这个函数就容易算出来NA,只要sum()里面的序列中有一个NA,那结果就是NA。我一般会加个na.rm忽略空值。sum(x,na.rm=TRUE)就不会算出来NA。如果不是这个问题的话,就需要一遍一遍找。用for循环加if判断语句也可以达到和while一样的目的,还可以在循环内加个cat(i,"\n")之类的print一下当前循环迭代了多少次,也能判断是哪一次出问题的。

8
地瓜艾小七 发表于 2019-6-17 16:37:43
OhGretta 发表于 2019-6-14 10:59
比如说sum()这个函数就容易算出来NA,只要sum()里面的序列中有一个NA,那结果就是NA。我一般会加个na.rm忽 ...
好哒,谢谢,非常感谢{:0_248:}

9
地瓜艾小七 发表于 2019-6-17 16:43:04
OhGretta 发表于 2019-6-14 10:59
比如说sum()这个函数就容易算出来NA,只要sum()里面的序列中有一个NA,那结果就是NA。我一般会加个na.rm忽 ...
还想问个问题,就是除了sum会出现NA,还有其他可能出现NA的情况么?初值都是数,没有NA,然后他算着算着就会出NA 么?谢谢

10
OhGretta 发表于 2019-6-18 13:40:40
地瓜艾小七 发表于 2019-6-17 16:43
还想问个问题,就是除了sum会出现NA,还有其他可能出现NA的情况么?初值都是数,没有NA,然后他算着算着就 ...
可以print或者cat一下当前迭代到了哪一次,然后在出问题的这一次手动运行试一下?
也有可能是赋值符号的问题,我看你一会儿用 “<-” 一会儿用“=”,我以前记得刚开始学R的时候老师有建议用 <- 来给变量赋值,具体原因有点忘了。但是记得一个例子:
  1. > mean(x=c(1:10))
  2. [1] 5.5
  3. > x
  4. Error: object 'x' not found
  5. > mean(x<-c(1:10))
  6. [1] 5.5
  7. > x
  8. [1]  1  2  3  4  5  6  7  8  9 10
复制代码
不知道是不是这个原因。
其实循环出错很好找的,看停到哪一次,就能找出来的。while可以,for加if语句也可以。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 22:24