全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1097 2
2017-05-22
dd=list(a=c(1,2),b=c(2,3),c=NA,d=NA)
for(i in 1:length(dd))
{
  if(is.na(dd[[i]][1]))
  {
    dd[[i]] <- NULL
  }
}
出现错误,
Error in dd[[i]] : subscript out of bounds
我想问应该怎样修改才会出现
$a
[1] 1 2

$b
[1] 2 3
正确结果

二维码

扫码加我 拉你入群

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

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

全部回复
2017-5-22 17:28:01
当你运行到i=3的时候,将原先list中的NA替换成了NULL,这个时候整个list的长度length(dd)=3,但是下一次运行的时候,i是等于4的,所以是下界溢出了
二维码

扫码加我 拉你入群

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

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

2017-5-22 17:35:14
解决了,用Filter(length,lapply(dd,function(x) x[!is.na(x)]))
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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