本站分享大数据、数据分析、数据挖掘、数据库、商业智能(BI)、数据分析师、培训课程考试认证等相关信息!【广告合作】在线联系联系我们数据分析QQ交流群:331864445

为何 程序显示需要TRUEFALSE值的地方不可以用缺少值

r语言 cdadata 43℃ 0评论

要TRUE/FALSE值的地方不可以用缺少值  逻辑值true或false

下面是我的 数据,我想要把ID这一列中与前后两行都不同赋值成NA,用了
for(i in 1:10){
if(data[i,1]!=data[i+1,1]&&data[i+1,1]!=data[i+2,1])
data[i+1,]=NA
}
V1      V2        V3       V4     V5
1       ID  账单号     日期             时间   总价
2       241 5178159 2014/1/11  8:52:18  74.04
3       293 5335387 2014/1/23 14:23:13   47.7
4       440 5231727 2014/1/15  9:26:47 117.04
5       454 5318927 2014/1/22  9:33:23  15.68
6       589 5331689 2014/1/23  9:58:24   0.12
7       621 5344954 2014/1/24 11:00:56    116
8       642 5104141  2014/1/5 12:35:45  75.62
9       721 5277970 2014/1/18 23:58:02  12.52
10      721 5277994 2014/1/19  0:24:48  64.26
11      729 5271743 2014/1/18 11:04:57     81
结果出现了Error in if (data[i, 1] != data[i + 1, 1] && data[i + 1, 1] != data[i +  :
需要TRUE/FALSE值的地方不可以用缺少值
数据变成了下面的
V1      V2        V3       V4     V5
1     ID    账单号        日期        时间   总价
2      <NA>    <NA>      <NA>     <NA>   <NA>
3       293 5335387 2014/1/23 14:23:13   47.7
4       440 5231727 2014/1/15  9:26:47 117.04
5       454 5318927 2014/1/22  9:33:23  15.68
6       589 5331689 2014/1/23  9:58:24   0.12
7       621 5344954 2014/1/24 11:00:56    116
8       642 5104141  2014/1/5 12:35:45  75.62
9       721 5277970 2014/1/18 23:58:02  12.52
10      721 5277994 2014/1/19  0:24:48  64.26
11      729 5271743 2014/1/18 11:04:57     81
本来应该2-8行都变成NA的,怎么会这样。求助


最佳解答:

if(data[i,1]!=data[i+1,1]&&data[i+1,1]!=data[i+2,1])
data[i+1,]=NA

你在第一次循环的时候,将data[i+1,]赋值为NA;
第二次循环的时候,data[i,1]成了NA,无法比较出真假。故出错了

转载请注明:数据分析 » 为何 程序显示需要TRUEFALSE值的地方不可以用缺少值

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!