Copy value in the neighboring cell R

时间:2016-08-31 12:33:29

标签: r copy dataset cell

I have a big dataset df; its short version looks like this:

Time    Block   Accuracy    AccuracyFinal
142     Run2    NA          incorrect
234     Run2    incorrect   NA
121     Run2    NA          NA
143     Run2    NA          incorrect
122     Run2    incorrect   NA

I want to copy the value incorrect in the neighboring cell on the left in df$Accuracy, so it would look like this:

Time    Block   Accuracy    AccuracyFinal
142     Run2    incorrect   incorrect
234     Run2    incorrect   NA
121     Run2    NA          NA
143     Run2    incorrect   incorrect
122     Run2    incorrect   NA

What is the most efficient way to do it?

1 个答案:

答案 0 :(得分:0)

我们可以使用data.table通过在'i'中指定逻辑条件并将(:= - 就地更改)指定为'Accuracy'的相应元素为'wrong'

library(data.table)
setDT(df)[ AccuracyFinal == "incorrect" & is.na(Accuracy), Accuracy := "incorrect"]
df
#   Time Block  Accuracy AccuracyFinal
#1:  142  Run2 incorrect     incorrect
#2:  234  Run2 incorrect            NA
#3:  121  Run2        NA            NA
#4:  143  Run2 incorrect     incorrect
#5:  122  Run2 incorrect            NA