我有一个列表,我想删除具有奇数长度的元素:
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
Run Code Online (Sandbox Code Playgroud)
所以在上面的例子中,我想删除, my_list$b 因为它的长度是3,而3是奇数。
有什么建议么?
您可以使用sapply、实现子集化和模运算符%%:
my_list[sapply(my_list, length) %% 2L == 0L]
Run Code Online (Sandbox Code Playgroud)
或者按照评论中的建议更好lengths
my_list[lengths(my_list) %% 2L == 0L]
Run Code Online (Sandbox Code Playgroud)