从 R 列表中删除特定类的元素

标签 r list removeclass

我希望有一个简单的方法可以做到这一点,但搜索后找不到答案。我有一个列表,想要删除特定类的元素。

例如说我有列表

tempList <- list(2,4,'a', 7, 'f')

如何删除所有字符条目,只留下 2、4 和 7 的列表。

提前致谢

最佳答案

尝试

> tempList[!sapply(tempList, function(x) class(x) == "character")]
[[1]]
[1] 2

[[2]]
[1] 4

[[3]]
[1] 7

请注意,这是等效的。

tempList[sapply(tempList, function(x) class(x) != "character")]

如果你需要经常使用它,你可以将它做成一个函数。

classlist <- function(x) {
  sapply(x, class)
}

tempList[classlist(tempList) != "character"]

classlist2 <- function(x) {
  x[!sapply(x, function(m) class(m) == "character")]
}

classlist2(tempList)

关于从 R 列表中删除特定类的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659323/

相关文章:

regex - 带有正则表达式的字符串中第一个和最后一个非点的位置

F#中的列表理解

java - 是否有一个标准的 Java List 实现不允许向其添加 null?

jquery - 如何从同级元素中定位和删除类?

javascript - addClass 和 removeClass 方法无法正常工作

正则表达式获取间隔下划线之间的字符串

r - 更改survminer中标题 "number at risk"的大小

r - igraph graph.lattice 适用于所有组合(在 R 中)

c++ - 创建对象指针列表

javascript - 删除类不起作用