这可能是很长的路要走,但我不知道如何缩短它。在下面的数据框中 (df3),我有 2 个站点,其深度范围从 0.1 到 15.1,间隔为 0.1。密度从表面到深海发生变化,但我需要找到每个地点深度 10m 后密度增加 0.03 的位置。有没有办法通过站点找到该深度?
depth <- seq(from = 0.1, to =15.1, by = 0.1)
density <- c(NA, NA, NA, NA, NA, 1027.073188, 1027.073543, 1027.073898, 1027.074253, 1027.074607, 1027.074962, 1027.075317, 1027.075672, 1027.076026, 1027.076381, 1027.076736, 1027.077118, 1027.077501, 1027.077884, 1027.078267, 1027.078649, 1027.079032, 1027.079415, 1027.079797, 1027.08018, 1027.080563, 1027.081026, 1027.081489, 1027.081952, 1027.082415, 1027.082878, 1027.08334, 1027.083803, 1027.084266, 1027.084729, 1027.085192, 1027.085663, 1027.086134, 1027.086605, 1027.087076, 1027.087547, 1027.088018, 1027.088489, 1027.08896, 1027.089431, 1027.089909, 1027.090387, 1027.090865, 1027.091344, 1027.091822, 1027.0923, 1027.092778, 1027.093256, 1027.093735, 1027.094213, 1027.094691, 1027.095162, 1027.095633, 1027.096104, 1027.096575, 1027.097046, 1027.097517, 1027.097987, 1027.098458, 1027.098929, 1027.0994, 1027.099871, 1027.100342, 1027.100813, 1027.101284, 1027.101755, 1027.102226, 1027.102697, 1027.103167, 1027.103638, 1027.104109, 1027.104556, 1027.105003, 1027.10545, 1027.105897, 1027.106344, 1027.106791, 1027.107237, 1027.107684, 1027.108131, 1027.108578, 1027.109041, 1027.109504, 1027.109967, 1027.110429, 1027.110892, 1027.111355, 1027.111818, 1027.112281, 1027.112744, 1027.113207, 1027.113683, 1027.114159, 1027.114635, 1027.115112, 1027.115588, 1027.116065, 1027.116542, 1027.117019, 1027.117497, 1027.117974, 1027.118451, 1027.118928, 1027.119406, 1027.119883, 1027.12036, 1027.120836, 1027.121312, 1027.121788, 1027.122264, 1027.12274, 1027.123216, 1027.123692, 1027.124167, 1027.124643, 1027.125119, 1027.125595, 1027.126071, 1027.126547, 1027.127023, 1027.127499, 1027.127975, 1027.128451, 1027.128926, 1027.129402, 1027.129878, 1027.130354, 1027.13083, 1027.131305, 1027.131781, 1027.132257, 1027.132732, 1027.133208, 1027.133684, 1027.134159, 1027.134635, 1027.135111, 1027.135587, 1027.136062, 1027.136538, 1027.137014, 1027.137489, 1027.137965, 1027.138441, 1027.138916, 1027.139392)
df <- as.data.frame(cbind(depth, density))
df$site <- 1
df2 <- as.data.frame(cbind(depth, density-0.015))
df2$site <- 2
colnames(df2)[2] <- "density"
df3 <- rbind(df, df2)
不幸的是,对于每个
site
,行方向的density
差异不大于.03
。此外,不存在大于.03
的行方向累积密度差:
df3 = subset(df3, depth >= 10)
df3$cdd =
with(df3, ave(density, site, FUN = \(x) {i = c(NA, diff(x)); i[is.na(i)] = 0L; cumsum(i) >= .03}))
# df3
depth density site cdd
100 10.0 1027.115 1 0
101 10.1 1027.116 1 0
102 10.2 1027.116 1 0
103 10.3 1027.117 1 0
104 10.4 1027.117 1 0
105 10.5 1027.117 1 0
106 10.6 1027.118 1 0
107 10.7 1027.118 1 0
108 10.8 1027.119 1 0
109 10.9 1027.119 1 0
110 11.0 1027.120 1 0
111 11.1 1027.120 1 0
112 11.2 1027.121 1 0
113 11.3 1027.121 1 0
114 11.4 1027.122 1 0
115 11.5 1027.122 1 0
116 11.6 1027.123 1 0
117 11.7 1027.123 1 0
118 11.8 1027.124 1 0
119 11.9 1027.124 1 0
120 12.0 1027.125 1 0
121 12.1 1027.125 1 0
122 12.2 1027.126 1 0
123 12.3 1027.126 1 0
124 12.4 1027.127 1 0
125 12.5 1027.127 1 0
126 12.6 1027.127 1 0
127 12.7 1027.128 1 0
128 12.8 1027.128 1 0
129 12.9 1027.129 1 0
130 13.0 1027.129 1 0
131 13.1 1027.130 1 0
132 13.2 1027.130 1 0
133 13.3 1027.131 1 0
134 13.4 1027.131 1 0
135 13.5 1027.132 1 0
136 13.6 1027.132 1 0
137 13.7 1027.133 1 0
138 13.8 1027.133 1 0
139 13.9 1027.134 1 0
140 14.0 1027.134 1 0
141 14.1 1027.135 1 0
142 14.2 1027.135 1 0
143 14.3 1027.136 1 0
144 14.4 1027.136 1 0
145 14.5 1027.137 1 0
146 14.6 1027.137 1 0
147 14.7 1027.137 1 0
148 14.8 1027.138 1 0
149 14.9 1027.138 1 0
150 15.0 1027.139 1 0
151 15.1 1027.139 1 0
251 10.0 1027.100 2 0
252 10.1 1027.101 2 0
253 10.2 1027.101 2 0
254 10.3 1027.102 2 0
255 10.4 1027.102 2 0
256 10.5 1027.102 2 0
257 10.6 1027.103 2 0
258 10.7 1027.103 2 0
259 10.8 1027.104 2 0
260 10.9 1027.104 2 0
261 11.0 1027.105 2 0
262 11.1 1027.105 2 0
263 11.2 1027.106 2 0
264 11.3 1027.106 2 0
265 11.4 1027.107 2 0
266 11.5 1027.107 2 0
267 11.6 1027.108 2 0
268 11.7 1027.108 2 0
269 11.8 1027.109 2 0
270 11.9 1027.109 2 0
271 12.0 1027.110 2 0
272 12.1 1027.110 2 0
273 12.2 1027.111 2 0
274 12.3 1027.111 2 0
275 12.4 1027.112 2 0
276 12.5 1027.112 2 0
277 12.6 1027.112 2 0
278 12.7 1027.113 2 0
279 12.8 1027.113 2 0
280 12.9 1027.114 2 0
281 13.0 1027.114 2 0
282 13.1 1027.115 2 0
283 13.2 1027.115 2 0
284 13.3 1027.116 2 0
285 13.4 1027.116 2 0
286 13.5 1027.117 2 0
287 13.6 1027.117 2 0
288 13.7 1027.118 2 0
289 13.8 1027.118 2 0
290 13.9 1027.119 2 0
291 14.0 1027.119 2 0
292 14.1 1027.120 2 0
293 14.2 1027.120 2 0
294 14.3 1027.121 2 0
295 14.4 1027.121 2 0
296 14.5 1027.122 2 0
297 14.6 1027.122 2 0
298 14.7 1027.122 2 0
299 14.8 1027.123 2 0
300 14.9 1027.123 2 0
301 15.0 1027.124 2 0
302 15.1 1027.124 2 0
我理解正确吗?您是否正在寻找与 10 深度值的比较?
数据
depth <- seq(from = 0.1, to =15.1, by = 0.1)
density <- c(NA, NA, NA, NA, NA, 1027.073188, 1027.073543, 1027.073898, 1027.074253, 1027.074607, 1027.074962, 1027.075317, 1027.075672, 1027.076026, 1027.076381, 1027.076736, 1027.077118, 1027.077501, 1027.077884, 1027.078267, 1027.078649, 1027.079032, 1027.079415, 1027.079797, 1027.08018, 1027.080563, 1027.081026, 1027.081489, 1027.081952, 1027.082415, 1027.082878, 1027.08334, 1027.083803, 1027.084266, 1027.084729, 1027.085192, 1027.085663, 1027.086134, 1027.086605, 1027.087076, 1027.087547, 1027.088018, 1027.088489, 1027.08896, 1027.089431, 1027.089909, 1027.090387, 1027.090865, 1027.091344, 1027.091822, 1027.0923, 1027.092778, 1027.093256, 1027.093735, 1027.094213, 1027.094691, 1027.095162, 1027.095633, 1027.096104, 1027.096575, 1027.097046, 1027.097517, 1027.097987, 1027.098458, 1027.098929, 1027.0994, 1027.099871, 1027.100342, 1027.100813, 1027.101284, 1027.101755, 1027.102226, 1027.102697, 1027.103167, 1027.103638, 1027.104109, 1027.104556, 1027.105003, 1027.10545, 1027.105897, 1027.106344, 1027.106791, 1027.107237, 1027.107684, 1027.108131, 1027.108578, 1027.109041, 1027.109504, 1027.109967, 1027.110429, 1027.110892, 1027.111355, 1027.111818, 1027.112281, 1027.112744, 1027.113207, 1027.113683, 1027.114159, 1027.114635, 1027.115112, 1027.115588, 1027.116065, 1027.116542, 1027.117019, 1027.117497, 1027.117974, 1027.118451, 1027.118928, 1027.119406, 1027.119883, 1027.12036, 1027.120836, 1027.121312, 1027.121788, 1027.122264, 1027.12274, 1027.123216, 1027.123692, 1027.124167, 1027.124643, 1027.125119, 1027.125595, 1027.126071, 1027.126547, 1027.127023, 1027.127499, 1027.127975, 1027.128451, 1027.128926, 1027.129402, 1027.129878, 1027.130354, 1027.13083, 1027.131305, 1027.131781, 1027.132257, 1027.132732, 1027.133208, 1027.133684, 1027.134159, 1027.134635, 1027.135111, 1027.135587, 1027.136062, 1027.136538, 1027.137014, 1027.137489, 1027.137965, 1027.138441, 1027.138916, 1027.139392)
df <- data.frame(depth, density, site = 1)
df2 <- data.frame(depth, density = density - .015, site = 2)
colnames(df2)[2] <- "density"
df3 <- rbind(df, df2)