从输出R程序访问数据

时间:2013-03-26 07:44:26

标签: r cut

我有一个切割函数生成的输出,如下所示...让我们调用这个输出'数据'。

cuts: [20,25)
   Time Kilometres
21   20        7.3
22   21        8.4
23   22        9.5
24   23       10.6
25   24       11.7
------------------------------------------------------------ 
cuts: [25,30)
   Time Kilometres
26   25       12.8
27   26       13.9
28   27       15.0
29   28       16.1
30   29       17.2
------------------------------------------------------------ 
cuts: [30,35)
   Time Kilometres
31   30       18.3
32   31       19.4
33   32       20.5
34   33       21.6
35   34       22.7

我怎样才能访问每个剪辑中的数据..比如从剪切中获取公里数据:[20,25] ..等我尝试做数据$公里...但这不起作用...所以我基本上想要一个新的数据框,我可以单独使用公里数据进行每次切割

1 个答案:

答案 0 :(得分:0)

此处by的输出是一个列表,因此您可以使用基本列表索引(按编号或名称)。使用your question from a few hours agothe answer from Matthew Lundberg中的数据,我们可以按如下方式编制索引:

> x[[1]]
  Time Velocity
1  0.0     0.00
2  1.5     1.21
3  3.0     1.26
4  4.5     1.31
> x[["[6,12)"]]
  Time Velocity
5  6.0     1.36
6  7.5     1.41
7  9.0     1.46
8 10.5     1.51

您可以使用str查看R中对象的结构。这通常有助于您确定如何提取某些信息。这是str(x)

> str(x)
List of 7
 $ [0,6)  :Classes ‘AsIs’ and 'data.frame': 4 obs. of  2 variables:
  ..$ Time    : num [1:4] 0 1.5 3 4.5
  ..$ Velocity: num [1:4] 0 1.21 1.26 1.31
 $ [6,12) :Classes ‘AsIs’ and 'data.frame': 4 obs. of  2 variables:
  ..$ Time    : num [1:4] 6 7.5 9 10.5
  ..$ Velocity: num [1:4] 1.36 1.41 1.46 1.51
 $ [12,18):Classes ‘AsIs’ and 'data.frame': 6 obs. of  2 variables:
  ..$ Time    : num [1:6] 12 13 14 15 16 17
  ..$ Velocity: num [1:6] 1.56 1.61 1.66 1.71 1.76 1.81
 $ [18,24):Classes ‘AsIs’ and 'data.frame': 5 obs. of  2 variables:
  ..$ Time    : num [1:5] 18 19 20 21 22.5
  ..$ Velocity: num [1:5] 1.86 1.91 1.96 2.01 2.06
 $ [24,30):Classes ‘AsIs’ and 'data.frame': 4 obs. of  2 variables:
  ..$ Time    : num [1:4] 24 25.5 27 28.5
  ..$ Velocity: num [1:4] 2.11 2.16 2.21 2.26
 $ [30,36):Classes ‘AsIs’ and 'data.frame': 4 obs. of  2 variables:
  ..$ Time    : num [1:4] 30 31.5 33 34.5
  ..$ Velocity: num [1:4] 2.31 2.36 2.41 2.42
 $ [36,42):Classes ‘AsIs’ and 'data.frame': 1 obs. of  2 variables:
  ..$ Time    : num 36
  ..$ Velocity: num 2.43
 - attr(*, "dim")= int 7
 - attr(*, "dimnames")=List of 1
  ..$ cuts: chr [1:7] "[0,6)" "[6,12)" "[12,18)" "[18,24)" ...
 - attr(*, "call")= language by.data.frame(data = mydf, INDICES = cuts, FUN = I)
 - attr(*, "class")= chr "by"

由此我们可以看到我们有一个包含七个项目的命名列表,每个列表包含一个data.frame。因此,如果我们想要第三个区间的“Velocity”变量(第二列)的向量,我们将使用类似的东西:

> x[[3]][[2]]
[1] 1.56 1.61 1.66 1.71 1.76 1.81