我从设备的操作记录器收到的示例数据
df1 <- read.table(text = "temp.1
heating
heating
heating
heating
heating
heating
heating
heating
cooling
heating
heating
heating
heating
heating
heating
cooling
cooling
cooling
cooling
cooling
cooling
cooling
heating
heating
heating
cooling
cooling
heating
heating
heating
cooling
heating
heating
heating
heating
cooling
cooling
cooling
cooling
heating
heating
heating
cooling
heating
cooling
heating
cooling
heating
heating
heating
heating", header = TRUE)
Run Code Online (Sandbox Code Playgroud)
有时,在“加热”期间会出现一次(最多两次)“冷却”观察。这是一个错误,我希望忽略这些值。我想标记修正后的占空比。标记还应包含一个序列号 - 需要有关特定日期发生的加热和冷却循环次数的信息预期结果:
> df1
temp.1 level
1 heating H.1
2 heating H.1
3 heating H.1
4 heating H.1
5 …Run Code Online (Sandbox Code Playgroud) 给出的数据是虚构的,实际上它们更复杂
t <- data.frame(v1=c(265, -268, 123, 58, 560, 56, -260, 40, 530, -895, 20))
Run Code Online (Sandbox Code Playgroud)
我想计算具有两个限制值的累积和:0和500。如果累积总数超过500,则必须保留500。如果累积总数变为负数,则必须存储0。得到的结果如下:
v1 sum.c
1 265 265
2 -268 0
3 123 123
4 58 181
5 560 500
6 56 500
7 -260 240
8 40 280
9 530 500
10 -895 0
11 20 20
Run Code Online (Sandbox Code Playgroud)
Excel中的公式如下:=if(B1+A2<0; 0; if(B1+A2>500; 500; B1+A2))
有任何想法吗?
示例数据
df_1 <- data.frame(a1 = abs(rnorm(50, 1, 1)),
b1 = rnorm(50, 1, 1))
df_2 <- data.frame(a1 = rnorm(50, 1, 10),
b1 = rnorm(50, 1, 1))
df_3 <- data.frame(a1 = rnorm(50, 1, 10),
b1 = rnorm(50, 1, 1))
df_all <- list (df_1, df_2, df_3)
Run Code Online (Sandbox Code Playgroud)
我这样使用ggplot,得到了满意的效果
ggplot() +
geom_line(data = df_all[[1]], aes(x = a1, y = b1), color = "blue", size = 0.05) +
geom_line(data = df_all[[2]], aes(x = a1, y = b1), color = "blue", size = 0.05) +
geom_line(data = …Run Code Online (Sandbox Code Playgroud)