【发布时间】:2018-05-04 08:20:36
【问题描述】:
我有一个包含两个变量的数据集 df:一个(按升序排列)posixct 变量 date.time 和一个数值变量值。变量值由一系列零或一系列大于零的不同正数组成。每个系列的长度是随机的,但大于一。
编辑:加载 lubridate 库
library(lubridate)
数据集df:
set.seed(10)
df <- data.frame(date.time=seq(ymd_hms("2016-01-01 00:00:00"),ymd_hms("2016-01-01 01:00:00"),length.out = 20),value=c(runif(3,1,3),rep.int(0,4),runif(5,1,3),rep.int(0,4),runif(4,1,3)))
期望的结果:
desired.outcome <- cbind(df,peak=c(1,1,1,0,0,0,0,2,2,2,2,2,0,0,0,0,3,3,3,3))
我想创建一个名为 peak 的第三个变量,它将每个大于零的正数系列标识为一个单独的“峰值”。峰值被定义为在两个零系列之间的一系列大于零的正数。
- 什么是获得 df > 500 万行所需结果的有效方法,最好使用 data.table 或 Dplyr?
【问题讨论】:
-
序列错误(ymd_hms("2016-01-01 00:00:00"), ymd_hms("2016-01-01 01:00:00"), : 找不到函数" ymd_hms"
标签: r