全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8348 1
2015-05-03
下面是我的 数据,我想要把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的,怎么会这样。求助
二维码

扫码加我 拉你入群

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

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

全部回复
2015-5-4 15:54:53
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,无法比较出真假。故出错了
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群