2016-02-21 19 views
1

添加一個新的專欄中,我有一個數據集,看起來像這樣: enter image description here在數據集中

我需要添加一列「忘記」如果有超過2次錯命中這將區分時,它應該包含「是的」,如果小於或等於2次的嘗試,那麼‘無’

我分組,然後再嘗試添加‘是’和‘否’值

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" 
    } 
} 

但是這個代碼放對於數據文件的第一次嘗試「是」,對於其餘的,我噸放「不」。我需要在所有實例中爲不正確命中超過2次的圖標設置「否」。

請問您能告訴我如何實現?

+0

這個代碼中應該做的'group_by'是什麼? – liborm

+0

將行分組並將它們視爲1項@liborm –

+0

請直接在帖子中包含圖像,或者甚至更好地粘貼'dput(d)'的輸出,如果用戶在發佈之前可以嘗試他們的代碼。 – liborm

回答

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 
+0

@ZhannaSarsenbayeva所以請接受答案;) – liborm

+1

從技術上講,你不需要dplyr。 – Heroka

+0

@Heroka從技術上講,你可以在Excel表格中手工完成;) – liborm