gpt4 book ai didi

R 使用 if else 语句从列表中删除对象

转载 作者:行者123 更新时间:2023-12-04 09:05:25 25 4
gpt4 key购买 nike

我有一个数据框列表,想从 mylist 中删除少于 2 行的那些:

a<-data.frame(x=c(1:4),y=c("m", "n", "o", "p"))
b<-data.frame(x=c(2:6),y=c("q", "w", "e", "r", "t"))
c<-data.frame(x=c(6,7),y=c("j","k"),z=c("$","#"))
d<-data.frame(x="9",y="q",z="+")
mylist<-list(a,b,c,d)

for (i in length(mylist)){
if (nrow(mylist[[i]])<=2){
mylist<-mylist[-i]
}
else{
mylist<-myslit
}}

然而,它似乎只删除了 data.frame d。运行 for 循环后,数据框 c 仍在“mylist”中。

最佳答案

您可以使用应用循环更轻松地执行此操作:

row_lt2 <- which(sapply(mylist, nrow) < 2)
mylist[-row_lt2]
[[1]]
x y
1 1 m
2 2 n
3 3 o
4 4 p

[[2]]
x y
1 2 q
2 3 w
3 4 e
4 5 r
5 6 t

[[3]]
x y z
1 6 j $
2 7 k #

请注意,我使用负索引来删除项目而不是选择它们。

关于R 使用 if else 语句从列表中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com