全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5633 5
2016-01-07
我有一个list,如何提取list中所有元素长度大于3的元素呢?比如:
l
$a
[1] 1 2 3 4 5

$b
[1] 1 2

$c
[1] 1 2 3

$d
[1] 1 2 3 4 5 6

我想要长度大于2的元素的列表:
$a
[1] 1 2 3 4 5

$c
[1] 1 2 3

$d
[1] 1 2 3 4 5 6


我想知道如何写比较简便一些呢?谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-1-7 10:33:13
因为如果我是这样的写法:
three<-lapply(x,function(xx){
        if(dim(xx)[1]>=3){
                xx
        }
})
那么最后出来的结果长度仍然是原来的长度,虽然找出了大于3的长度的元素,但是其他的会变成NULL:
[[82]]
NULL

[[83]]
NULL

类似于这样。。。
二维码

扫码加我 拉你入群

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

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

2016-1-7 11:04:28
好吧为什么每次都要在这里发完问题然后我自己想到解决方法了。。。。
再自问自答一下吧:
five<-x[lapply(x,function(xx){dim(xx)[1]})>5]
嗯,就这么一句话就够了~给自己赞一个~
二维码

扫码加我 拉你入群

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

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

2016-1-7 14:50:04
3个的话,用以下的代码。有时候,自己问了问题,是把问题进行了梳理,比较容易找到问题的答案的
复制代码
二维码

扫码加我 拉你入群

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

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

2016-1-7 20:02:26
jiangbeilu 发表于 2016-1-7 14:50
3个的话,用以下的代码。有时候,自己问了问题,是把问题进行了梳理,比较容易找到问题的答案的
更简洁些
x[sapply(x, length)>3]
二维码

扫码加我 拉你入群

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

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

2016-3-4 10:46:43
ntsean 发表于 2016-1-7 20:02
更简洁些
x[sapply(x, length)>3]
好顶赞&#128077;&#128077;&#128077;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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