我有一个长数据框,其中包含来自桅杆的气象数据.它包含在不同高度()data$value的不同参数(风速,方向,气温等data$param)的同时拍摄的观测值(data$z)
我试图有效地切片这些数据$time,然后将函数应用于收集的所有数据.通常,功能一次应用于单个$param(即,我对风速应用不同的函数而不是空气温度).
我目前的方法是使用data.frame和ddply.
如果我想获得所有风速数据,我运行:
# 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 ×1