首页 > 解决方案 > 使用 R 中的 group_by 函数查找列的月平均值

问题描述

我有一个包含每日值的数据集。我想找到列值的每月平均值。以下代码曾经为我工作,但我不明白为什么,它不再工作了。它给我 data1 作为 1 个变量的 1 个 obs,即 NA。

data %>% group_by(month=floor_date(Timestamp, "month")) %>%
   summarize(USDTRY=mean(USDTRY)) -> data1 

以下是我的数据的外观:

dput(head(data))
structure(list(Timestamp = structure(c(1629417600, 1629331200, 
1629244800, 1629158400, 1629072000, 1628812800), tzone = "UTC", class = c("POSIXct", 
"POSIXt")), USDTRY = c(8.4852, 8.4939, 8.4485, 8.4284, 8.453, 
8.5171), EURTRY = c(9.9325, 9.9311, 9.8916, 9.8746, 9.9618, 10.0539
), EURUSD = c(1.1696, 1.1674, 1.171, 1.1708, 1.1777, 1.1791), 
    BIST100 = c(1444.63, 1439.86, 1449.59, 1461.69, 1455.25, 
    1447.64), TR2YT = c(18.01, 18.01, 18.01, 18.01, 18.01, 18.15
    ), TR10YT = c(16.88, 16.87, 16.79, 16.8, 16.69, 16.77), TR_EURBON_2 = c(3.648673, 
    3.63085, 3.611969, 3.572728, 3.567871, 3.559959), TR_EURBON_10 = c(6.302608, 
    6.307343, 6.276473, 6.240502, 6.255035, 6.301358), BRENT = c(65.18, 
    66.45, 68.23, 69.03, 69.51, 70.59), WTI = c(62.32, 63.69, 
    65.46, 66.59, 67.29, 68.44), Altın = c(1780.8668, 1780.179, 
    1787.59, 1785.9556, 1787.2383, 1779.1515), Gümüş = c(23.01, 
    23.23, 23.4805, 23.6351, 23.8235, 23.74)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

知道如何解决吗?

谢谢。

(另外请注意,我的 Timestamp 变量的列值与2021-08-01, 2021-08-18...我相同,但在 dput 输出中view(data) 似乎相同。)1629417600, 1629331200

标签: r

解决方案


推荐阅读