Я думаю, что мою проблему не сложно решить без моих данных.Я хотел бы выполнить для этого цикл в R вместо того, чтобы делать это вручную, поскольку ответ не всегда состоит из 34 итераций, он может быть более или менее.
«Цена» фрейма данных абсолютно огромна (около 4 миллионов)строк на 20 столбцов), но не изменяется.
![price](https://i.stack.imgur.com/qhS7c.png)
Фрейм данных "ihbm_hf" намного меньше, 34 строки на 20 столбцов, но ИЗМЕНИТСЯ на основе другого вычисления.
![ihbm_hf](https://i.stack.imgur.com/sV2TD.png)
Идентификатором для обоих информационных кадров является GVKEY, но я хочу только сохранить данные в цене для GVKEY, содержащиеся в «ihbm_hf», и сохранить эти данные в phbm_hfm1
Это задача, которую я хочу выполнить автоматически.
phbm_hf1 <- price[which(ihbm_hf$gvkey[1] == price$gvkey),]
phbm_hf2 <- price[which(ihbm_hf$gvkey[2] == price$gvkey),]
phbm_hf3 <- price[which(ihbm_hf$gvkey[3] == price$gvkey),]
phbm_hf4 <- price[which(ihbm_hf$gvkey[4] == price$gvkey),]
phbm_hf5 <- price[which(ihbm_hf$gvkey[5] == price$gvkey),]
phbm_hf6 <- price[which(ihbm_hf$gvkey[6] == price$gvkey),]
phbm_hf7 <- price[which(ihbm_hf$gvkey[7] == price$gvkey),]
phbm_hf8 <- price[which(ihbm_hf$gvkey[8] == price$gvkey),]
phbm_hf9 <- price[which(ihbm_hf$gvkey[9] == price$gvkey),]
phbm_hf10 <- price[which(ihbm_hf$gvkey[10] == price$gvkey),]
phbm_hf11 <- price[which(ihbm_hf$gvkey[11] == price$gvkey),]
phbm_hf12 <- price[which(ihbm_hf$gvkey[12] == price$gvkey),]
phbm_hf13 <- price[which(ihbm_hf$gvkey[13] == price$gvkey),]
phbm_hf14 <- price[which(ihbm_hf$gvkey[14] == price$gvkey),]
phbm_hf15 <- price[which(ihbm_hf$gvkey[15] == price$gvkey),]
phbm_hf16 <- price[which(ihbm_hf$gvkey[16] == price$gvkey),]
phbm_hf17 <- price[which(ihbm_hf$gvkey[17] == price$gvkey),]
phbm_hf18 <- price[which(ihbm_hf$gvkey[18] == price$gvkey),]
phbm_hf19 <- price[which(ihbm_hf$gvkey[19] == price$gvkey),]
phbm_hf20 <- price[which(ihbm_hf$gvkey[20] == price$gvkey),]
phbm_hf21 <- price[which(ihbm_hf$gvkey[21] == price$gvkey),]
phbm_hf22 <- price[which(ihbm_hf$gvkey[22] == price$gvkey),]
phbm_hf23 <- price[which(ihbm_hf$gvkey[23] == price$gvkey),]
phbm_hf24 <- price[which(ihbm_hf$gvkey[24] == price$gvkey),]
phbm_hf25 <- price[which(ihbm_hf$gvkey[25] == price$gvkey),]
phbm_hf26 <- price[which(ihbm_hf$gvkey[26] == price$gvkey),]
phbm_hf27 <- price[which(ihbm_hf$gvkey[27] == price$gvkey),]
phbm_hf28 <- price[which(ihbm_hf$gvkey[28] == price$gvkey),]
phbm_hf29 <- price[which(ihbm_hf$gvkey[29] == price$gvkey),]
phbm_hf30 <- price[which(ihbm_hf$gvkey[30] == price$gvkey),]
phbm_hf31 <- price[which(ihbm_hf$gvkey[31] == price$gvkey),]
phbm_hf32 <- price[which(ihbm_hf$gvkey[32] == price$gvkey),]
phbm_hf33 <- price[which(ihbm_hf$gvkey[33] == price$gvkey),]
phbm_hf34 <- price[which(ihbm_hf$gvkey[34] == price$gvkey),]
phbm_hf <- rbind(phbm_hf1, phbm_hf2, phbm_hf3, phbm_hf4,
phbm_hf5, phbm_hf6, phbm_hf7, phbm_hf8,
phbm_hf9, phbm_hf10, phbm_hf11, phbm_hf12,
phbm_hf13, phbm_hf14, phbm_hf15, phbm_hf16,
phbm_hf17, phbm_hf18, phbm_hf19, phbm_hf20,
phbm_hf21, phbm_hf22, phbm_hf23, phbm_hf24,
phbm_hf25, phbm_hf26, phbm_hf27, phbm_hf28,
phbm_hf29, phbm_hf30, phbm_hf31, phbm_hf32,
phbm_hf33, phbm_hf34)
В результате получается 98 369 строк на 20 столбцов.
phbm_hf
Это именно то, что я хотел.Но так как количество строк, содержащихся в ihbm_hf, не всегда равно 34, я не могу использовать этот код, он работал, потому что я знаю, что длина ihbm_hf на тот момент была 34.
####since the length can be longer or shorter than 34
l <- length(ihbm_hf$gvkey)
for(i in 1:l){
phbm_hf <- price[which(ihbm_hf$gvkey[i] == price$gvkey),]
}
Проблема с этим кодомявляется то, что он сохранил в phbm_hf только последнее наблюдение (34-е наблюдения), и я понятия не имею, как я могу сохранить их, как я делаю это вручную, в длинном коде внутри цикла.