我有数据集'datatoread',并按照下面的代码填充数据框'MyData'。
datatoread <- "X Y
29 21
18 23
28 24
16 26
3 27
18 29
2 33
3 37
26 39
2 42
25 47
9 54
13 57
17 58
29 60
5 63
23 66
4 69
3 72
17 73
7 73
12 72
8 69
20 66
12 63
8 60
28 58
3 57
18 54
11 47
21 42
8 39
1 37
16 29
3 27
17 22
3 19
6 17
19 14
18 10"
MyData <- read.table(textConnection(datatoread), header = TRUE)
closeAllConnections()
MyData
我想做的是:
结果(请注意这些只是段的坐标,实际可能不同)
Seg X1 Y1 X2 Y2
seg1 18 23 29 21
seg2 29 21 28 24
. . . . .
对于第一部分,我在SAS中尝试过:
data Trapezoidal;
set x_y end=last;
retain integral;
lag_x=lag(x); lag_y = lag(y);
if _N_ eq 1 then integral = 0;
else integral = integral + (x - lag_x) * (y + lag_y) / 2;
run;
什么可能是R或SQL中的等效代码?
或者,假设这个数据:
x <- seq(-12,12,by=1)
y <- dnorm(x,mean=2.5,sd=5)
plot(x,y, type = "l")
z <- cbind(x,y)
plot(z, type = "l")
您也可以使用'z'数据框。