r - 汇总一个向量,然后将汇总统计信息附加到 R 中的原始数据帧

标签 r reshape2 summary dplyr

简介:

我想计算给定数据帧中数值向量的平均值、标准差和标准误差,然后使用这些汇总统计数据创建三个新向量。然后我需要将它们与原始数据框结合起来。

示例代码:

## Creating our dataframe:
datetime <- c("5/12/2017 16:15:00","5/16/2017 16:45:00","5/19/2017 17:00:00")
datetime <- as.POSIXct(datetime, format = "%m/%d/%Y %H:%M:%S")
values <- c(1,2,3)
df <- data.frame(datetime, values)

## Here's the current output:
head(df)
             datetime values
1 2017-05-12 16:15:00      1
2 2017-05-16 16:45:00      2
3 2017-05-19 17:00:00      3

## And here's the desired output:
head(df1)
             datetime values mean    sd    se
1 2017-05-12 16:15:00      1    2 0.816 0.471
2 2017-05-16 16:45:00      2    2 0.816 0.471
3 2017-05-19 17:00:00      3    2 0.816 0.471

提前致谢!

对于那些好奇我为什么要这样做的人,我正在关注这个 tutorial 。我需要制作一张带有误差线的线图,用于低成本传感器和昂贵的引用仪器之间的一些校准。

最佳答案

您可以同时完成作业。假设您已经有用于选择 sdse 的辅助函数:

sd0 <- function(x){sd(x) / sqrt(length(x)) * sqrt(length(x) - 1)}
se0 <- function(x){ sd0(x) / sqrt(length(x))}

那么你可以尝试:

df[c('mean', 'sd', 'se')] <- lapply(list(mean, sd0, se0), function(f) f(df$values))
# > df
#              datetime values mean        sd        se
# 1 2017-05-12 16:15:00      1    2 0.8164966 0.4714045
# 2 2017-05-16 16:45:00      2    2 0.8164966 0.4714045
# 3 2017-05-19 17:00:00      3    2 0.8164966 0.4714045

关于r - 汇总一个向量,然后将汇总统计信息附加到 R 中的原始数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081068/

相关文章:

r - 使用 seq() 和 rep() 遍历数字

r - 修改ggplot2中的图例

R 根据多个条件获取行 - 使用 dplyr 和 reshape2

mysql - 在 case 循环 mysql 中创建多个数学语句

python - tensorflow summary 需要提供一个占位符,但我不明白为什么

r - 查找每个组的最大值并返回另一列

r - r 中重新编码的问题

r - 将曲线/模型拟合到 1/x 数据

将多组测量列(宽格式) reshape 为单列(长格式)

R 函数等效于 SAS 中的 proc 摘要