我正在使用两个变量“Neighborhood”和“UtilitySpending”。第一个是名义变量,其中所有记录都是“城市”,“城镇”或“农村”。第二个是一个连续变量,它只是给定家庭在一个月内在公用事业上花费的金额(数据集中从500美元到6000美元不等)。
我的问题是,使用这两个变量,我想找到邻域变量中“城市”中所有记录的效用支出的平均值,以便进行z检验以查看是否存在与整个数据集的平均值显着不同。我确信有一个我可以使用的命令,但是我找不到一个可以隔离它的命令。找到这些信息的最佳方法是什么,因为我有3000条记录需要筛选?
我想找到所有那些以“city”作为邻域值的记录的UtilitySpending的平均值。我怎么能这样做?
答案 0 :(得分:0)
使用dplyr包:
library(dplyr)
dt<-data.frame(Neighbourhood=c("city","rural","town","city","rural"),UtilitySpending=c(500,753,438,3361,4717))
dt<-dt %>% group_by(Neighbourhood) %>%
dplyr::summarize(total_UtilitySpending=mean(UtilitySpending)) %>%
as.data.frame() %>%
filter(Neighbourhood=="city")
答案 1 :(得分:0)
这可以在基线R中一行中轻松完成。由于您没有提供数据,我正在重新使用上一个问题的集合,请参见下文。
使用此data.frame,您可以通过子集查找任何均值等。这是在变量Urgent
等于YPred
时计算列L2
的平均值的示例:
mean( df[ df$YPred == "L2", "Urgent" ] )
[1] 44
示例数据下方:
df <- structure(list(Tag = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L
), YPred = structure(c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L
), .Label = c("L1", "L2", "L3", "L4", "L5"), class = "factor"),
Long = c(1004L, 544L, 545L, 282L, 1L, 2068L, 3006L, 3711L,
2342L, 33L), Medium = c(108L, 252L, 211L, 149L, 0L, 17L,
110L, 248L, 341L, 4L), short = c(58L, 118L, 131L, 73L, 4L,
0L, 43L, 150L, 189L, 2L), Urgent = c(5L, 70L, 65L, 24L, 5L,
22L, 18L, 31L, 96L, 2L)), .Names = c("Tag", "YPred", "Long",
"Medium", "short", "Urgent"), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10"))