Advertisement

R语言内置函数(Built-in Functions):最大值最小值、均值、中位数、分位数、数据标准化、行均值、列均值、行中位数、列中位数、中位绝对偏差、标准差、滞后差值、迭代差值等

阅读量:

R内置函数(Built-in Functions):最大-最小、平均-均值、中间-中位数等

目录

R语言内置函数(Built-in Functions):最大值和最小值(max and min)、平均数(average)、中位统计量(median statistics)、分位统计量(quantile statistics)、数据归一化处理(data normalization)、行平均与列平均之间的差异等

R语言内置函数(Built-in Functions)

仿真数据

在R语言中,我们应用scale函数来标准化缩放dataframe中的数据(其中 scale参数被设定为除以其标准差)。

在R语言中通过scale函数对dataframe数据进行标准化缩放,并且设置中心参数为True以及从每个列中减去均值。

R语言中,默认情况下会同时启用scale函数中的scale和center两个参数;中心化(Center)是通过减去均值来实现的;缩放(Scale)则是通过除以标准差的方式来完成的

R语言调用dplyr包中的函数对dataframe执行归一化处理。(对每个数值型数据列,先去除其均值后除以其标准差)

在R语言中采用differ函数来计算向量数据之间的差异序列。该函数用于生成一系列基于时间步长的差异,并根据指定的参数设置进行操作:其中,默认设置为lag=1且differences=1。具体来说,它会按照从前往后的顺序依次生成这些差异。

R语言通过differ函数生成向量数据的滞后差分序列(可自定义指定lag参数为2、每跳过一个观测值后生成一次差分、并跳过了一个观测值之后进行差分计算)

在R语言中运用diff函数求取向量数据的滞后差异或迭代差异(通过设定参数diffs=2实现二阶差异运算,在完成一级差异运算后继续对前一级结果中的数据逐一求取差异)按照从前往后的顺序依次推算滞后差异

R语言使用sd函数计算数据列或者向量标准差(standard deviation)

R语言采用sd函数作为计算数据列或向量标准差的标准方法、其中数据包含缺失值NA的情况

R语言通过调用sd函数来计算数据列或向量的标准差(standard deviation)。此外,在dataframe中指定某一列的数据同样可以通过sd函数来计算其标准差

仿真数据

该R语言程序调用colSums函数以求取dataframe中各列的数据总合

在R语言中采用rowSums函数来计算dataframe中的每一行数据总和值

该方法通过调用colMeans函数来求取dataframe中各列数据的平均值

R语言调用rowMeans函数获取每一行的数据均值

R语言调用rowMeans函数以及rowSums函数来计算出 dataframe 中每一行的数据平均值与总和,并将这些统计结果与原始 dataframe 进行整合

仿真数据(包含缺失NA值)

R语言采用rowMeans函数及rowSums来执行dataframe中每一行的数据平均计算与总和求取(其他相关函数也具有类似的特性)。在忽略缺失值的情况下得到的结果。当存在缺失值时的结果也会被视为缺失值。

R语言调用rowMeans函数和rowSums函数对整个数据框的所有行进行每列求平均值与总和的操作,并在处理其他数据列时同样地进行同样的运算。通过设置参数na.rm=TRUE来进行处理的结果。

R语言调用colMedians函数来求取dataframe各列数据的中位数值

该函数用于遍历每个数据行,并获取其对应的中位数值。

R语言调用quantile函数来计算整个向量数据集的百分位数值,并通过指定所需的百分位数值和结合c选项来确定具体的百分位数值。

在R语言中调用quantile函数来计算Data Vector的百分位数值;通过指定probs参数和设定seq参数来逐步生成所需范围内的百分位数值。

在R语言中,调用quantile函数来获取dataframe中特定的数据字段的百分比值,并且通过指定probs参数来确定相应的分位值

R语言调用apply函数与quantile函数来遍历整个dataframe的所有数据列并计算其百分位数值,并通过指定probs参数来进行百分位数值的计算

R语言使用dplyr包的group_by函数和summarize函数分别对每个分组数据以及所有分组数据进行百分位数计算;quantiles function用于直接计算百分位数;通过指定prob参数来实现特定百分位点的计算。

R语言使用max函数和min函数计算向量vector中的最大值和最小值

该语言通过max()与min()函数实现向量的最大元素与最小元素的获取;对于包含缺失元素NA的数据向量而言,在计算其最大元素与最小元素时需要注意什么?

R语言通过max函数和min函数来计算选定的数据字段的最大数值与最小数值

通过sapply、max及min这三个函数,在R语言中能够获取dataframe中各字段的最大值与最小值

R语言调用max()函数以及min()函数来获取数据框中的最大值与最小值

在R语言中, max函数和min函数用于获取数据框中指定两列的最大值和最小值

R语言采用max函数与min function来计算从dataframe中的指定数据行中提取最大与最小的数值

R语言使用max函数和min函数计算字符串向量中的最大值和最小值

在R语言中调用mad函数、median function和mean function来计算向量数据的中位数绝对偏差、中位数以及平均值

R语言采用mad()函数和median()函数来计算向量数据的median absolute deviation (MAD),以及mean()函数来计算均值;特别适用于处理包含缺失值的数据情况。

R语言中的mean函数用于计算向量数据的平均值;通过自定义方式设定均值计算中的trim参数;表示需要移除作为极端值的数据点所占的比例

R语言使用mean函数计算dataframe指定数据列的均值

R语言使用mad函数计算dataframe指定数据列的中位数绝对偏差

R语言使用median函数计算dataframe指定数据列的中位数

R语言使用aggregate函数和mean函数计算每个分组数据的均值

基于该方法能够有效地通过数据 aggregate 函数及其 mad 函数来计算每组数据集的中位数值离差

R语言使用aggregate函数和median函数计算每个分组数据的中位数

R语言使用boxplot函数可视化箱图、并在图形中添加中位数文本标记

R语言调用hist函数用于生成直方图;在图表上展示数据分布情况;插入中位数值的文本标注并绘制一条红色竖直线以标示中位数值


R语言内置函数(Built-in Functions)

R中几乎所有的事情都是通过函数完成的。

下表提供了其它常用的统计函数。

在R语言中,在进行数值运算时每个函数均提供了一个na.rm参数以便于在执行计算前先排除可能存在的缺失值这样可以避免由于数据缺失而导致计算结果不准确的特点如果未设置该参数则在存在缺失值的情况下进行计算时也会返回缺失值这表明该方法具有一定的鲁棒性对于处理不完整数据的情况具有较高的适用性此外统计函数的操作对象既可以是一个向量也可以是一个dataframe这种设计使得统计分析更加灵活多样并且能够适应不同规模和类型的输入数据

Function Description

| mean(x, trim= 0**,
na.rm=FALSE)**| the average value of object x

trimmed version, excluding all missing observations as well as the five percent of the highest and lowest values

mx <- mean(x,trim=.05,na.rm=TRUE) |

sd(x) calculates the standard deviation for object x. additionally, you can explore the variance (var(x)) and median absolute deviation (mad(x)) for further statistical insights.

| quantile(x,probs)| quantiles where x is the numeric vector whose quantiles are desired and probs is a numeric vector with probabilities in [0,1].

30th and 84th percentiles of x

y <- quantile(x, c(.3,.84)) |

range(x) range
diff(x, lag=1) lagged differences, with lag indicating which lag to use
min(x) minimum
max(x) maximum
scale(x, center= TRUE**, scale=** TRUE**)** column center or standardize a matrix.

仿真数据

复制代码
 set.seed(936757)  
    
 # Create example data
    
 data <- data.frame(x1 = runif(100),
    
                x2 = runif(100))
    
 head(data)                        
    
 # Head of example data
    
 #          x1        x2
    
 # 1 0.1455930 0.4151339
    
 # 2 0.1524390 0.8134210
    
 # 3 0.2395215 0.7935963
    
 # 4 0.7515754 0.5283296
    
 # 5 0.7779833 0.4289751
    
 # 6 0.6350550 0.8990219

在R语言中使用scale函数对dataframe数据进行标准化缩放,并使scale参数除以标准差。

默认、对于每个数值数据列、减去数据列的均值并除以数据列的标准差

此处只设置scale为TRUE、所以只除以标准差

复制代码
 data_scale1 <- scale(data,center=FALSE, scale=TRUE)  
    
 # Apply scale function
    
 head(data_scale1)                 
    
  
    
  
    
  
    
 > data_scale1 <- scale(data,center=FALSE, scale=TRUE)        
    
 > # Apply scale function
    
 > head(data_scale1) 
    
         x1          x2
    
 [1,] 0.8602458 1.218835394
    
 [2,] 0.7945331 0.674309446
    
 [3,] 1.4646561 0.959291963
    
 [4,] 1.3425221 0.954462719
    
 [5,] 1.2054941 0.819773035
    
 [6,] 1.0216729 0.006550389
    
 >

在R语言中调用scale函数进行数据归一化处理时,默认会基于列计算并减去均值;若需自定义中心化参数,则需指定相应的设置。

默认、对于每个数值数据列、减去数据列的均值并除以数据列的标准差

此处只设置center为TRUE、所以只减去减去均值

复制代码
 data_scale1 <- scale(data,center=TRUE, scale=FALSE)  
    
 # Apply scale function
    
 head(data_scale1)                 
    
  
    
  
    
 > data_scale1 <- scale(data,center=TRUE, scale=FALSE)        
    
 > # Apply scale function
    
 > head(data_scale1) 
    
           x1          x2
    
 [1,] -0.01125990  0.20680721
    
 [2,] -0.05247808 -0.12117007
    
 [3,]  0.36785541  0.05047976
    
 [4,]  0.29124705  0.04757103
    
 [5,]  0.20529650 -0.03355487
    
 [6,]  0.08999494 -0.52337275
    
 >

在R语言中调用scale函数进行数据归一化处理(默认情况下同时设置scale和center参数:center参数用于均值减除,scale参数用于标准差归一化)

对于每个数值数据列、减去数据列的均值并除以数据列的标准差

复制代码
 data_scale1 <- scale(data)  
    
 # Apply scale function
    
 head(data_scale1)                 
    
 # Head of scaled data
    
 #              x1           x2
    
 # [1,] -1.2764344 -0.433002745
    
 # [2,] -1.2523528  1.058137478
    
 # [3,] -0.9460274  0.983916110
    
 # [4,]  0.8551967 -0.009211208
    
 # [5,]  0.9480902 -0.381182671
    
 # [6,]  0.4453192  1.378617326

R语言中的dplyr包用于对dataframe进行标准化缩放;具体而言,即对每个数值型的数据列先计算其均值,并将该均值从该列中减去;随后再将得到的结果除以该列的标准差.

复制代码
 install.packages("dplyr")  
    
 # Install & load dplyr package
    
 library("dplyr")
    
  
    
 data_scale2 <- data %>%           
    
 # Applying functions of dplyr
    
   mutate_at(c("x1", "x2"), ~(scale(.) %>% as.vector))
    
 head(data_scale2)                 
    
 # Head of scaled data
    
 #           x1           x2
    
 # 1 -1.2764344 -0.433002745
    
 # 2 -1.2523528  1.058137478
    
 # 3 -0.9460274  0.983916110
    
 # 4  0.8551967 -0.009211208
    
 # 5  0.9480902 -0.381182671
    
 # 6  0.4453192  1.378617326

在R语言中,默认情况下,默认设置为lag=1和differences=1,并按顺序计算滞后差异;该函数用于处理向量数据的滞后差异或迭代运算。

复制代码
 x <- c(5, 2, 10, 1, 3)  
    
 # Create example vector
    
  
    
 diff(x)                            
    
 # Apply diff in R
    
 # -3  8 -9  2
    
  
    
 2 – 5 = – 3
    
 10 – 2 = 8
    
 1 – 10 = – 9
    
 3 – 1 = 2

R语言调用differ函数运算向量数据的时间序列差分序列(指定时间窗参数lag为2;生成每隔一个数据点的时间序列差分序列;中间跳过了一个观测周期)

中间间隔了一个数据;

复制代码
 x <- c(5, 2, 10, 1, 3)  
    
 # Create example vector
    
  
    
  
    
 diff(x, lag = 2)                   
    
 # Apply diff with lag
    
 # 5 -1 -7
    
  
    
 5 = 10-5
    
  
    
 -1 = 1-2
    
  
    
 -7 = 3-10
diff R Function Graphical Illustration

R语言调用diff函数来处理向量数据,并支持逐期递减或累进差异的分析功能(用户可通过设定参数differences为指定整数值来选择所需运算次数)。当设定参数differences为2时,默认会首先在原始数据上进行一次一阶递减运算(即生成一阶差别序列),随后在此结果基础上继续执行后续的一阶差别运算(即再生成一次差别序列),最终得到的就是二阶迭代差别序列)。这种操作方式将按照从先到后的顺序逐步生成每个时间点上的逐期差异序列

复制代码
 x <- c(5, 2, 10, 1, 3)  
    
 # Create example vector
    
  
    
 > diff(x,differences = 1)
    
 [1] -3  8 -9  2
    
  
    
 2 – 5 = – 3
    
 10 – 2 = 8
    
 1 – 10 = – 9
    
 3 – 1 = 2
    
  
    
  
    
 > diff(x,differences = 2)
    
 [1]  11 -17  11
    
 > 
    
  
    
 11 = 8- (-3)
    
 -17 = -9 - 8
    
 11 = 2 - (-9)

R语言使用sd函数计算数据列或者向量标准差(standard deviation)

复制代码
 x <- c(4, 5, 1, 8, 9, 4)  
    
 # Create example vector in R
    
  
    
 sd(x)                          
    
 # Apply sd function
    
 # 2.926887

R语言采用sd函数来计算数据列或向量的标准偏差(standard deviation),在数据中存在缺失值NA的情况下进行处理。

复制代码
 x_NA <- c(x, NA)  
    
 # Create vector with NA
    
  
    
 sd(x_NA)                       
    
 # Apply sd to NA vector
    
 # NA
    
  
    
 sd(x_NA, na.rm = TRUE)         
    
 # Use na.rm option
    
 #2.926887

R语言通过sd函数实现数据列或向量的标准差估算;该方法还可用于估算指定dataframe中的各变量离散程度

复制代码
 data(iris)  
    
 # Load iris data
    
  
    
 head(iris)                      
    
 # First 6 rows of iris data
    
  
    
 sd(iris$Sepal.Length)           
    
 # Apply sd to column of iris
    
 # 0.8280661

仿真数据

复制代码
 set.seed(1234)  
    
 # Set seed
    
 data <- data.frame(matrix(round(runif(12, 1, 20)),      
    
 # Create example data
    
                       nrow = 3, ncol = 4))
    
 data                                                    
    
 # Print data to RStudio console
Table 1 Numeric Data Frame

利用R语言的colSums函数对dataframe中的每一列进行数据求和运算,并完成对整个dataframe中各列的数据总和求取

colSums函数、rowSums函数、colMeans函数、rowMeans函数

复制代码
 colSums(data)  
    
 # Basic application of colSums
    
 # X1 X2 X3 X4 
    
 # 29 43 20 36
    
  
    
  
    
 rowSums(data)                                            
    
 # Basic application of rowSums
    
 # 28 49 51
    
  
    
 colMeans(data)                                           
    
 # Basic application of colMeans
    
 #       X1        X2        X3        X4 
    
 # 9.666667 14.333333  6.666667 12.000000
    
  
    
  
    
 rowMeans(data)                                           
    
 # Basic application of rowMeans
    
 # 7.00 12.25 12.75

R语言通过rowSums函数对dataframe进行行求和运算

colSums函数、rowSums函数、colMeans函数、rowMeans函数

复制代码
 colSums(data)  
    
 # Basic application of colSums
    
 # X1 X2 X3 X4 
    
 # 29 43 20 36
    
  
    
  
    
 rowSums(data)                                            
    
 # Basic application of rowSums
    
 # 28 49 51
    
  
    
 colMeans(data)                                           
    
 # Basic application of colMeans
    
 #       X1        X2        X3        X4 
    
 # 9.666667 14.333333  6.666667 12.000000
    
  
    
  
    
 rowMeans(data)                                           
    
 # Basic application of rowMeans
    
 # 7.00 12.25 12.75

R语言调用colMeans函数求取dataframe中的全部数据字段的平均值

colSums函数、rowSums函数、colMeans函数、rowMeans函数

复制代码
 colSums(data)  
    
 # Basic application of colSums
    
 # X1 X2 X3 X4 
    
 # 29 43 20 36
    
  
    
  
    
 rowSums(data)                                            
    
 # Basic application of rowSums
    
 # 28 49 51
    
  
    
 colMeans(data)                                           
    
 # Basic application of colMeans
    
 #       X1        X2        X3        X4 
    
 # 9.666667 14.333333  6.666667 12.000000
    
  
    
  
    
 rowMeans(data)                                           
    
 # Basic application of rowMeans
    
 # 7.00 12.25 12.75

在R语言环境中,利用rowMeans函数来计算该dataframe中各个数值的算术平均数

colSums函数、rowSums函数、colMeans函数、rowMeans函数

复制代码
 colSums(data)  
    
 # Basic application of colSums
    
 # X1 X2 X3 X4 
    
 # 29 43 20 36
    
  
    
  
    
 rowSums(data)                                            
    
 # Basic application of rowSums
    
 # 28 49 51
    
  
    
 colMeans(data)                                           
    
 # Basic application of colMeans
    
 #       X1        X2        X3        X4 
    
 # 9.666667 14.333333  6.666667 12.000000
    
  
    
  
    
 rowMeans(data)                                           
    
 # Basic application of rowMeans
    
 # 7.00 12.25 12.75

R语言通过运用rowMeans函数与rowSums获取dataframe中所有数据行的平均值与总和,并将这些统计信息整合到原始dataframe中

复制代码
 data_ext1 <- cbind(data,  
    
 # Add rowSums & rowMeans to data
    
                rowSums = rowSums(data),
    
                rowMeans = rowMeans(data))
    
 data_ext1                                                 
    
 # Print data to RStudio console
Table 3 Numeric Data Frame with sums & means

仿真数据(包含缺失NA值)

复制代码
 data_na <- as.matrix(data)  
    
 # Create example data with NA
    
 data_na[rbinom(length(data_na), 1, 0.3) == 1] <- NA
    
 data_na <- as.data.frame(data_na)
    
 data_na                                                    
    
 # Print data to RStudio console
Table 4 Numeric Data Frame with NA

R语言通过调用rowMeans()与rowSums()这两个函数来对dataframe中的每一行进行平均数与总和的求取操作(其中这两个函数对于各列的数据处理方式相同)。在默认情况下该方法不会对缺少数值的数据进行特别处理;如果输入矩阵中有任意一个单元格存在缺失,则输出矩阵相应位置也会记录为缺少数值。

复制代码
 colSums(data_na)  
    
 # colSums with NA output
    
 # X1 X2 X3 X4 
    
 # NA NA 20 36
    
  
    
 rowSums(data_na)                                           
    
 # rowSums with NA output
    
 # NA NA 51
    
  
    
 colMeans(data_na)                                          
    
 # colMeans with NA output
    
 # X1        X2        X3        X4 
    
 # NA        NA  6.666667 12.000000
    
  
    
 rowMeans(data_na)                                          
    
 # rowMeans with NA output
    
 # NA    NA 12.75

在R语言中,通过调用rowMeans函数及rowSums函数来计算dataframe中每一行的数据平均值与总和(对于列相关的函数也适用),并在设置na.rm = TRUE时得到的结果

复制代码
 colSums(data_na, na.rm = TRUE)  
    
 # Remove NA within colSums
    
 # X1 X2 X3 X4 
    
 # 16 30 20 36
    
  
    
 rowSums(data_na, na.rm = TRUE)                              
    
 # Remove NA within rowSums
    
 # 15 36 51
    
  
    
 colMeans(data_na, na.rm = TRUE)                             
    
 # Remove NA within colMeans
    
 #       X1        X2        X3        X4 
    
 # 8.000000 15.000000  6.666667 12.000000
    
  
    
 rowMeans(data_na, na.rm = TRUE)                             
    
 # Remove NA within rowMeans
    
 # 5.00 12.00 12.75

调用R语言中的colMedians函数获取dataframe各列的中位数值。通过调用该函数可获得全部列的中位数值。

colMedians函数和rowMedians函数

复制代码
 install.packages("robustbase")  
    
 # Install robustbase package 
    
 library("robustbase")                                        
    
 # Load robustbase package
    
  
    
 data_mat <- as.matrix(data)                                  
    
 # Convert data.frame to matrix
    
  
    
 colMedians(data_mat)                                         
    
 # No colMedians error anymore
    
 # X1 X2 X3 X4 
    
 # 13 13  5 11
    
  
    
 rowMedians(data_mat)                                         
    
 # No rowMedians error anymore
    
 # 7.0 13.5 13.0

该段代码利用rowMedians函数获取整个dataframe各列的中位数

colMedians函数和rowMedians函数

复制代码
 install.packages("robustbase")  
    
 # Install robustbase package 
    
 library("robustbase")                                        
    
 # Load robustbase package
    
  
    
 data_mat <- as.matrix(data)                                  
    
 # Convert data.frame to matrix
    
  
    
 colMedians(data_mat)                                         
    
 # No colMedians error anymore
    
 # X1 X2 X3 X4 
    
 # 13 13  5 11
    
  
    
 rowMedians(data_mat)                                         
    
 # No rowMedians error anymore
    
 # 7.0 13.5 13.0

R语言采用quantile函数来计算向量data vector中的百分位数值;通过指定probs参数以及相关选项来确定要计算的具体百分位数。

为R中的给定向量查找各种百分位数:

数据集的第n个百分位点是指在将所有数值按照从小到大的顺序排列时所确定的那个数值位置,在这个位置上的数值会被排除或分为单独的部分。

最常见的50%分位数是数据集中值的表现。其中心位置由中位数值体现。其本质特征即位于中间位置的那个数值。

分位数可用于回答以下问题:

在特定考试中获得某一特定分数的学生才能进入前10%,为了确定这一目标分数,我们需要计算所有成绩数据集中的第90百分位数。它是将所有成绩分为两部分的关键点:最低90%和最高10%。

对于某所学校的学生来说,涉及哪些学生涵盖了中间部分的学生身高?为了找出这个范围,我们确定了75th和25th百分位数这两个百分位数确定了身高中等部分的范围。

复制代码
 #create vector of 100 random values uniformly distributed between 0 and 500

    
 data <- runif(100, 0, 500)
    
  
    
 #Find the quartiles (25th, 50th, and 75th percentiles) of the vector
    
 quantile(data, probs = c(.25, .5, .75))
    
  
    
 #      25%       50%       75% 
    
 # 97.78961 225.07593 356.47943 
    
  
    
 #Find the deciles (10th, 20th, 30th, ..., 90th percentiles) of the vector
    
 quantile(data, probs = seq(.1, .9, by = .1))
    
  
    
 #      10%       20%       30%       40%       50%       60%       70%       80% 
    
 # 45.92510  87.16659 129.49574 178.27989 225.07593 300.79690 337.84393 386.36108 
    
 #      90% 
    
 #423.28070
    
  
    
 #Find the 37th, 53rd, and 87th percentiles
    
 quantile(data, probs = c(.37, .53, .87))
    
  
    
 #     37%      53%      87% 
    
 #159.9561 239.8420 418.4787

R语言通过quantile函数实现向量数据vector的百分位数求取,并通过指定probs参数和seq参数来获取指定范围内的所有百分位数值

为R中的给定向量查找各种百分位数:

在将所有数据按从小到大顺序排列的过程中,在某个特定位置p(对应于n%的位置),这个位置上的数值即为该数据集的第n个百分位数。

最具代表性的一种分位数是中位数,在统计学中被定义为数据排序后位于中间位置的一个数值

分位数可用于回答以下问题:

一名学生在一次特定考试中需要达到什么分数才能排名在前10%的学生群体中?为了确定该生的成绩排名是否在前10%,我们需要计算所有成绩集合中的第90百分位数作为区分底部90%和顶部10%的关键点。

对于某所学校的学生来说,请问涵盖中间50%身高的具体数值是什么?为了确定这个数值范围,请找出该学校75%身高中最高的和25%身高中最低的两个数据点。

复制代码
 #create vector of 100 random values uniformly distributed between 0 and 500

    
 data <- runif(100, 0, 500)
    
  
    
 #Find the quartiles (25th, 50th, and 75th percentiles) of the vector
    
 quantile(data, probs = c(.25, .5, .75))
    
  
    
 #      25%       50%       75% 
    
 # 97.78961 225.07593 356.47943 
    
  
    
 #Find the deciles (10th, 20th, 30th, ..., 90th percentiles) of the vector
    
 quantile(data, probs = seq(.1, .9, by = .1))
    
  
    
 #      10%       20%       30%       40%       50%       60%       70%       80% 
    
 # 45.92510  87.16659 129.49574 178.27989 225.07593 300.79690 337.84393 386.36108 
    
 #      90% 
    
 #423.28070
    
  
    
 #Find the 37th, 53rd, and 87th percentiles
    
 quantile(data, probs = c(.37, .53, .87))
    
  
    
 #     37%      53%      87% 
    
 #159.9561 239.8420 418.4787

在R语言中,我们可以通过调用quantile函数来获取dataframe中特定数据列对应的百分位数值,并通过指定probability参数(即probs)来调整所需计算的百分位数。

查找dataframe特定列的百分位数;

Data set percentiles are determined by ordering all values from smallest to largest and then identifying the value that either discards or partitions the first n percent of the ordered data.

在数据处理中,最常见的百分位数是第50百分位数;该值即为数据集合的中位数值。直观而言,则是位于数据排序后正中间的那个数字。

分位数可用于回答以下问题:

一名学生在特定科目考试中需要获得多少分数才能达到排名前十 percent 的要求?为了确定这个分数,我们需要计算所有考生分数中的第90 percent 分位数。这个分位数能够区分最低90 percent 和最高10 percent 的部分。

在某一特定学校的学生群体中,在身高方面所包含的中间部分占全体学生的50%,我们需要确定这一问题的答案。为此目的,在分析数据时我们确定了75th和25th百分位数作为中等部分的上下限。

复制代码
 #view first six rows of iris dataset

    
 head(iris)
    
  
    
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
    
 1          5.1         3.5          1.4         0.2  setosa
    
 2          4.9         3.0          1.4         0.2  setosa
    
 3          4.7         3.2          1.3         0.2  setosa
    
 4          4.6         3.1          1.5         0.2  setosa
    
 5          5.0         3.6          1.4         0.2  setosa
    
 6          5.4         3.9          1.7         0.4  setosa

计算分位数;

复制代码
 quantile(iris$Sepal.Length, probs = 0.9)

    
  
    
 #90% 
    
 #6.9

R语言通过apply函数以及quantile函数对dataframe中的每一列数据进行百分位数值的计算,并可通过设定probs参数来完成这一过程。

我们还可以使用apply()函数同时为多个列查找百分位数;

在对数据集进行排序时,第n个百分位数是指舍弃或分离掉位于数据序列前端的n%数值的那个点。

一种主要的分位数是第50百分位数(即中位數),所谓该指标即是处于中间位置的那个數值。

分位数可用于回答以下问题:

为了确定一个学生能否在特定科目的考试中进入前10%,他或她需要达到多少分?为此问题的答案是通过计算所有考生成绩分布中的第90百分位数值来确定。

对于特定学校的学生群体来说,哪些身高属于中间50%?为了确定这一数值区间,我们需要找出75%和25%的身高值;这两个数值构成了中等身高的上下限。

复制代码
 #define columns we want to find percentiles for

    
 small_iris<- iris[ , c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')]
    
  
    
 #use apply() function to find 90th percentile for every column
    
 apply(small_iris, 2, function(x) quantile(x, probs = .9))
    
  
    
 #Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
    
 #        6.90         3.61         5.80         2.20

在R语言中,默认情况下,默认情况下,默认情况下。

可以使用dplyr库中的group_by()函数在R中按组查找百分位数。

该数据集中的第n百分位数即当所有数值按从小到大的顺序排列时为剔除或分开的那个数值

第50百分位数被普遍认为是最常用的一种分位数,在统计学中具有重要地位;其反映了一组数据的中点位置;直观而言即为该数据集居于中间位置的那个数值;

分位数可用于回答以下问题:

为了确定一个学生在特定考试中进入前10%所需的分数是多少?我们需要找出所有考生成绩中第90百分位数这一分割点。这个数值将所有较低端90%的成绩与较高端10%的成绩区分开来。

在某一特定学校的班级中,哪些学生的身高属于中间50%?为了找出这些人的身高范围,我们需要确定75th和25th百分位数。这两个百分位数确定了中等身高的下限和上限。

复制代码
 #load dplyr library

    
 library(dplyr)
    
  
    
 #find 90th percentile of Sepal.Length for each of the three species
    
 iris %>%
    
   group_by(Species) %>%
    
   summarise(percent90 = quantile(Sepal.Length, probs = .9))
    
  
    
 # A tibble: 3 x 2
    
 #  Species    percent90
    
 #            
    
 #1 setosa          5.41
    
 #2 versicolor      6.7 
    
 #3 virginica       7.61

R语言使用max函数和min函数计算向量vector中的最大值和最小值

复制代码
 x1 <- c(4, 1, - 50, 20, 8)                   

    
 # Create example vector
    
 max(x1)                                       
    
 # Apply max to vector
    
 # 20
    
 min(x1)                                       
    
 # Apply min to vector
    
 # -50

在R语言中,max函数和min函数用于找出矢量中的极大值与极小矢量。对于含有缺失数值NA的矢量,如何求取其极大与极小矢量?

复制代码
 x2 <- c(x1, NA)                             

    
 # Create example vector with NA
    
 x2                                            
    
 # Print vector to RStudio console
    
 # 4   1 -50  20   8  NA
    
 max(x2)                                       
    
 # max returns NA
    
 # NA
    
 min(x2)                                       
    
 # min also returns NA
    
 # NA
    
 max(x2, na.rm = TRUE)                         
    
 # Specify na.rm = TRUE
    
 # 20
    
 min(x2, na.rm = TRUE)                         
    
 # Specify na.rm = TRUE
    
 # -50

R语言通过调用max函数和min函数来找出dataframe中指定数据列的最大与最小值

复制代码
 data("mtcars")                               

    
 # Load mtcars data in RStudio
    
  
    
 head(mtcars)                                  
    
 # First 6 rows of mtcars data frame
    
  
    
 max(mtcars$mpg)                               
    
 # Compute max of column mpg
    
 # 33.9
    
  
    
 min(mtcars$mpg)                               
    
 # Compute max of column mpg
    
 # 10.4

在R语言中采用sapply函数配合max和min这两个内置函数来获取dataframe中各列的最大值与最小值。

复制代码
 sapply(mtcars, max)                         

    
 # Compute max of all columns
    
 #    mpg     cyl    disp      hp    drat      wt    qsec      vs      am    gear    carb
    
 # 33.900   8.000 472.000 335.000   4.930   5.424  22.900   1.000   1.000   5.000   8.000

在R语言中,默认情况下会调用max()与min()函数来获取dataframe对象中的最大值与最小值

复制代码
 max(mtcars)                                 

    
 # Apply max algorithm to whole data.frame
    
 # 472
    
 min(mtcars)                                   
    
 # Apply min algorithm to whole data.frame
    
 # 0

R语言通过调用maximum value function和minimum value function来获取dataframe中这两列的最大数值与最小数值

复制代码
 max(c(mtcars$mpg, mtcars$cyl))               

    
 # Max between two columns / vectors
    
 # 33.9
    
  
    
 min(c(mtcars$mpg, mtcars$cyl))                 
    
 # Min between two columns / vectors
    
 # 4

R语言通过max函数和min函数求取特定的数据行中的最大值与最小值。

复制代码
 max(mtcars[5,])                             

    
 # Compute max of one row
    
 # 360
    
  
    
 min(mtcars[5,])                               
    
 # Compute min of one row
    
 # 0

R语言使用max函数和min函数计算字符串向量中的最大值和最小值

复制代码
 x_char <- c("hello",                         

    
 # Create character vector
    
             "R is nice",
    
             "max and min functions are awesome",
    
             "aaaaaa")
    
             
    
 max(x_char)                                   
    
 # Apply max to character vector
    
 # "R is nice"
    
  
    
 min(x_char)                                   
    
 # Apply min to character vector
    
 # aaaaaa

R语言采用mad函数、median函数和mean函数分别求取向量数据的中位数绝对偏差、中位数以及均值

复制代码
 x <- c(3, 4, 1, 8, 2, 5, 2, 1)     

    
 # Create example vector
    
 mad(x)                              
    
 # Apply mad function in R
    
 # 2.2239
    
 median(x1)                           
    
 # Apply median function
    
 mean(x1)                          
    
 # Apply mean function in R

R语言通过mad函数、median函数及mean函数来实现对向量数据进行中位数绝对偏差的计算,并分别得到中位数及算术平均值;对于含有缺失值的数据集而言,则会自动忽略这些缺失值进行运算

复制代码
 x2 <- c(8, 5, 3, 7, 8, 1, 6, 5, NA) 

    
 # Example vector with NA
    
 median(x2)                           
    
 # Apply median function
    
 # NA
    
 median(x2, na.rm = TRUE)             
    
 # median function with na.rm
    
 # 5.5

R语言通过调用mean函数来计算向量数据集的平均值;允许用户根据需求自定义trim参数以调节平均值计算中剔除异常数据的比例;该功能表明在求平均时需先剔除超出预设比例的数据点

复制代码
 x1 <- c(8, 6, 8, 3, 5, 2, 0, 5)

    
 # Create example vector
    
  
    
 > mean(x1, trim = 0.2)
    
 [1] 4.833333
    
  
    
 > mean(x1)
    
 [1] 4.625
    
 >

R语言使用mean函数计算dataframe指定数据列的均值

复制代码
 data(iris)                         

    
 # Load iris data
    
 head(iris)                           
    
 # Head of iris data
    
  
    
 mean(iris$Sepal.Length)            
    
 # mean of first column
    
 #

R语言使用mad函数计算dataframe指定数据列的中位数绝对偏差

复制代码
 data(iris)

    
 # Load iris data
    
 head(iris)
    
 # Head of iris data
    
  
    
 mad(iris$Sepal.Length)
    
 # mean of first column
    
 #

R语言使用median函数计算dataframe指定数据列的中位数

复制代码
 data(iris)                         

    
 # Load iris data
    
 head(iris)                           
    
 # Head of iris data
    
  
    
 median(iris$Sepal.Length)            
    
 # Median of first column
    
 # 5.8

R语言使用aggregate函数和mean函数计算每个分组数据的均值

复制代码
 aggregate(iris$Sepal.Length,

    
 # Median by group
    
           list(iris$Species),
    
           mean)
    
 #    Group.1   x
    
 #     setosa 5.0
    
 # versicolor 5.9
    
 #  virginica 6.5

R语言调用aggregate函数用于求取每个分组数据的中位数,并结合mad函数获取这些中位数的绝对偏差

复制代码
 aggregate(iris$Sepal.Length,

    
 # Median by group
    
           list(iris$Species),
    
           mad)
    
 #    Group.1   x
    
 #     setosa 5.0
    
 # versicolor 5.9
    
 #  virginica 6.5

R语言使用aggregate函数和median函数计算每个分组数据的中位数

复制代码
 aggregate(iris$Sepal.Length,       

    
 # Median by group
    
           list(iris$Species),
    
           median)
    
 #    Group.1   x
    
 #     setosa 5.0
    
 # versicolor 5.9
    
 #  virginica 6.5

R语言使用boxplot函数可视化箱图、并在图形中添加中位数文本标记

复制代码
 set.seed(1717)                     

    
 # Set seed
    
 x3 <- rpois(1000, 3)                 
    
 # Create larger example vector
    
 boxplot(x3)                          
    
 # Boxplot with median
    
 text(x = 1, y = 3.25,                
    
 # Add text to boxplot
    
      "Median of x3",
    
      col = "red")
Boxplot in R Programming Language with Median Line

R语言调用hist函数生成直方图,并在图表上标注出表示中位数值的文本标签;随后,在图表上绘制一条红色垂直线条以直观标示中位数的位置

复制代码
 hist(x3)                           

    
 # Histogram in R
    
 abline(v = median(x3),               
    
 # Add median to histogram
    
        col = "red",
    
        lwd = 3)
Histogram in R Programming Language with Median Line

安利一个R语言的优秀博主及其专栏:

博主博客地址:

博主的R语言专栏地址如下:(深入浅出地讲解了从入门到机器学习的过程,并系统性地分享了超过一千篇文章)

参考:R

全部评论 (0)

还没有任何评论哟~