我进行了一个实验,人们在立方体周围移动,直到他们做出自己喜欢的图形为止。当他们喜欢一个图形时,他们会保存并创建一个新图形。该脚本跟踪了所有数字保险箱之间的移动时间和移动次数。
我现在有一个(A)列,其中每个保存之间的移动次数,以及一个(B)列,其中每个动作之间的时间直到保存该图形。因此,A列填充有NA,然后是一个数字(表示图形安全),B列的所有行(第一行除外)都有以秒为单位的时间,表示所有移动。
数据摘录:
A B C
NA 1.6667798
NA 3.3326443
NA 3.5506110
NA 11.4995562
NA 1.4334849
NA 4.9502637
NA 2.1161980
NA 4.7833326
NA 2.8500842
NA 4.0331373
NA 4.3498785
12 5.0910905 Sum
NA 4.2424078
NA 1.7332665
NA 1.5341006
3 4.8923275 Sum
NA 4.1064621
NA 3.3498289
NA 1.6002373
3 6.0122170 Sum
我尝试了几种循环选项,但似乎无法使其正常运行。 我做了这个循环,但是它没有在C列中进行正确的计算。
data$C <- rep(NA,nrow(data))
for (i in unique(data$id)) {
C <- which(data$id == i & data$type == "moveblock")
for (e in 1:length(C)){
if (e == 1){
data$C[C[e]] = C[e] - which(data$id == i)[1]
}
else if (e > 1){
data$C[C[e]] = C[e] + C[e+1]+1}
}
d_times <- which(data$id == i)
for (t in 2:length(d_times)){
data$B[d_times[t]] <- data$time[d_times[t]] - data$time[d_times[t-1]]
}
}
我想要一个新列(C),它具有从B列到保存一个图形为止的所有行的总和= A列中的一个数字。换句话说,我想计算对象花费的总时间在保存图形之前进行所有移动。
希望任何人都可以解决!