R或Excel中的PDF用于具有三个不同变量的多个Excel工作表

时间:2014-09-29 16:57:32

标签: r excel vba excel-vba

我是R的学习者,他有一个excel文件,有一个月的多张纸,跨越30年。每个工作表有3个变量和17个列(如下所示)。我试图找到每张纸中每个变量的概率密度函数(PDF)。例如,在每个工作表的第一个高度(粗体),我想要PDF,第二个高度,第三个高度等等。 方向和速度也是如此。

这可能在R?甚至Excel?

         Sheet1                     Sheet2                          Sheet3
 Height Direction Velocity  Height Direction Velocity     Height Direction Velocity
   **147**  304       2.3       141**   336      2.2      **148**   320      1.4
    800     308       2.8       797     351      2.4        806     330      1
    1500    310       4.1       1503    335      2          1515    293      0.4
    3077    308       9.3       3096    293      4.2        3112    315      1
    4299    309       14.1      4325    296      6.4        4342    333      3.3
    5704    308       18.9      5733    295      8.4        5753    333      5.7
    7361    308       23.6      7388    299      10.5       7409    331      7.9
    9388    309       29.1      9404    306      13.3       9425    330      10.4
    10610   310       31.1      10616   305      14.6       10638   323      11.5
    12051   308       31        12051   301      15         12072   309      12.4
    13855   302       27        13853   291      14.3       13874   293      12.6
    16354   299       16.3      16352   282      10.8       16374   280      8.7
    18549   294       9.2       18552   283      7.7        18572   278      5.2
    20643   289       5.8       20649   275      6.2        20670   281      4.8
    23860   264       6         23891   260      5.9        23896   269      7.3
    26471   267       10.6      26504   269      8.5        26505   269      12.1
    31004   245       17.5      31055   262      11.9       31050   254      17.7

如何在R或Excel中进行此操作?我希望有人能指出我正确的方向。 谢谢大家。

1 个答案:

答案 0 :(得分:0)

您可以使用density功能。

以您的数据为例:

df <- read.table(text="Height Direction Velocity  Height Direction Velocity     Height Direction Velocity
     147    304       2.3       141     336      2.2        148     320      1.4
    800     308       2.8       797     351      2.4        806     330      1
    1500    310       4.1       1503    335      2          1515    293      0.4
    3077    308       9.3       3096    293      4.2        3112    315      1
    4299    309       14.1      4325    296      6.4        4342    333      3.3
    5704    308       18.9      5733    295      8.4        5753    333      5.7
    7361    308       23.6      7388    299      10.5       7409    331      7.9
    9388    309       29.1      9404    306      13.3       9425    330      10.4
    10610   310       31.1      10616   305      14.6       10638   323      11.5
    12051   308       31        12051   301      15         12072   309      12.4
    13855   302       27        13853   291      14.3       13874   293      12.6
    16354   299       16.3      16352   282      10.8       16374   280      8.7
    18549   294       9.2       18552   283      7.7        18572   278      5.2
    20643   289       5.8       20649   275      6.2        20670   281      4.8
    23860   264       6         23891   260      5.9        23896   269      7.3
    26471   267       10.6      26504   269      8.5        26505   269      12.1
    31004   245       17.5      31055   262      11.9       31050   254      17.7", header=TRUE)

现在将函数density应用于每列:

densities <- lapply(df, density)

绘制第一个高度密度并叠加其他两个高度(它们几乎相同):

plot(densities[[1]], main = "height")
lines(densities[[4]], col="red")
lines(densities[[7]], col="blue")

enter image description here