楼主: mashagua
926 2

[问答] list出现错误,怎样修改 [推广有奖]

  • 0关注
  • 1粉丝

博士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
60 个
通用积分
69.1920
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
3931 点
帖子
198
精华
0
在线时间
258 小时
注册时间
2013-9-20
最后登录
2020-12-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
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
正确结果

二维码

扫码加我 拉你入群

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

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

关键词:list IST length leng eng

沙发
偏爱丨小汐 发表于 2017-5-22 17:28:01 |只看作者 |坛友微信交流群
当你运行到i=3的时候,将原先list中的NA替换成了NULL,这个时候整个list的长度length(dd)=3,但是下一次运行的时候,i是等于4的,所以是下界溢出了

使用道具

藤椅
mashagua 学生认证  发表于 2017-5-22 17:35:14 |只看作者 |坛友微信交流群
解决了,用Filter(length,lapply(dd,function(x) x[!is.na(x)]))

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-4-20 01:47