【问题标题】:Rename subset of variables in data frame重命名数据框中的变量子集
【发布时间】:2014-02-26 08:23:38
【问题描述】:

我有一个数据集,我希望根据三个变量将其拆分为多个数据集以进行进一步分析。数据集如下所示:

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

我希望根据牙齿、侧面和部位将数据分成 3 个数据集。

我已经设法编写了一个如下所示的函数,但是我希望为每个单独的数据集分配名称。

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]))

}

}}}

不幸的是

【问题讨论】:

  • 看来,你错过了在这里写问题
  • 在使用数据框的子集填充工作区之前,您应该知道base R 中有几个用于分析分组数据的出色工具(例如byaggregateave),以及在 data.tableddplydplyr 等包中。在 SO 中搜索大量不错的示例。

标签: r subset


【解决方案1】:

你只需要split:

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

x 是您的原始数据框。

【讨论】:

  • 谢谢。我的挑战是如何为每个数据集分配名称?
  • @user3354564 为什么需要给它们命名?
  • 基本上是在尝试编写一个包来对牙龈疾病流行病学中的疾病进行分类。这将涉及每个牙齿/侧面/部位的逻辑参数,用于两次测量(探测深度和后退)。我的方法是将每个测量值子集到单独的数据集中,然后将逻辑参数应用为独立的数据集。
  • 您可能不需要为此目的命名数据帧。您可以使用 lapply 将分类函数应用于列表中来自 split 的每个数据帧。
猜你喜欢
  • 2012-05-26
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 2018-11-09
  • 2014-12-08
  • 1970-01-01
相关资源
最近更新 更多