У меня есть список фреймов данных с одинаковыми именами столбцов, где каждый фрейм данных соответствует месяцу
June_2018 <- data.frame(Features=c("abc","def","ghi","jkl"), Metric1=c(100,200,250,450), Metric2=c(1000,2000,5000,6000))
July_2018 <- data.frame(Features=c("abc","def","ghi","jkl"), Metric1=c(140,250,125,400), Metric2=c(2000,3000,2000,3000))
Aug_2018 <- data.frame(Features=c("abc","def","ghi","jkl"), Metric1=c(200,150,250,600), Metric2=c(1500,2000,4000,2000))
Sep_2018 <- data.frame(Features=c("abc","def","ghi","jkl"), Metric1=c(500,500,1000,100), Metric2=c(500,4000,6000,8000))
lst1 <- list(Aug_2018,June_2018,July_2018,Sep_2018)
names(lst1) <- c("Aug_2018","June_2018","July_2018","Sep_2018")
Я намереваюсь создать новый столбец в каждом из фреймов данных в списке с именами Percent_Change_Metric1 и Percent_Change_Metric2, выполнив приведенный ниже расчет
for (i in names(lst1)){
lst1[[i]]$Percent_Change_Metric1 <- ((lst1[[i+1]]$Metric1-lst1[[i]]$Metric1)*100/lst1[[i]]$Metric1)
lst1[[i]]$Percent_Change_Metric2 <- ((lst1[[i+1]]$Metric2-lst1[[i]]$Metric2)*100/lst1[[i]]$Metric2)
}
Однако, очевидно, цикл i in for работает против имен (lst1) и не будет работать
Кроме того, данные в моем списке расположены в случайном порядке и не упорядочены по месяцам. Поэтому вычисления для вычитания столбцов последовательных информационных фреймов не совсем точны.
Пожалуйста, сообщите
- Как мне поступить с добавлением Percent_change_Metric1 и
Percent_change_Metric2
Как выбрать соответствующий кадр данных
на следующий месяц, чтобы получить правильный Percent_Change
Спасибо за руководство