我有一个列表,我想删除长度为奇数的元素:

my_list <- list()
my_list$a <- c(1,2,3,4) #length 4
my_list$b <- c(1,2,3) # length 3
my_list$c <- c(5,6,7,8,6,7) #length 6

所以在上面的例子中,我想go 掉my_list$b,因为它的长度是3,而3是奇数.

有什么建议吗?

推荐答案

您可以使用sapply、简单子集和模运算符%%:

my_list[sapply(my_list, length) %% 2L == 0L]

或者更好,就像 comments 中所说的使用lengths

my_list[lengths(my_list) %% 2L == 0L]

R相关问答推荐

如何替换R中数据集列中的各种字符串

删除facet_wrap标签之间的水平线

如果列中存在相同的字符串,则对行值进行总和

更改绘图上的x轴断点,而不影响风险?

如何在kableextra调用cell_spec()中忽略NA?

在使用具有Bray-Curtis相似性的pvCluust时计算p值

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

如何计算每12行的平均数?

层次树图的数据树

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作

注释不会绘制在所有ggplot2面上

按组使用dummy r获取高于标准的行的平均值

如果满足条件,则替换列的前一个值和后续值

如何在R中创建这些列?

如何使用循环从R中的聚合函数创建列,而不会在名称中给出&q;$&q;?

R:使用ApexCharge更改标签在饼图中的位置

如何在刻面和翻转堆叠条形图中对齐geom_text()

使用&Fill&Quot;在gglot中创建 colored颜色 渐变

子样本间系数检验的比较

我怎么才能把一盘棋变成一盘棋呢?