R:如何计算列中元素的每日数据的年度平均值和其他操作

R: How to calculate year-wise mean and other operations on daily data for elements in a column

请帮帮我。我已经卡了很久了。我是 R 初学者,我想知道如何使用多个索引对数据框元素执行操作,例如公司和时间在下面的情况下优雅吗?我想执行一些典型的操作,例如对每家公司的一些其他变量进行年度平均,这是一个例子: 我想根据数据集中所有公司的变量 A 和 F 的每日数据计算年度平均值。这是我的dataset。我使用过 dplyr 和 hydroTSM 包。以下是我的代码:

MeanA<- df %>% select(Firm, Date, A,) %>% group_by(Firm) %>% do(daily2annual(., A, FUN=mean, na.rm = TRUE, out.fmt="%Y", dates = 2))

它returns出现以下错误:

Error in eval(expr, envir, enclos) : argument is missing, with no default

我还尝试了 data.table 包并添加了一个额外的年份列。代码:

MeanA <- df[ , A, by = "Firm" & "Year"]

结果:

Error in `[.data.frame`(df, , A, by = "Firm" & "Year") : unused argument(by = "Firm" & "Year")

请提出出路(有或没有 dplyr)。 table 的平均值,以及我将计算的其他年度值, 是使用 plm 包进行面板回归分析的输入。 提前致谢。

尝试

MeanA<- df %>%
    select(Firm, Date, A) %>%
    group_by(Firm) %>%
    do(daily2annual(., A, mean, na.rm = TRUE, dates = .$Date))

好吧,这不是一个很好的答案,但我已经厌倦了。如果你想要公司的年度平均值,我从日期字段中提取年份,然后在 aggregate 函数中使用它。

df$Date = as.Date(df$Date, "%m/%d/%Y")
df$F = as.numeric(df$F)
df$Year = as.Date(paste(substr(df$Date, 1, 4), "1", "1",sep="-"), "%Y-%m-%d")
newDat = aggregate(cbind(A, E, F) ~ Firm + Year, df, FUN = mean)