将平均 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 [重复]

按列分组的每行的Python平均值[重复]

Pandas数据框:按一列分组,但由其他列连接和聚合[重复]

DataTable中如何获取某列重复的行

列出除R中的一列之外的所有列[重复]