全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
14034 3
2015-05-03
> str(pp)
List of 2673
$ X000001.SH: NULL
$ X000001.SZ: int 2
$ X000002.SZ: int 1
$ X000004.SZ: int 3
$ X000005.SZ: int 6
$ X000006.SZ: int 2
$ X000007.SZ: int 4
$ X000008.SZ: int 10
$ X000009.SZ: int 6
$ X000010.SZ: int 4
$ X000011.SZ: int 4
$ X000012.SZ: NULL
$ X000014.SZ: int 2

一共有2千多个列表元素,有些值为NULL,想请问有什么方法可以将NULL值删除?
另外,有什么方法可以将列表转为数据框?
二维码

扫码加我 拉你入群

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

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

全部回复
2015-5-4 15:48:39
z<-list(a=1,b=NULL,c="li",d=NULL)
index<-0
j<-1
for(i in 1:length(z)){
      if(is.null(z[[i]])){
            index[j]<-i
            j<-j+1
      }
}
###index保存值为NULL的元素索引
index2<-(1:length(z))[-index]
###index2保存值非NULL的元素索引
你找到index2对应的元素,组成一个新的列表即可。
my.list<-list(x=c(1,3),y=c(2,4))
as.data.frame(my.list)
只要列表中的元素类型一致,就可以用上面的命令将列表变为数据框。
二维码

扫码加我 拉你入群

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

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

2015-5-7 11:29:04
lww1993 发表于 2015-5-4 15:48
z
非常感谢!再请问一下,如何删除int(0)的值呢,比如下面这个list。
> str(b)
List of 1180
$ X000005.SZ: int(0)
$ X000007.SZ: int(0)
$ X000008.SZ: int [1:2] 1 2
$ X000009.SZ: int(0)
$ X000010.SZ: int(0)
$ X000011.SZ: int(0)
$ X000017.SZ: int(0)
$ X000018.SZ: int(0)
$ X000020.SZ: int [1:2] 2 3
$ X000023.SZ: int(0)
二维码

扫码加我 拉你入群

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

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

2015-5-8 09:22:54
x如果是int(0),则length(x)==0
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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