Я пытаюсь написать более сжатый / эффективный код для раздела данных.У меня есть фрейм данных с повторяющимся шаблоном данных, см. Пример ниже.
#Simple Sample Data
Date_2012<-c(NA,NA,NA)
X2<-c(1,1,1)
X3<-c(2,2,2)
XNA<-c(NA,NA,NA)
Date_2013<-c(NA,NA,NA)
X6<-c(3,3,3)
X7<-c(4,4,4)
df<-data.frame(Date_2012,X2,X3,XNA,Date_2013,X6,X7)
> df
Date_2012 X2 X3 XNA Date_2013 X6 X7 XNA
1 NA 1 2 NA NA 3 4 NA
2 NA 1 2 NA NA 3 4 NA
3 NA 1 2 NA NA 3 4 NA
Я хочу провести некоторые вычисления с X2 и X3, а затем перейти к X6 и X7 и выполнить те же вычисления.Эти столбцы, используемые для вычислений, всегда будут заданным числом друг от друга, и мне интересно, что использовать для продвижения вычислений, будь то цикл for или что-то еще.
#Calcuations, how to make this efficient? (loop?)
Calc<-df[,2]*df[,3]
Total2012<-sum(Calc)
Calc2<-df[,6]*df[,7]
Total2013<-sum(Calc2)
#Then continuously update the "Totals"
Totals<-c(Total2012,Total2013)
# Desired Result
> Totals
[1] 6 36 #.......... with results being added until columns exhausted
В целом, я хотел бы продолжать продвигаться по фрейму данных (может быть, по целому числу?) И выполнять эти вычисления при обновлении списка итогов, как бы я сделал это эффективно?
Я думал об использовании функции дляуправляйте df[A]*df[b]
, но слишком много столбцов, чтобы сделать его кратким, так как мне пришлось бы многократно вызывать функцию.
Есть ли лучший способ, которого мне не хватает?
Спасиботебе за помощь.