可能有一个基本的解决方法,但是作为 R 的新手,我一直没有找到它。
我有两个变量,V1(POSIXct)和 V2(数字)。如果 V2!=0,我想将 (10-V2) 秒添加到 V1
df <- data.frame(V1=c(970068340, 970068350, 970068366, 970068376, 970068380,
970068394), V2= c(0,0,6,6,0,4))
我尝试了以下循环,但有超过 200 万次观察,执行时间太长。这个问题有有效的解决方案吗?
for(i in 1:length(df$V2)) {
if (df$V2[i] != 0){
df$V1[i] = df$V1[i] + (10-df$V2[i])
}
}
为澄清起见,数据如下所示:
V1 V2
970068340 0
970068350 0
970068356 6
970068366 6
970068370 0
970068384 4
我想将其转换为以下内容:
V1 V2
970068340 0
970068350 0
970068360 6
970068370 6
970068370 0
970068390 4