【发布时间】:2012-09-27 06:32:57
【问题描述】:
这行得通:
onion$yearone$id %in% mask$yearone
这不是:
onion[1][1] %in% mask[1]
onion[1]['id'] %in% mask[1]
为什么?缺乏一种在 DF 和 memberids 中的并行列中矢量化的明显方法(所以当 DF 和 memberids 中都存在 ids 时,我每年只得到行),我使用 for 循环,但我没有幸运地找到表示索引的正确方法...帮助?
示例数据:
yearone <- data.frame(id=c("b","b","c","a","a"),v=rnorm(5))
onion <- list()
onion[[1]] <- yearone
names(onion) <- 'yearone'
mask <- list()
mask[[1]] <- c('a','c')
names(mask) <- 'yearone'
【问题讨论】:
-
一个可重现的示例,包括您的数据结构(
dput(DT)或类似的)将在这里有所帮助。[的工作方式取决于对象的类(data.frame、matrix、vector)。阅读?[! -
请注意,您有 1 个 data.frames 列表和 1 个原子向量列表,因此标题有点误导(或者您需要将
mask[[1]]更改为data.frame(mask_id = c('a','c'))或类似的东西 -
是的,在这个例子中我有一个数据框和一个原子列表,但在我的真实数据中,我有一个用于许多财政年度的数据。
-
好吧,你必须调整我的答案才能允许这个.....
-
我的意思是许多数据帧的列表和许多原子向量的列表。你的回答很好用,谢谢! :7)
标签: r dataframe vectorization subset