因此,我知道之前曾有人问过这个问题,但我似乎无法解决这个问题。我有一个数据表,其中:
Region Price
New York 34
New York 89
Texas 46
Iowa 36
Iowa 38
我想计算每个不同区域的平均值。我正在使用此功能:
sum=by(data$Region,data$price, mean)
这给了我
34 N/A
89 N/A
46 N/A
以此类推。显然,我/我做错了任何事情……不胜感激!谢谢。
答案 0 :(得分:2)
您提供的参数顺序错误。第一个参数应该是将在其上应用函数的数据。请尝试:
by(data$Price, data$Region, mean)
# data$Region: Iowa
# [1] 37
# ------------------------------------------------------------------------
# data$Region: New York
# [1] 61.5
# ------------------------------------------------------------------------
# data$Region: Texas
# [1] 46
数据:
data <- read.table(text =
"Region Price
'New York' 34
'New York' 89
Texas 46
Iowa 36
Iowa 38",
header = TRUE, stringsAsFactors = FALSE)
答案 1 :(得分:1)
使用汇总:
region <- c("New York", "New York", "Texas", "Iowa", "Iowa")
price <- c(34, 89, 46,36,38)
data <- data.frame(region, price)
aggregate.data.frame(data[,2],list(data$region) ,mean)