首页 > 解决方案 > R:我的数据框有 1 列和多行,有没有办法计算某些行子集的平均值?

问题描述

我下载了一个 1 列和 1000 行的数据框。数据框被组织起来,以便有区域的名称,并在其下方对应于区域的分数。

例子:
在此处输入图像描述

我想计算每个区域对应的值的平均值。

因此,例如:

区域 1:1、2、3、4 的平均值

区域 2:1,2 的平均值

等等

我不确定如何编写脚本来执行此操作并获得输出,其中我有一个包含 2 列的表(区域,平均值)

标签: rexcelfor-looprowmean

解决方案


下面的代码与标记组开始的字符串无关,它只取决于它们不能被强制转换为数字。

首先,一个测试数据集。

df1 <- data.frame(x = c("A", 1:4, "B", 1:2, "C", 1:3))

现在组的意思。

y <- suppressWarnings(as.numeric(df1[[1]]))
i <- is.na(y)
j <- cumsum(i)
tapply(y[!i], j[!i], mean)
#  1   2   3 
#2.5 1.5 2.0 

推荐阅读