私は、各対象の実験開始からの時間と心理学実験のデータフレームを持っています。私が望むのは、各被験者の試験。これを行うには、基本的には、各試行/被験者の最小時間値を、同じ試行/被験者のすべての値に差し引くだけです。他の列に基づくデータフレームのサブセット上のベクトル化関数
私は現在2つのforループで作業していますが、ベクター化する方法があるかどうかは不思議でした。私は分で持っている:
for (s in 1:max(df$Subject)){
subject <- df[df$Subject==s,]
for (t in 1:max(subject$TrialId)){
trial <- subject[subject$TrialId==t,]
start_offset <- min(trial$timestamp)
df$timestamp[df$Subject==s & df$TrialId==t] <- df$timestamp[df$Subject==s &
df$TrialId==t]
- start_offset
}
}
そして、何私が希望することはdplyr
library(dplyr)
df %>% group_by(Subject, TrialId) %>%
mutate(modified_timestamp = timestamp - min(timestamp))
で
df$timestamp <- df$timestamp - min_per_trial_per_subject(df$timestamp)
データセットのサンプルを追加できますか? https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Ale
完全なデータセットは技術的にGithubにありますが、これで十分でしょうか? –