首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于其他列的数据子集的矢量化功能

基于其他列的数据子集的矢量化功能
EN

Stack Overflow用户
提问于 2017-11-08 16:02:56
回答 1查看 30关注 0票数 0

我有一个心理学实验的数据,从每个实验开始以来的时间,我想要的是,从每个实验开始以来,每个主题的时间。要做到这一点,我基本上只是将每个试用/subject的最小时间值减去相同的试用/主题的所有值。

我目前正在用两个for循环来实现它,我只是想知道是否有一种方法可以将它矢量化。我现在拥有的是:

代码语言:javascript
复制
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
  }
}

我想要的是

代码语言:javascript
复制
df$timestamp <- df$timestamp - min_per_trial_per_subject(df$timestamp)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 16:08:12

dplyr

代码语言:javascript
复制
library(dplyr)
df %>% group_by(Subject, TrialId) %>%
  mutate(modified_timestamp = timestamp - min(timestamp))

应该行得通。如果没有,请分享一个可重复的例子,以便我们可以测试。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47184293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档