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?
答案 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