Скажем, у меня есть переменные с несколькими временными точками, и я хочу сделать некоторые операции для всех временных точек.Как мне сделать это более эффективным способом, чем сделать это для каждого отдельного момента времени?В приведенных ниже примерах я хочу: 1) получить сумму для выбранных столбцов для каждой временной точки и 2) для каждой переменной посмотреть, насколько она изменяется от базовой линии до всех временных точек
#fake data to show what the dataset I receive looks like:
library(reshape2)
id=rep(c(1,1,1,2,2,2,3,3,3), 3)
time=c(rep("Time1",9), rep("Time2",9), rep("Time3",9))
test=rep(c("calcium","magnesium","zinc"), 9)
score=rnorm(n = 27, mean = 10, sd = 3)
fake <- data.frame(id, time, test, score)
fake <- dcast(fake, id ~ time + test)
#Task 1- Get total of selected columns at each time point
#Non-efficient method:
fake$totalmgcad1 <- rowSums(fake[,c("Time1_calcium", "Time1_magnesium")])
fake$totaldmgca2 <- rowSums(fake[,c("Time2_calcium", "Time2_magnesium")])
fake$totaldmgca3 <- rowSums(fake[,c("Time3_calcium", "Time3_magnesium")])
#Task 2 - Get change in calcium levels from baseline to each day
#Non-efficient method:
fake$calciumt1t2 <- fake$Time2_calcium - fake$Time1_calcium
fake$calciumt1t3 <- fake$Time3_calcium - fake$Time1_calcium
Любые советыза то, как я могу сделать выше в меньшее количество строкЕсть ли способ использовать group_by () для этого, или мне нужно составить списки и использовать lapply ()?