【发布时间】:2014-07-20 02:21:15
【问题描述】:
我有一个包含 2 列的数据框,其中一列带有数值,一列带有名称。该名称会重复,但每次都有不同的值。
Data <- data.frame(
Value = c(1:10),
Name = rep(LETTERS, each=4)[1:10])
我想编写一个函数,它为每个名称获取 3 个最高数字并计算平均值和中位数(如果不存在 3 个值,则抛出 NA),然后获取每个名称的所有值并计算均值和中位数。 我最初的尝试是这样的:
my.mean <- function (x,y){
top3.x <- ifelse(x > 3 , NA, x)
return(mean(top3.x), median(top3.x))
}
我们将不胜感激任何有关如何改进这一点的提示。
【问题讨论】: