これを行う簡単な方法があると思いますが、検索した後、答えが見つかりませんでした。リストがあり、特定のクラスの要素を削除したい。
たとえば、私はリストを持っていると言います
tempList <- list(2,4,'a', 7, 'f')
すべての文字エントリを削除して、2、4、および7のリストを残すにはどうすればよいですか。
前もって感謝します
これを行う簡単な方法があると思いますが、検索した後、答えが見つかりませんでした。リストがあり、特定のクラスの要素を削除したい。
たとえば、私はリストを持っていると言います
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)
Filter(is.numeric, tempList)
これを書くためのきちんとした、機能的な、方法です。