2014-02-26 45 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