对不起,如果这是一个愚蠢但我找不到答案。我有一个men.txt文件,其中包含年轻人和老年人的数据,如:
"BalanceMeasure" "Age_group"
26.272722832203 "elderly"
23.4572384621414 "elderly"
28.0295727143824 "elderly"
26.6261784908838 "elderly"
14.5754428676468 "young"
18.5711350938964 "young"
6.03642481885425 "young"
15.2875928698119 "young"
16.8511145817837 "young"
17.4018884973852 "young"
这只显示我必须使用的实际txt文件的一小部分我只是想表明我的意思。我需要根据“年轻”和“老年人”来分离数据并找出平均值。 我试过这个:
> data1 <- subset(balancedata_0, Age_group == "young")
> data2 <- subset(balancedata_0, Age_group == "elderly")
但这只给了我一份“年轻”和“老人”的字样。那么我如何在一个数据集中获得与“年轻”男性相关的所有数字,以及在另一个数据集中与“老年”男性相关的数字。
答案 0 :(得分:2)
您可以尝试使用split()
:
age_list <- lapply(split(balancedata_0,balancedata_0$Age_group), `[[`, 1)
#$elderly
#[1] 26.27272 23.45724 28.02957 26.62618
#$young
#[1] 14.575443 18.571135 6.036425 15.287593 16.851115 17.401888
并用
提取平均值lapply(age_list,mean)
#$elderly
#[1] 26.09643
#
#$young
#[1] 14.78727
数据强>
balancedata_0 <- structure(list(BalanceMeasure = c(26.272722832203, 23.4572384621414,
28.0295727143824, 26.6261784908838, 14.5754428676468, 18.5711350938964,
6.03642481885425, 15.2875928698119, 16.8511145817837, 17.4018884973852),
Age_group = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L),
.Label = c("elderly", "young"), class = "factor")),
.Names = c("BalanceMeasure", "Age_group"), class = "data.frame",
row.names = c(NA, -10L))