2

一个真正的初学者问题,我正在使用以下代码行在列表上应用循环:

for(i in 1:length(zz)){ if (length(zz[[i]])>2) {print(zz[[i]])}}

我正在获得我想要的东西,因为我在控制台中对其进行了可视化。但是我找不到将它存储到变量中的方法,所以我以后可以使用它。

你能帮我解决这个问题吗?

非常感谢你。

蒂娜。

4

2 回答 2

4

我建议您按如下方式过滤您的列表:

out <- zz[sapply(zz, length) > 2]

wheresapply(zz, length)为您提供列表项的长度。

于 2013-03-16T00:19:25.953 回答
1
out <- vector("numeric", length(zz)) #type depends on what zz is

for(i in 1:length(zz))
    if(length(zz[[i]] > 2)
        out[i] = zz[[i]]

正如其他人所指出的,R 中的约定是与apply家庭成员一起执行此操作。

于 2013-03-16T00:22:15.730 回答