2016-04-12 35 views
0

對不起,如果這是一個褒獎,但我找不到答案。我有一個包含數據爲青年人和老年人男人喜歡一個men.txt文件:如何通過r中的行名來分隔數據?

"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

提取平均值以獲得每組的手段:'唯一的(AVE (balancedata_0 $ BalanceMeasure,balancedata_0 $ Age_group))' – mtoto

+0

'a ggregate(data = Balance,BalanceMeasure〜Age_group,FUN = mean)'。 「Balance」是這裏的數據集。 – Abdou

回答

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)) 
+0

我提供的數據只是txt文件中實際數據的一小部分。應該先說清楚,對不起。 –

+0

@RyanFasching使用此代碼是否有任何問題或錯誤消息?我認爲這不應該成爲大數據集的難題,我相信它的表現也相當好。 – RHertel

+0

不,但有太多的數據點手動輸入到* df1 < - 結構(列表(BalanceMeasure = c()* –

相關問題