在数据集

时间:2016-02-21 11:01:29

标签: r

我有一个如下所示的数据集: enter image description here

我需要添加一个列"忘记"这将区分是否有超过2个错误的命中,它应该包含"是",如果小于或等于2次尝试,那么" no"

我先分组,然后尝试添加"是"和"不"值

library(dplyr)
p <- group_by(d,  Participant, Session, Condition, Block, PassedIconName)

for (i in 1:nrow(p)){
  if (p$WrongHitsCount[i] >2){
    p$Forget[i] <- "yes"
  } else {
    p$Forget[i] <-"no"
  }
}

但是这段代码放了&#34;是&#34;对于数据文件的第一次尝试,对于其余的,它放置&#34; no&#34;。我需要&#34;不&#34;在所有实例中,图标被错误地击中次数超过2次。

你能告诉我它是如何实现的吗?

1 个答案:

答案 0 :(得分:0)

坚持dplyr;)

d %>%
  mutate(forgets = ifelese(WrongHitsCount > 2, "yes", "no")) ->
  dmod

或者如果你想由小组来做。你的简单for循环不会服从group_by。在问题中你想要做什么样的聚合并不是很清楚,所以我分别对每一行使用> 2条件(或者你可能想要总结错误的命中然后与2进行比较):

d %>%
  mutate(condition_hit = WrongHitsCount > 2) %>%
  group_by(Participant, Session, Condition, Block, PassedIconName) %>%
  summarise(condition_hit = sum(condition_hit)) %>%
  mutate(forgets = ifelese(condition_hit > 1, "yes", "no")) %>%
  select(-condition_hit) ->
  dmod