У меня есть фрейм данных, который выглядит следующим образом:
df <- data.frame(ID = c(1,2,3,4,5,6), Type = c("A","A","B","B","C","C"), `2019` = c(1,2,3,4,5,6),`2020` = c(2,3,4,5,6,7), `2021` = c(3,4,5,6,7,8))
ID Type X2019 X2020 X2021
1 1 A 1 2 3
2 2 A 2 3 4
3 3 B 3 4 5
4 4 B 4 5 6
5 5 C 5 6 7
6 6 C 6 7 8
Теперь я ищу код, который выполняет следующее: 1. Создайте новый data.frame для каждой строки в df 2. Называет новый фрейм данных с комбинацией «ID» и «Тип» (A_1, A_2, ..., C_6)
Полученные новые фреймы данных должны выглядеть следующим образом (пример для A_1, A_2 и C_6):
Year Values
1 2019 1
2 2020 2
3 2021 3
Year Values
1 2019 2
2 2020 3
3 2021 4
Year Values
1 2019 6
2 2020 7
3 2021 8
У меня есть некоторые вещи, которые как-то усложняют код: 1. Код должен работать в течение следующих нескольких лет без каких-либо изменений, то есть в следующем году data.frame df больше не будет содержать 2019-2021, а точнее 2020-2022. 2. Поскольку data.frame df является лишь минимальным воспроизводимым примером, мне нужен какой-то цикл. В «настоящих» данных у меня намного больше строк и, следовательно, гораздо больше фреймов данных, которые нужно создать.
К сожалению, я не могу дать вам никакого кода, так как совершенно не представляю, как я могу управлятьэто. Во время исследования я обнаружил следующий код, который может помочь решить первую проблему с изменяющимися годами:
year <- as.numeric(format(Sys.Date(), "%Y"))
Далее я прочитал о списке и что он может помочь работать со списком в цикле forи затем преобразуйте список обратно в фрейм данных. Извините за мой ограниченный подход, я надеюсь, что кто-нибудь может дать мне подсказку или даже решение моей проблемы. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Заранее спасибо!
Этот вопрос похож на мой: Заполнение фрейма данных в R в цикле