cha*_*isz 3 if-statement r list remove-if
我有这个清单:
a <- list(list(c("sam1", "control"), c("sam1", "latanoprost free acid", "GSM6683", "GSM6684"), c("sam1", "prostaglandin F2alpha", "GSM6687", "GSM6688")), list(c("sam2", "control"), c("sam2", "latanoprost free acid", "GSM6681", "GSM6682"), c("sam2", "prostaglandin F2alpha", "GSM6685", "GSM6686")))
Run Code Online (Sandbox Code Playgroud)
我想删除长度小于三(<3)的元素(列表).我尝试了双重lapply来获得[[i]] [[j]]和< - NULL,但是我只获得了带有NULL的列表.像这样:
b <- lapply(seq(length(a)),function(i){
lapply(seq(length(a[[1]])),function(j){
if(length(a[[i]][[j]]) < 3) {a[[i]][[j]] <- NULL}
})
})
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助...
这个怎么样?
lapply(a, function(x) x[sapply(x, length) >= 3])
Run Code Online (Sandbox Code Playgroud)
要么
lapply(a, Filter, f = function(x) length(x) >= 3)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2615 次 |
最近记录: |