相关疑难解决方法(0)

在R中的长data.frames上有效使用函数

我有一个长数据框,其中包含来自桅杆的气象数据.它包含在不同高度()data$value的不同参数(风速,方向,气温等data$param)的同时拍摄的观测值(data$z)

我试图有效地切片这些数据$time,然后将函数应用于收集的所有数据.通常,功能一次应用于单个$param(即,我对风速应用不同的函数而不是空气温度).

目前的做法

我目前的方法是使用data.frameddply.

如果我想获得所有风​​速数据,我运行:

# find good data ----
df <- data[((data$param == "wind speed") &
                  !is.na(data$value)),]
Run Code Online (Sandbox Code Playgroud)

然后我运行我的函数df使用ddply():

df.tav <- ddply(df,
               .(time),
               function(x) {
                      y <-data.frame(V1 = sum(x$value) + sum(x$z),
                                     V2 = sum(x$value) / sum(x$z))
                      return(y)
                    })
Run Code Online (Sandbox Code Playgroud)

通常V1和V2是对其他功能的调用.这些只是一些例子.我确实需要在相同的数据上运行多个函数.

我目前的方法慢.我没有对它进行基准测试,但它足够慢,我可以去喝咖啡,然后在一年的数据处理之前回来.

我有订单(百)塔要处理,每个都有一年的数据和10-12个高度,所以我正在寻找更快的东西.

数据样本

data <-  structure(list(time = structure(c(1262304600, 1262304600, 1262304600, 
1262304600, 1262304600, 1262304600, 1262304600, 1262304600, 1262304600, 
1262304600, 1262304600, 1262304600, 1262304600, …
Run Code Online (Sandbox Code Playgroud)

r

6
推荐指数
2
解决办法
549
查看次数

标签 统计

r ×1