如何在r中包含列表的数据帧行上基于某些条件对数据帧进行子集
我有一个dataframe,它在dataframe的每行中包含一个值列表。我想检查一些条件,并基于这些条件,我想子集一个数据帧。例如,在下面的代码中,myDF是我的数据帧。就是如何在r中包含列表的数据帧行上基于某些条件对数据帧进行子集,r,dataframe,R,Dataframe,我有一个dataframe,它在dataframe的每行中包含一个值列表。我想检查一些条件,并基于这些条件,我想子集一个数据帧。例如,在下面的代码中,myDF是我的数据帧。就是 ID Value A c(1000, 2000, 3000) B c(2000, 500, 1000) ID <- c("A", "B") Value <- list( c(1000, 2000, 3000), c(2000, 500, 1000)) myDF <- data.fram
ID Value
A c(1000, 2000, 3000)
B c(2000, 500, 1000)
ID <- c("A", "B")
Value <- list( c(1000, 2000, 3000), c(2000, 500, 1000))
myDF <- data.frame(ID=ID, Value=cbind(Value))
vec <- c(2000,3000)
##Condition
cnd <- which(myDF$Value[[1]] %in% vec)
这就是你想要的吗
myDF$Value_filtered <- lapply(seq(myDF$Value), function(i) myDF$Value[[i]][which(myDF$Value[[i]] %in% vec)])
myDF$Value\u抱歉,这是一个输入错误。它很好用,这就是我想要的。还有别的办法吗。在r中使用子集函数无法实现这一点。
[[1]]
ID Value
2 B 2000, 500, 1000
NA <NA> NULL
[[2]]
ID Value
2 B 2000, 500, 1000
NA <NA> NULL
ID Value
A c(2000, 3000)
B 2000
myDF$Value_filtered <- lapply(seq(myDF$Value), function(i) myDF$Value[[i]][which(myDF$Value[[i]] %in% vec)])