2014-02-26 49 views
1

我有一個數據集,我希望根據三個變量將其分成多個數據集以供進一步分析。該數據集是這樣的:重命名數據框中的變量子集

tooth side site probe1 probe2 
11 facial mesial 2 2 
12 lingual distal 4 1 
13 lingual mesial 1 9 

在此,我會希望將數據子集分爲基於齒,側與本站3個datsets。

我已經成功地寫了一個函數,如下所示,但是我希望爲每個單獨的數據集分配名稱。

each<- function(x){ 

tooth<-unique(x$tooth) 

side<-unique(x$side) 

site<-unique(x$site) 

    for i in 1:length(tooth){ 

    for j in 1:length(side){ 

for k in 1:length(site){ 

subset(x,tooth==tooth[i] & side==side[j], & site==site[k])) 

} 

}}} 

不幸的是

+0

看起來,你錯過了在這裏寫下這個問題 – Incognito

+2

在用你的數據框的子集填充你的工作空間之前,你應該知道有幾個優秀的工具可以用來分析'base'中的分組數據(例如'by' ,'aggregate','ave')以及'data.table','ddply','dplyr'等軟件包。搜索所以很好的例子。 – Henrik

回答

0

你只需要split

split(x, list(x$tooth, x$side, x$site)) 

其中x是你原來的數據幀。

+0

謝謝你。我的挑戰是如何爲每個數據集分配一個名稱? – Edwin

+0

@ user3354564爲什麼你需要命名它們? – Thomas

+0

基本上,我試圖編寫一個包裝來分類牙周疾病的流行病學疾病。這將涉及每個牙齒/側面/部位的邏輯論證,用於兩個測量(探測深度和衰退)。我的方法是將每個測量分類到單個數據集中,然後將邏輯參數作爲獨立數據集應用。 – Edwin