如何找到绘图坐标的中间值并将该区域划分为更小的矩形?

时间:2016-12-08 13:06:58

标签: sql r

我有数据集'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

我想做的是:

  1. 绘制数据,在X轴上找到中间值,并从该X值绘制一条垂直线,直到Y值(相应的Y坐标到中间的X)。
    1. 将左半部分分割到中间X到相等的距离(如下图所示),并以某种方式将这些片段制成表格,例如,
  2. 结果(请注意这些只是段的坐标,实际可能不同)

     Seg  X1 Y1  X2 Y2
     seg1 18 23  29 21 
     seg2 29 21  28 24
      .   .  .    .  .
    

    enter image description here

    对于第一部分,我在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'数据框。

0 个答案:

没有答案