gpt4 book ai didi

r - 如何在一个函数中使用多个代码在 R 中应用 "sapply"?

转载 作者:行者123 更新时间:2023-12-02 03:40:15 25 4
gpt4 key购买 nike

我是新人R用户。我有一个简单的 sapply计算mean的函数示例和 sd对于拆分数据框。我的数据包含半小时风速和方向。我想知道我研究 13 年的每日 Weibull 分布。这就是我的数据集根据时间拆分的原因。

我的数据是这样的:

    Time             windspeed direction    Date            day_index
1 24/07/2000 13:00 31 310 2000-07-24 13:00:00 2000_206
2 24/07/2000 13:30 41 320 2000-07-24 13:30:00 2000_206
3 24/07/2000 14:30 37 290 2000-07-24 14:30:00 2000_206
4 24/07/2000 15:00 30 300 2000-07-24 15:00:00 2000_206
5 24/07/2000 15:30 24 320 2000-07-24 15:30:00 2000_206
6 24/07/2000 16:00 22 330 2000-07-24 16:00:00 2000_206
7 24/07/2000 16:30 37 270 2000-07-24 16:30:00 2000_206

我为拆分应用查看这些天的示例 R 代码是:

my.summary <- sapply(split(ballarat_alldata[1:200, ],
ballarat_alldata$day_index[1:200]),
function(x) {
return(c(my.mean=mean(x$windspeed),
my.sd=sd(x$windspeed)))
})

计算形状和尺度参数的威 bool 分布代码为:

set1 <- createSet(height=10,
v.avg=ballarat_alldata[,2],
dir.avg=ballarat_alldata[,3])
time_ballarat <- strptime(ballarat_alldata[,1], "%d/%m/%Y %H:%M")
ballarat <- createMast(time.stamp=time_ballarat, set1)
ballarat <- clean(mast=ballarat)
ballarat.wb <- weibull(mast=ballarat, v.set=1, print=FALSE)

如何组合这两组 R每天计算威 bool 参数并存储在矩阵中的代码?

我尝试了很多方法,但效果不佳。
如果这两组R代码组合在一起,我应该在 set1 <- createSet(height=10, v.avg=ballarat_alldata[,2], dir.avg=ballarat_alldata[,3]) 中更改风速和方向范围吗?也是吗?

最佳答案

这里似乎有 2 个不同的问题:1) 汇总数据 2) 计算 Weibull 参数。对于第一个问题,我可以推荐如下内容:

library(plyr)
Wind <- ddply(Wind, .(as.Date(Date)), transform,
Wind.mean = mean(windspeed), Wind.sd = sd(windspeed))
# windspeed direction Date2 Time2 day_index Wind.mean Wind.sd
# 1 31 310 2000-07-24 13:00:00 2000_206 36.33333 5.033223
# 2 41 320 2000-07-24 13:30:00 2000_206 36.33333 5.033223
# 3 37 290 2000-07-24 14:30:00 2000_206 36.33333 5.033223
# 4 30 300 2000-07-25 15:00:00 2000_206 28.25000 6.751543
# 5 24 320 2000-07-25 15:30:00 2000_206 28.25000 6.751543
# 6 22 330 2000-07-25 16:00:00 2000_206 28.25000 6.751543
# 7 37 270 2000-07-25 16:30:00 2000_206 28.25000 6.751543

如果你给我更多关于如何计算参数的提示,你也可以使用 plyr 库中的 summarise,比如

ddply(Wind, .(Date2), summarise, rweibull(# I'm not sure what goes here

希望这对您有所帮助。

关于r - 如何在一个函数中使用多个代码在 R 中应用 "sapply"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20468818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com