R语言 如何计算一个因子中每一级的值

R语言 如何计算一个因子中每一级的值

在这篇文章中,我们将讨论如何在R编程语言中计算一个给定因素中每一级的值。

方法1:使用 summary() 方法

基础R语言中的summary()方法是一个通用函数,用于产生基于所传参数类别计算的函数结果摘要。summary()函数产生一个R中数据框架中给定因素列的每一级数值的频率输出,该列的每个变量的汇总统计结果以表格形式输出。该输出简洁明了,易于理解。

例子

set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(letters,50,rep=TRUE))
  
# count of variables
summary(data_frame$col1)

输出

A B C D E F G H I J K L N O R S T U V W Y Z

3 2 1 1 3 3 2 1 2 5 1 3 3 3 1 1 3 3 1 2 5 1

方法2:使用 lapply() 方法

R中的plyr包是用来模拟数据增强和操作的,可以安装到工作空间。

R中的lapply()方法返回一个与输入向量相同长度的列表,其中每个元素都是指定的函数应用于相应元素的结果。该方法将数据帧或列表作为输入,并将列表作为输出返回。

语法。

lapply(vec, FUN)

参数:

vec – 要应用函数的原子因子类型向量

FUN – 要应用的函数,在本例中,相当于count,用于返回因子水平的频率。

输出返回一个列表,其中第一部分是因子水平,第二列是该水平的频率。每个输出行的开头都附加了一个行号。

# importing required libraries
library ("plyr")
  
set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(
  letters,50,rep=TRUE))
  
# counting frequencies of factor
# levels
lapply(data_frame, count)

输出

$col1

x freq

1 a 3

2 b 2

3 c 1

4 d 1

5 e 3

6 f 3

7 g 2

8 h 1

9 i 2

10 j 5

11 k 1

12 l 3

13 n 3

14 o 3

15 r 1

16 s 1

17 t 3

18 u 3

19 v 1

20 w 2

21 y 5

22 z 1

方法3:使用data.table包

R中的data.table包被用来与表一起工作,以访问、操作和存储数据。

最初,数据框架通过使用setDT()命令的引用被转换为data.table。这种方法在处理大型数据集和更多观测值时非常有用。

语法

setDT(df)

keyby属性被应用在所需的列名上,以便对其中包含的数据进行分组。作为一个索引,.N参数被用来代替列来访问每个特定因子水平的实例数。输出是一个频率表。输出以data.table的形式返回,其中行以行号开始,后面是冒号。

例子

# importing required libraries
library(data.table)
  
set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(
  letters,50,rep=TRUE))
  
# counting frequencies of factor
# levels
setDT(data_frame)[, .N, keyby=col1]

输出

col1 N

1: a 3

2: b 2

3: c 1

4: d 1

5: e 3

6: f 3

7: g 2

8: h 1

9: i 2

10: j 5

11: k 1

12: l 3

13: n 3

14: o 3

15: r 1

16: s 1

17: t 3

18: u 3

19: v 1

20: w 2

21: y 5

22: z 1

方法4:使用dplyr包

dplyr “包是plyr包的增强版,它提供了广泛的选择和过滤操作,可在数据元素上执行。它可以被加载并安装到工作空间中。

包中的group_by()方法首先被用来根据遇到的不同数值将数据分成不同类别。属于单一数值的行被堆叠在一起。tally()函数的作用与summaryise()函数类似,用于根据所做的分组生成摘要。

语法

df %>% group_by() %>% tally()

返回的输出是tibble的形式,它包含的行相当于输入向量的长度。列中包含遇到的因子水平的频率信息。这个方法可以清楚地了解到返回的输出的列类型和尺寸。然而,默认情况下只显示十行,可以进一步扩展以查看其他行。

例子

# importing required libraries
library ("dplyr")
  
set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(
  letters,50,rep=TRUE))
  
# counting frequencies of factor
# levels
data_frame %>% 
  group_by(col1) %>% 
  tally()

输出

# A tibble: 22 x 2

col1      n

<fct> <int>

1 a         3

2 b         2

3 c         1

4 d         1

5 e         3

6 f         3

7 g         2

8 h         1

9 i         2

10 j         5

# … with 12 more rows

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程