R语言实战之描述性统计分析

R语言 描述性统计分析1 以下为学习《R语言实战》笔记。 1.方法 对于基础安装,summary()提供最大值、最小值、四分位数和数值型变量的均值,及因子向量和逻辑向量的频率统计 Hmisc包的describe()可返回变量和观测的数量、缺失值和唯一值得数目、平均数、分位数,及五个最大的值和五个最小的值。 pastecs包的stat.desc(),使用格式:stat.desc(x, basic=TRUE, de... 阅读详情

R语言实战之描述性统计分析

下面展示一些 描述性统计分析的R代码语言。

vars <- c("mpg","hp","wt")
head(mtcars[vars])

#创造一个统计的函数列表
#通过sapply()计算描述性统计变量(包括偏度和峰度)
mystats <- function(x,na.omit = FALSE){
  if(na.omit)
    x <- x[!is.na(x)]
  m <- mean(x)
  n <- length(x)
  s <- sd(x)
  skew <- sum((x-m)^3/s^3)/n
  kurt <- sum((x-m)^4/s^4)/n - 3
  return(c(n=n, mean = m, stdev = s, skew = skew, kurtosis = kurt))
}
sapply(mtcars[vars],mystats)
#sapply(mtcars[myvars],mystats,na.omit=TRUE)单纯忽略缺失值

library(Hmisc)
describe(mtcars[vars])
#通过pastecs包中的stat.desc()函数计算描述性统计量
library(pastecs)
stat.desc(mtcars[vars])

library(psych)
describe(mtcars[vars])

#分组计算描述性统计量
aggregate(mtcars[vars], by = list(am = mtcars$am), mean)
#aggregate()允许在每次调用中使用平均数、标准差这样的单返回值函数。


#使用by()分组计算描述性统计量
dstats <- function(x)sapply(x,mystats)
vars <- c("mpg","hp","wt")
by(mtcars[vars],mtcars$am,dstats)

#使用doBy包中的summaryBy()分组计算概述统计量
library(doBy)
summaryBy(mpg + hp + wt ~ am, data = mtcars, FUN = mystats)

#使用psych包分组计算概述统计量
library(psych)
describeBy(mtcars[vars],mtcars$am)
#不允许指定任意函数,所以普适性较低
#psych包中的describeBy()函数可计算和describe()相同的描述性统计量,只按照一个或多个分组的变量分层。

#对比分析
library(doBy)
summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)
library(psych)
describeBy(mtcars[vars],list(am=mtcars$am))


#使用reshape包分组计算概述统计量
library(reshape)
dstats1 <- function(x)(c(n = length(x), mean = mean(x), sd = sd(x)))
dfm <- melt(mtcars, measure.vars = vars, id.vars = c("am","cyl"))
cast(dfm, am + cyl + variable ~ . , dstats1)
> vars <- c("mpg","hp","wt")
> head(mtcars[vars])
                   mpg  hp   wt
Mazda RX4         21.0 110 2.62
Mazda RX4 Wag     21.0 110 2.88
Datsun 710        22.8  93 2.32
Hornet 4 Drive    21.4 110 3.21
Hornet Sportabout 18.7 175 3.44
Valiant           18.1 105 3.46
> 
> #创造一个统计的函数列表
> #通过sapply()计算描述性统计变量(包括偏度和峰度)
> mystats <- function(x,na.omit = FALSE){
+   if(na.omit)
+     x <- x[!is.na(x)]
+   m <- mean(x)
+   n <- length(x)
+   s <- sd(x)
+   skew <- sum((x-m)^3/s^3)/n
+   kurt <- sum((x-m)^4/s^4)/n - 3
+   return(c(n=n, mean = m, stdev = s, skew = skew, kurtosis = kurt))
+ }
> sapply(mtcars[vars],mystats)
            mpg      hp      wt
n        32.000  32.000 32.0000
mean     20.091 146.688  3.2172
stdev     6.027  68.563  0.9785
skew      0.611   0.726  0.4231
kurtosis -0.373  -0.136 -0.0227
> #sapply(mtcars[myvars],mystats,na.omit=TRUE)单纯忽略缺失值
> 
> library(Hmisc)
> describe(mtcars[vars])
    vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 32  20.09  6.03  19.20   19.70  5.41 10.40  33.90  23.50 0.61    -0.37  1.07
hp     2 32 146.69 68.56 123.00  141.19 77.10 52.00 335.00 283.00 0.73    -0.14 12.12
wt     3 32   3.22  0.98   3.33    3.15  0.77  1.51   5.42   3.91 0.42    -0.02  0.17
> #通过pastecs包中的stat.desc()函数计算描述性统计量
> library(pastecs)
> stat.desc(mtcars[vars])
                mpg       hp      wt
nbr.val       32.00   32.000  32.000
nbr.null       0.00    0.000   0.000
nbr.na         0.00    0.000   0.000
min           10.40   52.000   1.513
max           33.90  335.000   5.424
range         23.50  283.000   3.911
sum          642.90 4694.000 102.952
median        19.20  123.000   3.325
mean          20.09  146.688   3.217
SE.mean        1.07   12.120   0.173
CI.mean.0.95   2.17   24.720   0.353
var           36.32 4700.867   0.957
std.dev        6.03   68.563   0.978
coef.var       0.30    0.467   0.304
> 
> library(psych)
> describe(mtcars[vars])
    vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 32  20.09  6.03  19.20   19.70  5.41 10.40  33.90  23.50 0.61    -0.37  1.07
hp     2 32 146.69 68.56 123.00  141.19 77.10 52.00 335.00 283.00 0.73    -0.14 12.12
wt     3 32   3.22  0.98   3.33    3.15  0.77  1.51   5.42   3.91 0.42    -0.02  0.17
> 
> #分组计算描述性统计量
> aggregate(mtcars[vars], by = list(am = mtcars$am), mean)
  am  mpg  hp   wt
1  0 17.1 160 3.77
2  1 24.4 127 2.41
> #aggregate()允许在每次调用中使用平均数、标准差这样的单返回值函数。
> 
> 
> #使用by()分组计算描述性统计量
> dstats <- function(x)sapply(x,mystats)
> vars <- c("mpg","hp","wt")
> by(mtcars[vars],mtcars$am,dstats)
mtcars$am: 0
            mpg       hp     wt
n        19.000  19.0000 19.000
mean     17.147 160.2632  3.769
stdev     3.834  53.9082  0.777
skew      0.014  -0.0142  0.976
kurtosis -0.803  -1.2097  0.142
----------------------------------------------------------------------------- 
mtcars$am: 1
             mpg      hp     wt
n        13.0000  13.000 13.000
mean     24.3923 126.846  2.411
stdev     6.1665  84.062  0.617
skew      0.0526   1.360  0.210
kurtosis -1.4554   0.563 -1.174
> 
> #使用doBy包中的summaryBy()分组计算概述统计量
> library(doBy)
> summaryBy(mpg + hp + wt ~ am, data = mtcars, FUN = mystats)
  am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew hp.kurtosis wt.n
1  0    19     17.1      3.83   0.0140       -0.803   19     160     53.9 -0.0142      -1.210   19
2  1    13     24.4      6.17   0.0526       -1.455   13     127     84.1  1.3599       0.563   13
  wt.mean wt.stdev wt.skew wt.kurtosis
1    3.77    0.777   0.976       0.142
2    2.41    0.617   0.210      -1.174
> 
> #使用psych包分组计算概述统计量
> library(psych)
> describeBy(mtcars[vars],mtcars$am)

 Descriptive statistics by group 
group: 0
    vars  n   mean    sd median trimmed   mad   min    max  range  skew kurtosis    se
mpg    1 19  17.15  3.83  17.30   17.12  3.11 10.40  24.40  14.00  0.01    -0.80  0.88
hp     2 19 160.26 53.91 175.00  161.06 77.10 62.00 245.00 183.00 -0.01    -1.21 12.37
wt     3 19   3.77  0.78   3.52    3.75  0.45  2.46   5.42   2.96  0.98     0.14  0.18
----------------------------------------------------------------------------- 
group: 1
    vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 13  24.39  6.17  22.80   24.38  6.67 15.00  33.90  18.90 0.05    -1.46  1.71
hp     2 13 126.85 84.06 109.00  114.73 63.75 52.00 335.00 283.00 1.36     0.56 23.31
wt     3 13   2.41  0.62   2.32    2.39  0.68  1.51   3.57   2.06 0.21    -1.17  0.17
> #不允许指定任意函数,所以普适性较低
> #psych包中的describeBy()函数可计算和describe()相同的描述性统计量,只按照一个或多个分组的变量分层。
> 
> #对比分析
> library(doBy)
> summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)
  am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew hp.kurtosis wt.n
1  0    19     17.1      3.83   0.0140       -0.803   19     160     53.9 -0.0142      -1.210   19
2  1    13     24.4      6.17   0.0526       -1.455   13     127     84.1  1.3599       0.563   13
  wt.mean wt.stdev wt.skew wt.kurtosis
1    3.77    0.777   0.976       0.142
2    2.41    0.617   0.210      -1.174
> library(psych)
> describeBy(mtcars[vars],list(am=mtcars$am))

 Descriptive statistics by group 
am: 0
    vars  n   mean    sd median trimmed   mad   min    max  range  skew kurtosis    se
mpg    1 19  17.15  3.83  17.30   17.12  3.11 10.40  24.40  14.00  0.01    -0.80  0.88
hp     2 19 160.26 53.91 175.00  161.06 77.10 62.00 245.00 183.00 -0.01    -1.21 12.37
wt     3 19   3.77  0.78   3.52    3.75  0.45  2.46   5.42   2.96  0.98     0.14  0.18
----------------------------------------------------------------------------- 
am: 1
    vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 13  24.39  6.17  22.80   24.38  6.67 15.00  33.90  18.90 0.05    -1.46  1.71
hp     2 13 126.85 84.06 109.00  114.73 63.75 52.00 335.00 283.00 1.36     0.56 23.31
wt     3 13   2.41  0.62   2.32    2.39  0.68  1.51   3.57   2.06 0.21    -1.17  0.17
> 
> 
> #使用reshape包分组计算概述统计量
> library(reshape)
> dstats1 <- function(x)(c(n = length(x), mean = mean(x), sd = sd(x)))
> dfm <- melt(mtcars, measure.vars = vars, id.vars = c("am","cyl"))
> cast(dfm, am + cyl + variable ~ . , dstats1)
   am cyl variable  n   mean     sd
1   0   4      mpg  3  22.90  1.453
2   0   4       hp  3  84.67 19.655
3   0   4       wt  3   2.94  0.408
4   0   6      mpg  4  19.12  1.632
5   0   6       hp  4 115.25  9.179
6   0   6       wt  4   3.39  0.116
7   0   8      mpg 12  15.05  2.774
8   0   8       hp 12 194.17 33.360
9   0   8       wt 12   4.10  0.768
10  1   4      mpg  8  28.07  4.484
11  1   4       hp  8  81.88 22.655
12  1   4       wt  8   2.04  0.409
13  1   6      mpg  3  20.57  0.751
14  1   6       hp  3 131.67 37.528
15  1   6       wt  3   2.75  0.128
16  1   8      mpg  2  15.40  0.566
17  1   8       hp  2 299.50 50.205
18  1   8       wt  2   3.37  0.283

以上,共勉,有问题欢迎评论~

R语言数据描述性统计(Descriptive statistics)实战:数据全局描述信息、数值数据的描述性统计(Numerical data)、离散型数据的描述性统计(Categorical) 阅读详情

相关推荐

R语言描述性统计分析实战:从统计量选择到可复用函数

描述性统计是数据分析的基础环节,涉及连续变量分布诊断、分类变量频数汇总及缺失值处理。在R语言中,通过dplyr和data.table实现分组汇总,结合ggplot2可视化,可高效生成规范统计表。合理选择均值、中位数等统计量,并封装可复用函数,能显著提升分析效率与报告质量,适用于学术研究、商业分析等场景。

weixin_33883104的博客 211

R:R语言实战学习一(基本统计分析)

本学期的课程R语言实战只学了前六章的皮毛,实际上后面的知识用的更多,前面的是基础,这次学习第七章:基本统计分析。

weixin_73362123的博客 959

R语言描述性统计分析实战:从summary到psych与可视化避坑指南

描述性统计分析是数据科学的基础环节,通过均值、标准差、偏度、峰度等统计量快速摸清数据分布特征。在R语言中,summary()、sapply()及psych::describe()等函数可高效计算这些指标,帮助识别缺失值、异常值与共线性问题。其技术价值在于为后续建模提供可靠地基,避免因数据质量问题导致模型失效。典型应用场景包括数据清洗、探索性分析及报告生成。本文围绕R语言环境,系统讲解基础函数三件套、第三方包对比、分组统计与ggplot2可视化搭配,并附自动化脚本模板,助你构建可复现的描述性统计流程。

weixin_32325225的博客 246

R语言笔记之语法篇

R语言基础之语法 分支结构Ifelse和 Ifelse函数 循环结构 for循环 while循环 repeat循环 breaknext 函数和包 1函数 1创建 2查看函数代码 3导入R文件 2包的安装和加载 1包的安装 2包的加载 向量化计算 1普通的加减乘除 2apply家族 1 applyxMARGIN2 2 lapply列表函数名函数其他参数 3 sapply列表函数名函数其他参数 4

tonydandelion2014的博客 1万+

R语言描述性统计分析实战:从基础统计量到分组汇总与可视化

数据分析的第一步是真正理解数据分布,而描述性统计正是量化数据特征的基础工具。R语言作为数据科学领域的高频使用语言,提供了从基础统计量到分组汇总的完整解决方案。本文围绕均值、中位数、分位数等核心指标,系统讲解缺失值处理、quantile函数的多种算法差异,以及tapply、aggregate与dplyr在分组统计中的适用场景,并结合直方图、箱线图、散点图矩阵等可视化手段,帮助读者避开常见的数据坑点,构建一套可复用的统计分析流程。文章兼顾技术原理与工程实践,适合数据分析初学者快速上手,也适合有经验的从业者梳理统

weixin_33507732的博客 250

单细胞测序数据读取实战指南:从入门到精通

本文提供了单细胞测序数据读取的实战指南,涵盖从标准10X Genomics格式到通用表达矩阵及RDS文件的读取方法。文章重点解析了数据读取的核心步骤、常见问题解决方案及进阶技巧,旨在帮助用户夯实数据分析基础,确保后续分析流程的准确性。

weixin_29095587的博客 460

R语言实战之基本统计分析

原文出处:https://www.jianshu.com/p/90ed27810474 第7章 基本统计分析 在数据被组织成合适的形式后,可以使用图形探索数据,接下来是使用数值描述每个变量的分布,然后则是两两探索所选择变量之间的关系。 本章将评述用于生成基本的描述性统计量和推断统计量的R函数。 7.1 描述性统计分析 本节介绍分析连续型变量中心趋势、变化性和分布性的方法。 使用第1章中Mo...

SL_World的博客 8244

从拧螺丝到精密装配:三菱伺服电机扭矩控制在工业自动化中的实战解析

本文深入解析三菱伺服电机扭矩控制在工业自动化中的实战应用,重点介绍MR-J4系列伺服系统的高精度扭矩响应技术。从螺丝紧固到精密装配,详细讲解扭矩控制模式的选择、硬件配置、参数设置及典型故障排查方案,帮助工程师提升生产效率和产品质量。

weixin_29186249的博客 471

R语言描述性统计分析

1. 简单描述 1.1 数值变量 summary() 函数 summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。 其格式为: summary(data1$var1) Hmisc包中的describe()函数 Hmisc包中的describe()函数可返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。 其格式为 library(Hmisc) describe(data1$var1) pastecs包

dataxc的博客 1万+

DINOv3实战指南:如何利用零样本视觉模型革新工业质检

本文详细介绍了如何利用DINOv3零样本视觉模型革新工业质检流程。通过无需标注数据的自监督学习技术,DINOv3能快速部署高精度检测系统,显著降低成本和提升效率。文章涵盖模型选型、数据准备、实时检测优化及典型行业解决方案,为工业质检提供革命性AI实践指南。

ansible6ops的博客 124

解决用VScode写中文注释,Vivado打开之后是乱码的方法

这样就解决了中文注释乱码的问题,此外如果使用notepad++写verilog代码的话直接在notepad++上面将编码格式改为ANSI格式即可,更加方便快捷,所以此方法仅针对习惯用VScode写Verilog的同学,如果有其他好办法的话欢迎评论区补充。首先,VScode中的中文默认编码格式是UTF-8,然后Vivado的编码格式是vivado 默认的应该是ANSI编码格式,刚开始我先按照网上说明的,将VScode中的编码格式改为GBK格式(点击右下角->点击通过编码保存)。

weixin_50573305的博客 5813

视频教程-R语言之描述性统计分析实战视频课程-其他

R语言之描述性统计分析实战视频课程 WOT峰会讲师,中国R语言大会讲师,数据...

weixin_29485847的博客 226

CCP消息格式

CCP消息格式 CCP协议的实现只依赖于两则CAN消息CRO(Command Receive Object)和DTO(Data Transmission Object),CCP消息统一采用8字节数据场,所有命令参数以及数据都被打包在8字节的数据场中。 1、CRO(命令接收对象) CRO是主设备向从设备发送的消息对象,包括命令代码及命令参数,结构如下: CCP一共28条命令,所以命令代码有28个。...

wsq119的博客 1206

R语言实战 07-描述性统计分析

文章目录1. 描述性统计分析 1. 描述性统计分析 描述性统计量分析:包括平均数,方差,极差,最大值,最小值等,属于概率论与数理统计的简单内容。 # 每加仑汽油行驶英里数(mpg) 、马力(hp)和车重(wt) # 变速箱类型(am) 汽缸数(cyl) mtcars # 所用数据 summary(mtcars[c("mpg","hp","wt")]) # summmary() 得到数据的统计量 # length()、 range()、quantile()/mean()、sd()、var()

hac_kill_you的博客 1161

Backtrader Web:开源量化交易全栈平台

Backtrader Web是一个基于Backtrader框架的现代化量化交易全栈平台,将专业回测引擎与Web技术结合,提供从策略开发到实盘交易的完整解决方案。平台采用FastAPI+Vue3技术栈,具有118个内置策略模板、专业可视化分析工具和完整的策略生命周期管理功能。支持策略版本控制、参数优化、模拟/实盘交易及监控告警,通过RESTful API和WebSocket实现前后端交互。系统采用模块化设计,包含策略服务、回测服务等核心模块,支持SQLite/PostgreSQL等多种数据库。安装简单,5分钟

云金杞 643

iOS远程真机之WebDriverAgent 天坑记

一、WDA安装依赖报错:       这个东西神坑,我搞了一天都没找到解决方案,最后在appium讨论中发现,       解决方案是:       先定位到WebDriverAgent 所在路径$ cd /Users/XXXX/git/WebDriverAgent        然后运行:mkdir -p Resources/WebDriverAgent.bundle sh ./Scripts/b

甫式人生 7316

R语言实战-统计分析基础-描述性统计1-summary

数据统计分析的第一步就是对数据的描述性统计,R语言令人头疼的是,提供这项服务的实在太多了 1、summary函数 1 > data("mtcars") 2 > force(mtcars) 3 mpg cyl disp hp drat wt qsec vs am gear carb 4 Mazda RX4 ...

weixin_30420305的博客 3020

CentOS7 内核升级

可在http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS选择对应架构平台不受影响的内核版本文件下载,然后离线安装,也可通过yum下载包后进行安装。通过 #uname -sr ,可以看到当前的内核版本 Linux 3.10.0-1160.el7.x86_64。首先找台能访问互联网的机器,通过联网的机器进行内核包下载。lt:longterm的缩写:长期维护版;ml:mainline的缩写:最新稳定版;

Jian Sun_的博客 601

R语言实战-统计分析基础-描述性统计3-pastecs-stat.desc

1 > library(pastecs) 2 Warning message: 3 程辑包‘pastecs’是用R版本3.5.3 来建造的 4 > stat.desc(mtcars[vars]) 5 mpg hp wt 6 nbr.val 32.0000000 3...

weixin_30832143的博客 1447

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

R语言实战 - 基本统计分析(1)- 描述性统计分析

> vars <- c("mpg", "hp", "wt") > head(mtcars[vars]) mpg hp wt Mazda RX4 21.0 110 2.620 Mazda RX4 Wag 21.0 110 2.875 Datsun 710 22.8 93 2.320 ...

weixin_30654583的博客 965

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

R语言之描述性统计分析实战视频课程-谢佳标-专题视频课程

通过利用R语言进行数据的探索性分析,熟练运用R语言进行数据的位置度量、离散度量、列联表及相关性等的数据分析需求。

jiabiao1602的专栏 352

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

R语言实战-统计分析基础-描述性统计2-sapply

2、sapply函数 这个函数是对lapply函数的一个封装 主要的作用是“Apply a Function over a List or Vector”,即:对列表或者向量应用函数 1 > data("mtcars") 2 > vars<-c('mpg','hp','wt') 3 > mySummary<- function(x,na.om...

weixin_30423977的博客 550

R语言实战-统计分析基础-描述性统计3-Hmisc-describe

1 > describe(mtcars[vars]) 2 mtcars[vars] 3 4 3 Variables 32 Observations 5 -------------------------------------------------------------------------- 6 mpg 7 n mi...

weixin_30664051的博客 1040

R语言题目及参考答案(2)

所有题目的参考答案在我的资源里面:R语言与统计性描述题目及参考答案 1.有一个数据框,其生成代码如下, Ozone <- c(41, 36, 12, 18, NA, 28) Solar.R <- c(190, 118, 149, 313, NA, NA) wind <- c(7.4, 8.0, 12.6, 11.5, 14.3, 14.9) Temp <- c(67, 82, 74, 62, 86, 66) date <-c(“1997/05/01”,“1997/05/02”,

皮小孩的博客 8490

R语言实战-统计分析基础-描述性统计4-psych-describe

1 程辑包‘psych’是用R版本3.5.3 来建造的 2 > describe(mtcars[vars]) 3 vars n mean sd median trimmed mad min max range skew 4 mpg 1 32 20.09 6.03 19.20 19.70 5.41 10.40 33.9...

weixin_30415113的博客 2140

r语言descstats_R语言实战-统计分析基础-描述性统计3-pastecs-stat.desc

1 > library(pastecs)2 Warning message:3 程辑包‘pastecs’是用R版本3.5.3 来建造的4 > stat.desc(mtcars[vars])5 mpg hp wt6 nbr.val 32.0000000 32.0000000 32.00000...

weixin_29558841的博客 1073
上一篇: R语言实战之如何对数据进行缺失值处理
下一篇: 周志华西瓜书学习笔记(一)
Math_is_hard.
博客等级 码龄6年 10粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值