根据从另一个列表中删除的 ID 从一个列表中删除值

标签 r list

我有一个数据框,已根据 ID (l1) 将其拆分为列表。我还有另一个列表 l2,它根据 ID 名称连接到 l1。其中一个列表元素具有 NA 值,我已将该元素从列表中删除 (l2_new)。

我希望能够从 l1 中删除由于 NA 而从 l2 中删除的相同 ID 值导致预期对象的值。有没有好的方法可以做到这一点(最好是在基础 R 中)?

library(lubridate)
library(tidyverse)

date <- rep_len(seq(dmy("01-01-2013"), dmy("31-12-2013"), by = "days"), 300)
ID <-  rep(c("A","B","C"), 50)
df <- data.frame(date = date,
                   utm_x = runif(length(date), min = 238785, max = 453354.5),
                   utm_y = runif(length(date), min = 4096853.0  , max = 4280487.1 ),
                   ID)

l1 <- df %>% 
  group_split(ID)

names(l1) <- sapply(l1, function(x) paste(x$ID[1],
                                            sep = '_'))

l2 <- list(1,2,NA)
names(l2) <- c("A", "B", "C")

l2_new <- Filter(function(a) any(!is.na(a)), l2)

expected <- l2[-3]

最佳答案

我们可以使用“l2_new”的名称来对“l2”进行子集

l2[names(l2_new)]

关于根据从另一个列表中删除的 ID 从一个列表中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71788849/

相关文章:

java - 编写一个名为 Child 的简单接口(interface)(其中没有任何内容),并使用它创建一个只能存储 Boy 和 Girl 实例的 ArrayList

python - 如何将来自不同列表的数据合并到各自的行中?

r - 通过带有嵌入式传单 svg 等的 RSelenium 提取底层数据

java - 在android中添加两个MutableList

c# - 选择数组中的多个元素并将它们转换为列表 C#

r - 在 R 中使用 case_when 调试创建的函数

python - 如何在没有numpy的情况下在python中每次打印跳过一个元素的列表?

r - 如何在R数据帧中获得独占计数

r - csv 中的时间序列顺序错误

r - 如何从 MCMCglmm 中提取随机效应?