将平均 2 列聚合为每行的一列 [重复]
Posted
技术标签:
【中文标题】将平均 2 列聚合为每行的一列 [重复]【英文标题】:Aggregate the mean 2 columns to become one column for each row [duplicate] 【发布时间】:2020-10-23 00:05:39 【问题描述】:我浏览了其他帖子,似乎找不到与我正在尝试做的事情完全匹配的帖子。这似乎是一项简单的任务,但由于某种原因,我完全陷入了困境。
我有一个包含多个时间点的数据集,一个值为 1a,一个值为 1b。示例数据集如下所示:
Time 1a 1b
-200 -0.02 -0.006
-1.34 -0.003 -0.04
0.536 0.057 0.0235
等等(134行)。
我正在尝试聚合列 1a 和 1b 以获得每个时间点的一个平均值。有人可以建议如何实现这一目标的解决方案吗?我试过了
combined <- df %>% mutate(1 = mean(df$1a, df$1b)) %>% group_by(Time)
combined <- mutate(df , 1= mean(1a, 1b))
combined <- aggregate(df[,2:3], list(df$Time), mean)
似乎没有人给我这个 1a 和 1b 的聚合平均列。有什么建议吗?
【问题讨论】:
试试rowMeans(df[2:3])
。
【参考方案1】:
你可以使用apply
:
数据:
df <- data.frame(
Time = c(-200, -1.34, 0.536),
"1a" = c(-0.02, -0.003, 0.057),
"1b" = c(-0.006, -0.04, 0.0235)
)
解决方案:
df$mean <- apply(df[-1], 1, mean)
结果:
df
Time X1a X1b mean
1 -200.000 -0.020 -0.0060 -0.01300
2 -1.340 -0.003 -0.0400 -0.02150
3 0.536 0.057 0.0235 0.04025
或者,按照@jay.sf 的建议,使用rowMeans
,这在执行方面更快:
rowMeans(df[2:3])
[1] -0.01300 -0.02150 0.04025
【讨论】:
以上是关于将平均 2 列聚合为每行的一列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python - 正则表达式将数据框中的一列拆分为 2 [重复]
如何将熊猫中的一列列表转换为Python中唯一值的稀疏DataFrame [重复]