我有2个数据框列表。一个包含一整年的数据框(complete_list),一个仅包含10天选择的数据框(split_list)。
for (a in 1:32) {
nam <- paste("date_list", a, sep = "")
assign(nam, data.frame(Date = sample(seq(ymd('2000-01-01'),ymd('2000-12-31'),by='day'),10)))
}
split_list <- mget(ls(pattern="date_list"))
names(split_list) = paste(paste(rep(c("AB", "CD","EF","GH"), each = 2, length(32)), seq(1:8), sep = "_"), sprintf("V%s",seq(1:32)), sep = "_")
library(lubridate)
df1 = data.frame(replicate(4,sample(0:130,366,rep=TRUE)))
df1$complete = seq(ymd('2000-01-01'),ymd('2000-12-31'),by='day')
df2 = data.frame(replicate(4,sample(0:130,366,rep=TRUE)))
df2$complete = seq(ymd('2000-01-01'),ymd('2000-12-31'),by='day')
df3 = data.frame(replicate(4,sample(0:130,366,rep=TRUE)))
df3$complete = seq(ymd('2000-01-01'),ymd('2000-12-31'),by='day')
df4 = data.frame(replicate(4,sample(0:130,366,rep=TRUE)))
df4$complete = seq(ymd('2000-01-01'),ymd('2000-12-31'),by='day')
complete_list = list(df1, df2, df3, df4)
names(complete_list) = c("AB", "CD", "EF", "GH")
我现在要提取split_list中complete_list的日期和数据。这应该以一种特殊的方式发生。 complete_list中的4个数据框称为“ AB”,“ CD”,“ EF”,“ GH”,我想将这些数据框与split_list包含相同字母的数据框进行匹配。我为每个字母创建了列表条目的序列。我不想按名称来选择它们,因为在我的实际数据框中,名称更加复杂。所以我更喜欢选择他们而不是他们的位置。
这是我走了多远:
sample_AB = c(1,2,9,10,17,18,25,26)
sample_CD = sample_AB + 1
sample_EF = sample_AB + 2
sample_GH = sample_AB + 3
我知道我可以手动提取它:
picked_AB_1 = complete_list$AB[complete_list$AB$Date %in% split_list$AB_1_V1$Date,]
我试图用sample_AB作为运行变量进行循环,但是我没有走得很远。我也想将结果存储在列表中。