0

我有一个由切割函数生成的输出,它是下面的输出......让我们将此输出称为“数据”。

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]..etc 我尝试做 data$Kilometres ......但这不起作用......所以我基本上想要一个新的数据框,我可以为每个切割单独使用公里数据

4

1 回答 1

0

这里的输出by是一个列表,因此您可以使用基本的列表索引,按数字或名称。使用您几个小时前的问题中的数据以及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

您可以使用 . 查看 R 中对象的结构str。这通常有助于您决定如何提取某些信息。这是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. 因此,如果我们想要一个仅包含第三个间隔的“速度”变量(第二列)的向量,我们将使用如下内容:

> x[[3]][[2]]
[1] 1.56 1.61 1.66 1.71 1.76 1.81
于 2013-03-26T07:48:36.223 回答