【发布时间】:2019-11-14 03:12:18
【问题描述】:
我有一个这样的数据框。我想找到 v1 或 v2 的持续时间高于 110。
timestamp v1 v2
14-05-2019 04:28 112.2 111.0
14-05-2019 04:30 112.2 110.9
14-05-2019 04:39 101.4 101.8
14-05-2019 04:40 108.0 108.8
14-05-2019 04:45 101.1 101.5
14-05-2019 04:46 100.8 101.2
14-05-2019 05:32 111.6 111.5
14-05-2019 05:36 111.5 111.5
14-05-2019 05:39 111.5 111.5
14-05-2019 05:41 111.5 111.5
14-05-2019 05:46 111.5 111.4
14-05-2019 05:46 111.5 111.3
14-05-2019 05:47 111.5 111.3
14-05-2019 05:51 111.2 111.2
14-05-2019 05:56 111.2 111.2
14-05-2019 05:57 111.2 111.2
我的代码:
str = 0
end = 0
dur = 0
diff = 0
for (i in (1:norws(x))) {
if((x['v1'][i,] >=110) || (x['v2'][i,] >=110)){
if((str !=0) && (i-str == 1)){
str = i}else{
str = i
end = i - 1
}}
if((str<end) && (end != 0)){
diff = as.numeric(x[end,1] - x[str,1],units="mins")
dur = dur + diff
}}
print(dur)
我想获取 v1 或 v2 大于 110 的连续数据的持续时间。另外,如果 开始和结束都相同,它们不被考虑或差异为0秒。 我会在这里买两套:
14-05-2019 04:28 112.2 111.0
14-05-2019 04:30 112.2 110.9
这里的时间是 2 分钟 14-05-2019 04:30 - 14-05-2019 04:28 同样,
14-05-2019 05:32 111.6 111.5
14-05-2019 05:36 111.5 111.5
14-05-2019 05:39 111.5 111.5
14-05-2019 05:41 111.5 111.5
14-05-2019 05:46 111.5 111.4
14-05-2019 05:46 111.5 111.3
14-05-2019 05:47 111.5 111.3
14-05-2019 05:51 111.2 111.2
14-05-2019 05:56 111.2 111.2
14-05-2019 05:57 111.2 111.2
这里的时间是 25 分钟。即,14-05-2019 05:57 - 14-05-2019 05:32 所以,我总共得到:27 分钟
【问题讨论】:
标签: r dataframe datetime rstudio