R脚本-获取平均值

R脚本-获取平均值,r,average,R,Average,我有两张单子。第一个列表有有限数量的选项: a = [1, 1.5, 2, 2.5, 2, 2.5, 1, 1.5, 1, 2.5] 然后我有另一个列表,它有整数 b = [34, 67, 45, 12, 45, 78, 90, 50, 60, 12] 如您所见,在列表a中,唯一可能的值是1、1.5、2和2.5。还要注意,这两个列表相互对应。所以对于第一个元素,1的值是34 我想平均1、1.5、2和2.5中的每一个,这取决于它的值(在b中给出) 例如,一个2在位置3有一个45,在位置5有一个

我有两张单子。第一个列表有有限数量的选项:

a = [1, 1.5, 2, 2.5, 2, 2.5, 1, 1.5, 1, 2.5]
然后我有另一个列表,它有整数

b = [34, 67, 45, 12, 45, 78, 90, 50, 60, 12]
如您所见,在列表a中,唯一可能的值是1、1.5、2和2.5。还要注意,这两个列表相互对应。所以对于第一个元素,1的值是34

我想平均1、1.5、2和2.5中的每一个,这取决于它的值(在b中给出)

例如,一个2在位置3有一个45,在位置5有一个45。因此,平均值为45


我怎样才能在R中很好地完成这类事情呢?

我假设
a
b
实际上是数字向量,而不是列表——如果不是,则
取消它们的列表,使它们成为数字向量

a <- c(1, 1.5, 2, 2.5, 2, 2.5, 1, 1.5, 1, 2.5)
b <- c(34, 67, 45, 12, 45, 78, 90, 50, 60, 12)
tapply(b,a,mean)

我假设
a
b
实际上是数字向量,而不是列表——如果不是,则
取消列出它们以使它们成为数字向量

a <- c(1, 1.5, 2, 2.5, 2, 2.5, 1, 1.5, 1, 2.5)
b <- c(34, 67, 45, 12, 45, 78, 90, 50, 60, 12)
tapply(b,a,mean)

另外两个选项,一个来自基本R,另一个位于
plyr

> aggregate(b, list(a), mean)
  Group.1        x
1     1.0 61.33333
2     1.5 58.50000
3     2.0 45.00000
4     2.5 34.00000
> library(plyr)
> ddply(data.frame(a,b), "a", summarize, meanval = mean(b))
    a  meanval
1 1.0 61.33333
2 1.5 58.50000
3 2.0 45.00000
4 2.5 34.00000

另外两个选项,一个来自基本R,另一个位于
plyr

> aggregate(b, list(a), mean)
  Group.1        x
1     1.0 61.33333
2     1.5 58.50000
3     2.0 45.00000
4     2.5 34.00000
> library(plyr)
> ddply(data.frame(a,b), "a", summarize, meanval = mean(b))
    a  meanval
1 1.0 61.33333
2 1.5 58.50000
3 2.0 45.00000
4 2.5 34.00000

啊,对不起,本,在我发布我的答案之前没有看到你的答案。顺便说一句,你不需要使用
list
perfect。我将删除我的答案以避免重复:)啊,对不起,本,在我发布我的答案之前没有看到你的答案。顺便说一句,你不需要使用
list
perfect。我将删除我的答案以避免重复:)