设G是我的“主数据框”,包含多个列,包括“id”。设S [i]是仅包含1列=“id”的多个文件。
G和S [i]中的“id”是相同的。
我想创建H [i],它是G的子集.H [i]包含G BUT中的所有列,仅包含S [i]中的所有列(或S [i]中的“ids”)。
例:
G
id x y
1 1 3
2 1 4
3 2 6
4 3 4
5 4 5
6 4 1
S [1]
id
2
3
6
H [1]将
id x y
2 1 4
3 2 6
6 4 1
假设您创建了一个名为H
的空结果列表,您可以像这样迭代S
中的项:
H <- list()
for(x in 1:length(S))
{
H[[x]] <- subset(G, id %in% S[[x]]$id)
}
考虑一下merge
中的lapply
:
H <- lapply(S, function(x) merge(G, x, by="id"))