R:如何按值或类型从列表中删除元素
R: How to remove element from list by value or type
我有一个包含列表和 NA 的列表。我想过滤掉 NA,但我不知道 NA 的确切名称或位置。
我在谷歌上搜索了很多,但只找到了如何按名称或通过索引删除元素,但这不是我要找的。
这是我的列表的示例:
example <- list(list(1,2,3), list(2,3,4), NA, list(2,3,4))
我的输出如下所示:
Name Type Value
example list[[4]] List of length 4
[[1]] list[[3]] List of length 3
[[2]] list[[3]] List of length 3
[[3]] logical NA <-I'd like to remove this row
[[4]] list[[3]] List of length 3
如果值为 "NA" 或类型为 "logical",我想编写一个循环从我的列表中删除一个元素。预先感谢您的帮助!
您可以使用which
函数找到NA
个元素的索引,然后通过索引删除它们:
example[-which(is.na(example))]
这取决于你的数据结构。对于您的示例,以下内容将起作用:
example[!is.na(example) & !is.logical(example)]
如果子列表也可以包含您要删除的 NA
,这将变得更加复杂。
这是一种从 R 列表中删除 NA 值的简单方法
example <- example[!is.na(example)]
我有一个包含列表和 NA 的列表。我想过滤掉 NA,但我不知道 NA 的确切名称或位置。
我在谷歌上搜索了很多,但只找到了如何按名称或通过索引删除元素,但这不是我要找的。
这是我的列表的示例:
example <- list(list(1,2,3), list(2,3,4), NA, list(2,3,4))
我的输出如下所示:
Name Type Value
example list[[4]] List of length 4
[[1]] list[[3]] List of length 3
[[2]] list[[3]] List of length 3
[[3]] logical NA <-I'd like to remove this row
[[4]] list[[3]] List of length 3
如果值为 "NA" 或类型为 "logical",我想编写一个循环从我的列表中删除一个元素。预先感谢您的帮助!
您可以使用which
函数找到NA
个元素的索引,然后通过索引删除它们:
example[-which(is.na(example))]
这取决于你的数据结构。对于您的示例,以下内容将起作用:
example[!is.na(example) & !is.logical(example)]
如果子列表也可以包含您要删除的 NA
,这将变得更加复杂。
这是一种从 R 列表中删除 NA 值的简单方法
example <- example[!is.na(example)]