如何在基数R中找到带有子集的频率?

找到频率的最简单方法是为提供的向量或数据框列创建一个表,可以使用 table 函数来完成。但是,如果需要通过子集找到频率,则还需要子集函数和变换函数,如下例所示。

示例 1

以下代码段创建了一个示例数据框 -

head(ChickWeight,20)
输出结果

创建以下数据框 -

 weight Time Chick Diet

1   42   0   1     1

2   51  2    1     1

3   59  4    1     1

4   64  6    1     1

5   76  8    1     1

6   93 10    1     1

7  106 12    1     1

8  125 14    1     1

9  149 16    1     1

10 171 18    1     1

11 199 20    1     1

12 205 21    1     1

13 40   0    2     1

14 49   2    2     1

15 58  4     2     1

16 72   6    2     1

17 84   8    2     1

18 103 10    2     1

19 122 12    2     1

20 138 14    2     1

要在基数 R 中找到带有子集的频率,请将以下代码添加到上面的代码段中 -

str(ChickWeight)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

Classes ‘nfnGroupedData’, ‘nfGroupedData’, ‘groupedData’ and 'data.frame': 578 obs. of 4 variables:

$ weight: num 42 51 59 64 76 93 106 125 149 171 ...

$ Time : num 0 2 4 6 8 10 12 14 16 18 ...

$ Chick :Ord.factorw/ 50 levels "18"<"16"<"15"<..: 15 15 15 15 15 15 15 15 15 15 ...

$ Diet : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...

- attr(*, "formula")=Class 'formula' language weight ~ Time | Chick

.. ..- attr(*, ".Environment")=<environment: R_EmptyEnv>

- attr(*, "outer")=Class 'formula' language ~Diet

.. ..- attr(*, ".Environment")=<environment: R_EmptyEnv>

- attr(*, "labels")=List of 2

..$ x: chr "Time"

..$ y: chr "Body weight"

- attr(*, "units")=List of 2

..$ x: chr "(days)"

..$ y: chr "(gm)"

要在基数 R 中找到带有子集的频率,请将以下代码添加到上面的代码段中 -

transform(table(Diet=subset(ChickWeight,Time>20,select=Diet)))
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  Diet Freq

1  1   16

2  2   10

3  3   10

4  4    9

示例 2

以下代码段创建了一个示例数据框 -

head(mtcars,20)

创建以下数据框 -

                     mpg  cyl disp   hp   drat  wt   qsec  vs am gear carb

Mazda RX4             21.0 6  160.0  110  3.90 2.620 16.46  0  1  4   4

Mazda RX4 Wag         21.0 6  160.0  110  3.90 2.875 17.02  0  1  4   4

Datsun 710            22.8 4  108.0   93  3.85 2.320 18.61  1  1  4   1

Hornet 4 Drive        21.4 6  258.0  110  3.08 3.215 19.44  1  0  3   1

Hornet Sportabout     18.7 8  360.0  175  3.15 3.440 17.02  0  0  3   2

Valiant               18.1 6  225.0  105  2.76 3.460 20.22  1  0  3   1

Duster 360            14.3 8  360.0  245  3.21 3.570 15.84  0  0  3   4

Merc 240D             24.4 4  146.7   62  3.69 3.190 20.00  1  0  4   2

Merc 230              22.8 4  140.8   95  3.92 3.150 22.90  1  0  4   2

Merc 280              19.2 6  167.6  123  3.92 3.440 18.30  1  0  4   4

Merc 280C             17.8 6  167.6  123  3.92 3.440 18.90  1  0  4   4

Merc 450SE            16.4 8  275.8  180  3.07 4.070 17.40  0  0  3   3

Merc 450SL            17.3 8  275.8  180  3.07 3.730 17.60  0  0  3   3

Merc 450SLC           15.2 8  275.8  180  3.07 3.780 18.00  0  0  3   3

Cadillac Fleetwood    10.4 8  472.0  205  2.93 5.250 17.98  0  0  3   4

Lincoln Continental   10.4 8  460.0  215  3.00 5.424 17.82  0  0  3   4

Chrysler Imperial     14.7 8  440.0  230  3.23 5.345 17.42  0  0  3   4

Fiat 128              32.4 4   78.7   66  4.08 2.200 19.47  1  1  4   1

Honda Civic           30.4 4   75.7   52  4.93 1.615 18.52  1  1  4   2

Toyota Corolla        33.9 4   71.1   65  4.22 1.835 19.90  1  1  4   1

要在基数 R 中找到带有子集的频率,请将以下代码添加到上面的代码段中 -

str(mtcars)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

'data.frame': 32 obs. of 11 variables:

$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...

$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...

$ disp: num 160 160 108 258 360 ...

$ hp : num 110 110 93 110 175 105 245 62 95 123 ...

$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...

$ wt : num 2.62 2.88 2.32 3.21 3.44 ...

$ qsec: num 16.5 17 18.6 19.4 17 ...

$ vs : num 0 0 1 1 0 1 0 1 1 1 ...

$ am : num 1 1 1 0 0 0 0 0 0 0 ...

$ gear: num 4 4 4 3 3 3 3 4 4 4 ...

$ carb: num 4 4 1 1 2 1 4 2 2 4 ...

要在基数 R 中找到带有子集的频率,请将以下代码添加到上面的代码段中 -

transform(table(cyl=subset(mtcars,hp>110,select=cyl)))
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  cyl Freq

1  4   1

2  6   3

3  8  14

以上是 如何在基数R中找到带有子集的频率? 的全部内容, 来源链接: utcz.com/z/338675.html

回到顶部