Вот (сокращенный) образец из набора данных, над которым я работаю.Выборка представляет данные из эксперимента с 2 сеансами (session_number
), в каждом из которых участники выполняли 5 испытаний (trial_number
) упражнения с захватом руки (итого 10 всего; 2 * 5 = 10).Каждое из 5 испытаний имеет 3 наблюдения силы сцепления рук (percent_of_maximum
).Я хочу получить среднее (ниже, я называю это mean_by_trial
) из этих 3 наблюдений для каждого из 10 испытаний.
Наконец, и это то, на чем я застрял, я хочу вывести данныенабор длиной 20 строк (одна строка для каждого уникального испытания, есть 2 участника и 10 испытаний для каждого участника; 2 * 10 = 20), И сохраняет все остальные переменные.Все остальные переменные (в этом примере: placebo
, support
, personality
и perceived_difficulty
) будут одинаковыми для каждого уникального Participant
, trial_number
или session_number
(см. Примернабор данных ниже).
Я пробовал это с использованием ddply
, что довольно много, чего я хочу, но новый набор данных не содержит других переменных в наборе данных (new_dat
содержит только trial_number
, session_number
, Participant
и новая переменная mean_by_trial
).Как я могу поддерживать другие переменные?
#create sample data frame
dat <- data.frame(
Participant = rep(1:2, each = 30),
placebo = c(replicate(15, "placebo"), replicate(15, "control"), replicate(15, "control"), replicate(15, "placebo")),
support = rep(sort(rep(c("support", "control"), 3)), 10),
personality = c(replicate(30, "nice"), replicate(30, "naughty")),
session_number = c(rep(1:2, each = 15), rep(1:2, each = 15)),
trial_number = c(rep(1:5, each = 3), rep(1:5, each = 3), rep(1:5, each = 3), rep(1:5, each = 3)),
percent_of_maximum = runif(60, min = 0, max = 100),
perceived_difficulty = runif(60, min = 50, max = 100)
)
#this is what I have tried so far
library(plyr)
new_dat <- ddply(dat, .(trial_number, session_number, Participant), summarise, mean_by_trial = mean(percent_of_maximum), .drop = FALSE)
Я хочу, чтобы new_dat
содержал все переменные в dat
плюс переменную mean_by_trial
.Спасибо!