diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..b8240a2a --- /dev/null +++ b/404.html @@ -0,0 +1,1452 @@ + + + + + + + + + + + + + + + + + + + + + + + WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ML/ML-Link/index.html b/ML/ML-Link/index.html new file mode 100644 index 00000000..c159ac84 --- /dev/null +++ b/ML/ML-Link/index.html @@ -0,0 +1,1592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 推荐视频 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ML/index.html b/ML/index.html new file mode 100644 index 00000000..3f10c895 --- /dev/null +++ b/ML/index.html @@ -0,0 +1,1491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Introduce - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Introduce

+

此处省略...

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/00 \345\237\272\347\241\200\347\237\245\350\257\206/index.html" "b/R/00 \345\237\272\347\241\200\347\237\245\350\257\206/index.html" new file mode 100644 index 00000000..6a8e7c55 --- /dev/null +++ "b/R/00 \345\237\272\347\241\200\347\237\245\350\257\206/index.html" @@ -0,0 +1,2216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 基础知识 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

基础知识

+ +

快速查询注释

+

(1)粗略看下参数内容: +光标悬停在函数名上 +(2)详细看下函数设置: +光标悬停在函数名上,再按F1,效果同help(function)、?function

+

常用快捷键

+

Alt+- 赋值符号“<-”

+

Ctr+shift+M 管道符号“%>%”

+

Ctr+Alt+I R程序框

+

Ctr+Shift+C #注释符

+

Alt+L 隐藏代码块

+

Alt+Shift+L Rmd中展开代码块

+

Alt+O隐藏所有代码块

+

Alt+Shift+O 展开所有隐藏的代码块

+

常见符号

+

df$column 引用df数据中的指定字段数据

+

~定义匿名函数,就是简单函数,~ 前面代表因标量,后面代表自变量

+

function(...)接收任意数量的参数,利用循环依次取出

+

%in% 是用于测试向量中元素是否属于另一个向量或列表的运算符。它返回一个逻辑向量

+

基础功能

+

getwd()获得当前工作目录

+

setwd()设置当前工作目录

+

options()用于设置和查询全局选项

+

print()、printf()、sprintf()进行变量输出格式化输出格式化字符串输出

+

cat()结合paste()将多个字符串数据进行输出,比sprintf输出更灵活

+

paste()将多个对象(字符串、数字等)连接成一个字符串,字符串间会自带空格,用paste0()不带空格

+
+

数据类型

+

^a4f511

+

特殊值

+

包括NA(Missing Values),NULL,NaN,Inf/-Inf

+

is.na() 缺失值,软件识别不出来,不可用

+

is.null() 空值

+

is.nan() 非数值,数学计算中出现无定义的结果时,如0/0负数的平方根

+

is.infinite() 正无穷大/负无穷大

+

数据类型的判断

+

typeof() 查找数据类型

+

is.numeric() 判断是否为数值型,反馈逻辑型数值,is.numeric(FALSE) 返回假!

+

is.character() 判断字符型,同样is.character(FALSE)返回假

+

is.logical() 判断逻辑型,同样is.logical(FALSE)返回假

+

数据类型的转换

+

[[as.integer()]]将对象转换为整型

+

as.numeric() 将对象转换为数值型,不能转换的输出NA,其中as.numeric(T)输出为1,as.numeric(F)输出为0

+

as.double()双精度浮点型,在R中数值型和浮点型是用一种类型的数据

+

as.character() 将对象转换为字符型

+

as.logical() 将对象转换为逻辑型(其中0为FALSE,其他数值为TRUE),不能转换的输出NA

+

as.matrix()将其他数据对象转换为矩阵

+

as.factor()转化为因子类型

+
+

数据结构

+

向量

+
    +
  • +

    创建

    +

    c() 给定的对象组合成一个向量

    +

    seq() 生成数值向量

    +

    seq_along()生成与指定对象长度相等的序列

    +

    rep()创建重复的值或向量

    +

    as.vector() 转换其他数据对象为向量

    +
  • +
  • +

    生成新向量

    +

    expand.grid() 求多个向量间所有的组合

    +
  • +
  • +

    属性

    +

    length() 向量长度,即元素的个数

    +

    names() 可以实现赋名称操作,也可以看向量名称

    +

    set_names() 向量命名,跟下标相区分

    +
  • +
  • +

    向量的索引

    +
  • +
  • +

    +

    append()添加元素

    +
  • +
  • +

    +
      +
    • +

      删除对象

      +

      rm() 删除指定对象

      +
    • +
    +
  • +
  • +

    +
      +
    • 离散化 + cut()将连续型的变量分成指定宽度的区间
    • +
    +
  • +
  • +

    +

    my_vector[!is.infinite(my_vector)]布尔值的筛选思想

    +

    which.max()返回向量中的最大值的索引位置

    +
  • +
+

因子(factor)

+

factor数据结构,针对类别数据,可以理解为一种特殊的向量

+
    +
  • +

    创建

    +

    factor()将一个向量转换为因子(factor)类型的数据

    +
  • +
  • +

    属性

    +

    levels()获取因子(factor)对象的水平(levels)

    +

    nlevels()获取因子(factor)对象的水平数量

    +
  • +
  • +

    +

    droplevels()删除factor对象中未使用的水平

    +
  • +
  • +

    +

    relevel() 重新指定factor对象的水平顺序

    +
  • +
+

列表(list)

+
    +
  • +

    创建 + list() 创建列表,他这个列表跟python里不太一样,可以含向量和矩阵?

    +

    nulist() 解散列表

    +
  • +
  • +

    属性 + length()测量列表元素个数

    +

    names() 可以获得列表的名称

    +
  • +
  • +

    列表的索引

    +
  • +
+

数组

+
    +
  • +

    创建

    +

    array() 创建多维数组,指定字段名称

    +
  • +
+

矩阵

+
    +
  • +

    创建

    +

    matrix()

    +
  • +
  • +

    生成新矩阵

    +
  • +
  • +

    属性

    +

    dim() 获取或设置对象的维度

    +

    ncol() 获取矩阵或数据框的列数

    +

    nrow() 获取矩阵或数据框的行数

    +

    colnames()获取或设置矩阵的列名

    +

    rownames() 获取或设置矩阵的行名

    +

    dimnames() 获取或设置矩阵的行名和列名

    +
  • +
  • +

    矩阵的索引

    +
  • +
+

数据框(DataFrame 简称DF)

+

(特殊的列表,同python中的df数据结构)

+
    +
  • +

    创建

    +

    data.frame() 创建df数据结构

    +
  • +
  • +

    属性

    +

    dim() 获得维度

    +

    ncol() 获得列数

    +

    nrow() 获得行数

    +

    colnames() 获取或设置数据框的列名

    +

    rownames() 获取或设置数据框的行名

    +

    dimnames() 获取或设置数据框的行名和列名

    +

    names()返回列名称,相当于每一列视为列表

    +
  • +
  • +

    df索引

    +

    一般在[]列表中用“column”字符串的形式表明行、列标题,跟指明df,直接使用column相区分

    +

    df[]返回的结果是dt(data tibble)简化数据框!

    +

    df[[]]和df$colum返回一个列向量!只有列向量才能运行某些统计运算

    +
  • +
  • +

    +
      +
    • +

      生成新数据框

      +

      rbind() 纵向合并数据框

      +

      cbind() 横向合并数据框

      +
    • +
    +
  • +
  • +

    +

    na.omit() 删除缺失值所在的行数据

    +
  • +
  • +

    +
      +
    • +

      改属性

      +

      df$column <-as.integer(df$column)

      +

      df <- df %>% mutate(column = as.integer(column));利用mutate()和across()实现多个列属性同时修改

      +
    • +
    • +

      改行列名 + rename()用新列明替代旧列名

      +

      colnames(df) <- c("New_A", "New_B")修改列标题,行标题同理

      +
    • +
    +
  • +
  • +

    +

    top_n()根据指定字段权重查看df前多少行

    +
  • +
+

tibble

+

R中对df的优化后的数据结构,跟tidyverse包更加契合。 +http://blog.fens.me/r-tibble/

+
    +
  • +

    创建

    +

    tibble()用于创建 Tibble 数据框

    +

    tribble() 创建小规模的示例数据框,大规模用df数据框

    +
  • +
  • +

    生成新tibble

    +

    as_tibble(): 将其他数据结构(如数据框)转换为tibble

    +
  • +
  • +

    其他操作类似df,主要数理两者差异!

    +
  • +
+
+

基本运算和常用函数

+

向量

+

一般能用在向量中的函数,也能用在矩阵(视为列/行向量)、数组(视为列/行向量)、数据框(视为列向量)中。

+

排序函数

+

sort(x)获得排序的后的向量值

+

order(x) 排序后的向量值对应的下标向量

+

rank() 返回向量中元素的排名向量(这个元素排第几

+

rev() 反转,矩阵转置?

+

矩阵和数据框

+

字符串

+
    +
  • +

    +

    format()格式化数值或日期时间对象的显示方式

    +
  • +
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/01 \345\237\272\347\241\200\345\207\275\346\225\260\345\222\214\346\225\260\347\220\206\347\273\237\350\256\241/index.html" "b/R/01 \345\237\272\347\241\200\345\207\275\346\225\260\345\222\214\346\225\260\347\220\206\347\273\237\350\256\241/index.html" new file mode 100644 index 00000000..01e9a31f --- /dev/null +++ "b/R/01 \345\237\272\347\241\200\345\207\275\346\225\260\345\222\214\346\225\260\347\220\206\347\273\237\350\256\241/index.html" @@ -0,0 +1,1976 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 基础函数和数理统计 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

基础函数和数理统计

+ +

函数

+

自定义函数

+

function() R语言中没有lambda ,可以用function定义匿名函数

+

sapply()可以处理数据框的每列数据

+

lapply()对列表(list)的每个元素应用指定的函数

+

运算相关

+
    +
  • +

    运算

    +
      +
    • +

      算数运算 + R语言中没有直接的"sum+=1"操作符,只能通过"sum=sum+1"的形式

      +

      sum() 求和

      +

      cummean() 计算累加平均数

      +

      cumsum() 累加,并显示逐步累加的结果

      +

      cumprod()累乘积,并显示逐步累积结果

      +

      round()指定保留小数位,可以指定计算保留的小数维数,否则在options()中设置digist,进行全局变量设置

      +

      ceiling(x)向上取整,要取整的数值或数值向量

      +
    • +
    • +

      逻辑运算

      +
    • +
    +
  • +
+

绘图

+

内置函数

+

par()设置图形参数,针对内置绘图函数生效,ggplot2包中另有图形设置函数

+

hist() 创建直方图

+

barplot()用于创建柱状图,可以用于显示分类变量的频数或其他统计指标。

+

pie()绘制饼状图,可以参看知乎-饼图

+

density():用于计算并绘制核密度估计图,可用于查看数据的分布情况。

+

par()内置函数,设置图形

+

概率论与数理统计

+

描述统计

+

描述函数

+
    +
  • +

    集中趋势指标

    +
      +
    • +

      位置度量

      +

      mean() 求均值

      +

      median()中位数,是否需要用到round()?视数据类型而定

      +

      mode()众数,没有直接求众数的函数

      +
    • +
    • +

      秩(大小)的度量

      +

      min() 计算最小值

      +

      max() 计算最大值

      +

      range() 查找最大、最小值,并存入到一个新的向量中

      +

      quantile() 计算分位数,如上下四分位数

      +
    • +
    +
  • +
  • +

    离散趋势指标

    +
      +
    • +

      离散程度度量

      +

      var()方差

      +

      sd() 均方差(或标准误差)standard deviation

      +

      IQR()四分距离,上四分位数-下四分位数

      +

      mad() 绝对中位差

      +
    • +
    • +

      定位度量

      +

      first() 查无此函数?

      +

      nth() 查示无此函数?

      +

      last() 返回最后一个元素

      +
    • +
    • +

      频率 + table()计算元素的频数,得到factor类型数据,水平level为不重复的元素名,顺序按默认排布,值为每个水平的频数

      +

      prop.table() 对比上面的,直接计算元素的频率

      +
    • +
    +
  • +
+

概率分布

+
    +
  • +

    均匀分布

    +

    runif() random uniform 均匀分布

    +
  • +
  • +

    随机分布Normal Distribution(random、probility、quantile、density)

    +

    rnorm() 生成正态分布的随机数

    +

    pnorm() 由x分位数,计算正态分布的累积分布函数(CDF),就是概率值

    +

    qnorm()概率值,计算对应的正态分布的分位数(quantile),即x分位数

    +

    dnorm() 由x值,计算正态分布的概率密度函数(PDF)

    +
  • +
+

推论统计和假设检验

+

抽样

+

slice_sample() 从df中进行随机抽样

+

sample_n()从数据集中随机抽取观察值

+

sample_frac()随机抽取指定比例的观察值

+

sample()给定的对象中随机抽样

+

三大抽样分布:

+
    +
  • +

    t分布

    +

    rt() 生成t分布的随机数

    +

    pt() 计算t 分布的累积分布函数(CDF)值

    +

    qt() 计算 t 分布的分位数(quantile)

    +

    dt() 计算 t 分布的概率密度函数(PDF)值

    +
  • +
  • +

    卡方分布

    +

    rchisq() 生成服从卡方分布的随机变量

    +

    pchisq() 卡方分布累积分布函数

    +

    qchisq()卡方分布的分位数(Quantile)

    +

    dchisq() 计算卡方分布的概率密度函数

    +
  • +
  • +

    F分布

    +

    rf()没有这个函数

    +

    pf()F分布的累积分布函数累积分布函数

    +

    qf()F分布的反函数,即分位数

    +

    df()F分布的概率密度函数(PDF)值

    +
  • +
+

假设性检验

+

原假设和备有假设具有主观区别,就95%的置信度而言,要达到5%犯错误的概率是非常低的,换句话说拒绝原假设的条件更为苛刻、严谨。一般p-value<α,即接受备择假设(H1新假设)就十分具有说服力,所以老师才说备用假设多为突破常规。

+

对于老公司,左侧检验更符合需求,只有极端情况才会判定为质量问题;对于新公司,右端检验更为严谨,只有产品质量足够好,才会接受。

+
    +
  • +

    评估样本是否符合正态性(样本数据大致呈正态分布):

    +
      +
    • +

      定性分析 + hist,goem_histgram绘制直方图,看下分布形式

      +

      qqnorm()绘制一个样本的正态概率图(QQ图)

      +

      qqline()在QQ图上添加参考线,以方便检测

      +
    • +
    • +

      定量分析:不同方法的检测结果可能相反,根据实际要求,选取哪种方法做正态性检验

      +

      shapiro.test() Shapiro-Wilk Test,检验是否符合正态分布

      +

      ks.test() Kolmogorov-SmirnovTest,检验是否符合其他分布(含正态)

      +

      ad.test() nortest包,Anderson-Darling Test,检验是否符合正态分布

      +

      方差分析中用于检验样本的正态性,Kolmogorov-Smirnov test?

      +
    • +
    +
  • +
  • +

    比例检验

    +

    binom.test()二项分布检验,单个比例

    +
      +
    • [x] stats\:\:prop.test() 基于stats包,直接类比t.test()的作用,得到的结果更详尽,两个比例
    • +
    +

    infer\:\:prop_test() 基于infer包,结果稍微简略些

    +
  • +
  • +

    t检验(Student's t-Test)

    +

    t.test()

    +
  • +
  • +

    卡方检验

    +

    chisq.test() 卡方检验

    +
  • +
  • +

    F检验

    + +
  • +
+

anova()方差分析??

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/02 \345\273\272\346\250\241/index.html" "b/R/02 \345\273\272\346\250\241/index.html" new file mode 100644 index 00000000..3565e6e0 --- /dev/null +++ "b/R/02 \345\273\272\346\250\241/index.html" @@ -0,0 +1,1688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 建模 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

建模

+ +

summary() 查看model模型内的详细信息,类似y~x的形式都算

+

有监督学习

+

回归

+

optim()模型优化,应该的更广些,更手动些?

+

lm()拟合线性回归模型,结合summary()产看详细模型信息

+

car::vif() 计算线性回归模型中各个预测变量的方差膨胀因子VIF,VIF值大于10可能表示存在多重共线性的问题

+ +

变量选择

+

stepAIC()赤池信息准则,选择适合和剔除不合适的变量

+

stats::AIC()赤池信息准则

+

predict()根据给定模型和输入变量,输出预测值

+

add_residuals()求残差,真实值和预测值的差值?用于检测新的数据的拟合程度

+

分类

+

glm()拟合广义线性回归模型,阶段性接触的为逻辑回归,这个模型的输出结果是百分比,还是0和1?如果是百分比,默认以50%作为分界线吗?结合summary()产看详细模型信息

+

无监督学习

+
+

实践

+

分类VS数值

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/03 readr/index.html b/R/03 readr/index.html new file mode 100644 index 00000000..36b21c77 --- /dev/null +++ b/R/03 readr/index.html @@ -0,0 +1,1638 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + readr - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

readr

+ +

读取数据文件

+

read_csv() 读取csv文件

+

readxl::read_excel() 读取excel文件

+
+

写入数据文件

+

write_csv()写入csv文件

+

数据读取和解析:

+
    +
  • +

    read_tsv(): 读取制表符分隔的文本文件。

    +
  • +
  • +

    read_delim(): 读取指定分隔符的文本文件。

    +
  • +
  • +

    read_fwf(): 读取固定宽度格式的文本文件。

    +
  • +
  • +

    read_table(): 读取空格分隔的文本文件。

    +
  • +
  • +

    read_lines(): 逐行读取文本文件。

    +
  • +
  • +

    parse_datetime(): 解析日期和时间字符串为POSIXct对象。

    +
  • +
+

数据写入:

+
    +
  • +

    write_tsv(): 将数据写入制表符分隔的文本文件。

    +
  • +
  • +

    write_delim(): 将数据写入指定分隔符的文本文件。

    +
  • +
+

数据处理和转换:

+
    +
  • +

    parse_number(): 将字符型数据解析为数值型数据。

    +
  • +
  • +

    parse_factor(): 将字符型数据解析为因子型数据。

    +
  • +
  • +

    parse_logical(): 将字符型数据解析为逻辑型数据。

    +
  • +
  • +

    parse_date(): 将字符型数据解析为日期型数据。

    +
  • +
  • +

    parse_time(): 将字符型数据解析为时间型数据。

    +
  • +
+

其他:

+
    +
  • +

    locale(): 设置解析数据时的本地化选项。

    +
  • +
  • +

    guess_encoding(): 猜测文件的字符编码。

    +
  • +
  • +

    cols(): 指定要读取的列及其类型。

    +
  • +
  • +

    spec(): 创建或修改数据读取规格。

    +
  • +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/04 dplyr/index.html b/R/04 dplyr/index.html new file mode 100644 index 00000000..1a5a62f8 --- /dev/null +++ b/R/04 dplyr/index.html @@ -0,0 +1,1673 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dplyr - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

dplyr

+ +

数据的基础处理

+

筛选行/列

+

filter() 处理数据框数据(df),筛选满足条件的

+

filter_if()选择满足特定条件的行,跟filter()的差别是?

+

slice()根据指定行数,选择行?

+

select() 按照指定列,形成新的数据框

+

select_if()选择满足特定条件的列

+

对行/列数据进行操作

+

arrange() 对df中行数据按指定列中数据进行重新排序

+

order() 返回排序的索引值,内置排序函数

+

min_rank() 最小值排序序号

+

sort() 对元素进行排序,内置函数

+

mutate() 根据旧列添加新列,或者替换旧列数,配上across()在多个列上应用相同的变换或统计函数

+

transmute()保留新列

+

lag()lead()偏移函数,后移和前移

+

分组统计

+

group_by() 指定列进行分组,分组后再用summarize()后会保留分组列

+

cut()函数,进行固定范围值添加新组

+

ungroup() 取消分组,在使用管道符进行参数传递中使用的是同一个源数据,所以要及时撤销分组操作!

+ +

n() 计算行数

+

count()计算唯一值出现次数,跟python不同

+

n_distinct()计算种类数,跟上面的唯一值次数指频数不同

+

处理关系数据

+

inner_join() 内连接

+

left_join()左连接

+

right_join()右连接

+

full_join() 全连接

+

semi_join()半连接,目的筛选左表数据类似交集但只保留做表数据。以右表数据作为标准,筛选左表中存在于右表中的数据,并不会返回右表中任何数据。右有左也有的数据。

+

anti_join()反连接,目的是筛选左表数据,跟半连接相反筛选右表没有的数据,返回在第一个数据框中存在而在第二个数据框中不存在的行。右无,左有的数据。

+

merge() 内置函数,不建议用

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/05 ggplot2/index.html b/R/05 ggplot2/index.html new file mode 100644 index 00000000..d86ae5d9 --- /dev/null +++ b/R/05 ggplot2/index.html @@ -0,0 +1,1711 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ggplot2 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + + + + + + +

ggplot2

+ +

ggplot2作图教程

+
    +
  • +

    数据dataset:作图用的原始数据;

    +
  • +
  • +

    美学 aes(): 几何或者统计对象的美学,比如位置,颜色,大小,形状等;

    +
  • +
  • +

    几何图形 geom_ :表示数据的几何图形*;

    +
  • +
  • +

    主题 theme(): 图形的整体视觉默认值,如背景、网格、轴、默认字体、大小和颜色

    +
  • +
  • +

    刻度 scale_(): 数据与美学维度之间的映射,比如图形宽度的数据范围;

    +
  • +
  • +

    坐标系统 coord_: 数据的转换;

    +
  • +
  • +

    面 facet_: 数据图表的排列

    +
  • +
  • +

    统计转换 stat_: 数据的统计,对数据进行处理 ,比如百分位,拟合曲线或者和; +Pasted image 20231005110243

    +
  • +
+
+

画布:数据集+美学

+

ggplot() 创建一个基本的绘图对象base(就是画布)!在画布的基础上再叠加各种要素。指定数据集,设置数据和图形的整体属性。在上面可以叠加多个图形

+

aes() x,y轴映射关系,定义图形的映射关系。指定数据的变量与图形的视觉属性之间的对应关系,如 x 轴位置、y 轴位置、颜色、形状等。

+

几何形状层:geom_()

+

真正意义上的在画布上呈现出来几个图形

+

color详情

+

geom_point() 画散点图,数据映射

+

geom_line() 画折线图

+

geom_smooth()画创建平滑拟合曲线,规避一些离群极端点

+

geom_bar() 画柱状图(条形图),处理分类型数据

+

geom_col() 默认下直接用数值画柱状图

+

geom_histogram() 画直方图,处理数值型数据

+

geom_text() 在图形中添加文本标签

+

geom_boxplot() 箱线图

+

geom_vline() 垂直线函数

+

geom_density() 根据数值,计算概率密度曲线

+

geom_function() 绘制自定义或匿名函数曲线,创建一个新的图形

+

stat_function()绘制自定义或匿名函数的曲线,通常与其他图层函数一起使用

+

辅助显示层

+

theme()设置图形的主题,包括背景、标题、轴标签、图例等的外观和样式,美化作用

+

labs()设置图形的标签,包括标题、轴标签、图例标题等。

+

scale_x_continuous() 调整图形的x轴刻度和修改标签文本

+

scale_y_continuous()调整图形的y轴刻度和标签

+
    +
  • +

    scale_color_*(): 设置图形中填充颜色和边框颜色的属性。

    +

    scale_color_manual()手动调整颜色映射

    +
  • +
  • +

    scale_fill_*() + scale_fill_manual(): 手动设置离散变量的填充颜色。可以指定每个离散值对应的具体颜色。

    +

    scale_fill_gradient(): 使用连续变量的值来创建填充颜色的渐变。可以设置渐变的起始和结束颜色。

    +

    scale_fill_gradientn(): 使用连续变量的值来创建填充颜色的渐变,可以指定多个颜色。

    +

    scale_fill_gradient2(): 类似于scale_fill_gradient(),但允许指定中间值的颜色。

    +

    scale_fill_hue(): 使用色相环来设置离散变量的填充颜色,颜色按照色相环的顺序分配。

    +

    scale_fill_brewer(): 使用RColorBrewer包中的调色板来设置离散变量的填充颜色。

    +
  • +
  • +

    coord_* : 控制绘图的坐标系统和坐标轴的显示方式。它们允许您修改绘图的坐标轴刻度、范围和比例,以及坐标轴的显示方式

    +

    coord_cartesian() 约束坐标显示的范围

    +

    coord_flip() x和y轴呼唤

    +

    coord_polar()将坐标系转换为极坐标系

    +

    coord_map()

    +
  • +
+

分面绘图

+

facet_grid() 基于x、y因子进行分面,如单x,单y,或x和y

+

facet_wrap() 基于x、y、甚至额外z因子分面,如z1、z2...,分割x~y

+
+

统计

+

stat_summary()

+

stat_*函数用于添加统计变换(statistical transformation)到图表中,以便对数据进行汇总、计算或转换。这些函数提供了各种统计变换选项,可以根据数据的特点和需求进行灵活的数据处理。

+

stat_bin():用于进行直方图或柱状图的统计变换,将数据分组为离散的区间并计算每个区间的频数或密度。

+

stat_summary():用于进行汇总统计,计算每组数据的统计摘要,如均值、中位数、标准差等,并将结果绘制为点、线、矩形等形状。

+

stat_smooth():用于拟合平滑曲线或回归曲线,根据数据的趋势绘制平滑的曲线,常用于数据的趋势分析和模型拟合。

+

stat_boxplot():用于绘制箱线图,显示数据的分布情况,包括中位数、四分位数、异常值等。

+

stat_density():用于生成密度图,估计数据的概率密度函数,可用于分布形状的可视化。

+

stat_ecdf():用于生成经验累积分布函数(empirical cumulative distribution function),展示数据的累积分布情况。

+

stat_ellipse():用于绘制椭圆,显示二维数据的椭圆包络,常用于数据的相关性分析和聚类可视化。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/06 stringr/index.html b/R/06 stringr/index.html new file mode 100644 index 00000000..2c684afb --- /dev/null +++ b/R/06 stringr/index.html @@ -0,0 +1,1836 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stringr - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

stringr

+ +

stringr 包中的函数主要涉及字符串的提取、匹配、替换、拆分等操作。能用于字符串,一般就能用于字符串向量!

+

letters是R自带的小写26个字母字符串向量,chr[1:26] "a" "b" ... "z"

+

scan()扫描读取

+

writeLines()将字符串写入文件

+

identical()两个内容相比较

+

字符串常用内容

+

转义符号:\

+

"\"" # or '"'

+

'\'' # or "'"

+

创建字符串

+

str_dup() 复制字符串。

+

属性

+

str_length计算字符串的长度

+

str_count()根据正则,对字符串中出现匹配的内容进行不重复的计数

+

提取

+

stringr::word 根据分隔符,将字符串划分为单词,并可以选择提取的单词位置

+

str_extract()根据正则,输出匹配上的第一个内容。可以检测字符串中是否含有某个元素

+

[str_extract_all](stringr/str_extract_all.md输出满足要求的所有内容,含有多少个元素

+

str_sub() 根据指定开始和起始位置,提取字符串字串

+

str_subset()根据正则,提取匹配上能够包含的字串,如ab,匹配abc、abe

+

常规操作

+

+

str_c()有两个维度的指定,建议详看函数举例,seq:字符串+向量,collapse向量内的字符串元素

+

str_flatten()指定分隔符,将字符串向量连接成一个单一的字符串

+

str_flatten_comma()默认为逗号,连接字符串

+

str_glue()变量的值插入到字符串模板中,生成新的字符串

+

str_glue_data()df中的列向量插入到字符串模板中

+

str_pad()特定字符填充字符串的两侧

+

+

str_trim()移除字符串开头和结尾的空格

+

str_remove()从字符串中移除匹配的文本

+

+
    +
  • 排序
  • +
+

str_sort()对字符向量进行排序,如按照美式英语,返回排序后的向量

+

str_order()字母顺序排序,返回排序后的元素在原始向量中的索引

+
    +
  • 替换/转换
  • +
+

str_replace() 根据正则,替换第一个匹配项

+

str_replace_all()根据正则,替换所有匹配项

+

str_to_lower()所有字母小写

+

str_to_upper()将所有字母大写

+

str_to_title()每个单词的首字母大写空格、逗号、句号、- 隔开的字符都算作单词

+

str_conv()将字符串按指定格式转码

+
    +
  • 字符串拆分:
  • +
+

str_wrap()指定的列宽度内将字符串拆分成多行,且每行开头可以添加指定内容

+

str_split() 根据正则识别分隔符,拆分为子字符串

+

str_split_fixed()根据正则识别分隔符拆分到数量为n的子字符串

+

str_trunc()截断字符串到指定的长度

+

+
    +
  • 匹配检测
  • +
+

str_view()根据正则,显示匹配上的字符整串没有匹配上的字符串

+

str_view_all()没有这个

+

str_match() 根据正则,查找字符串,以矩阵的形式返回

+

str_locate()返回字符串中根据匹配模式匹配到的子集的起始位置

+

str_locate_all()返回字符串中所有匹配模式的起始位置。

+

str_detect()根据正则匹配,输出逻辑值,结合sum、mean函数效果更佳

+

通配符

+

在正则表达式中,有许多特殊的匹配符号用于指定模式的匹配规则。以下是一些常见的匹配符号及其含义:

+
    +
  • +

    .:匹配任意单个字符,除了换行符

    +
  • +
  • +

    ?:匹配前面的元素零次或一次。问好,要么有、要么没有!

    +
  • +
  • +

    *:匹配前面的元素零次或多次。乘0为0,零次或多次

    +
  • +
  • +

    +:匹配前面的元素一次或多次。加1或多次

    +
  • +
  • +

    ^:以某元素开始,开头匹配

    +
  • +
  • +

    $:以某元素结束,结尾匹配^apple$指定apple

    +
  • +
  • +

    {n}:匹配前面的元素恰好 n 次

    +
  • +
  • +

    {n,}:匹配前面的元素至少 n 次。

    +
  • +
  • +

    {n,m}:匹配前面的元素至少 n 次,但不超过 m 次。

    +
  • +
  • +

    []:匹配括号内的任意一个字符。例如,[abc] 匹配字符 "a"、"b" 或 "c"。

    +
  • +
  • +

    [^]:匹配不在括号内的任意一个字符。例如,[^abc] 匹配除了字符 "a"、"b" 和 "c" 之外的任意字符。

    +
  • +
  • +

    |匹配两个或多个模式之一。例如,apple|banana 匹配 "apple" 或 "banana"。区别[],可以比单个字符长

    +
  • +
  • +

    ()捕获匹配的子组。满足就行

    +
  • +
  • +

    \:用于转义特殊字符。需要注意的是,正则表达式中的特殊字符在R语言中常常需要进行转义,即使用双反斜杠(\) 进行表示。例如,要匹配一个字面上的问号字符,可以使用\\?

    +

    \d: 匹配任意一个数字字符,相当于[0-9]

    +

    \D:匹配任意一个非数字字符,相当于[^0-9]

    +

    \w:匹配任意一个字母、数字或下划线字符,相当于[a-zA-Z0-9_]

    +

    \W:匹配任意一个非字母、非数字、非下划线字符,相当于[^a-zA-Z0-9_]

    +

    \s:匹配任意一个空白字符,包括空格、制表符、换行符等。

    +

    \S:匹配任意一个非空白字符

    +
  • +
+

[aeiou]至少包含一个元音字母的所有单词

+

^[^aeiou]+$仅包含辅音字母(非元音字母)的所有单词

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/$/index.html b/R/base-content/$/index.html new file mode 100644 index 00000000..224c3d0c --- /dev/null +++ b/R/base-content/$/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + $ - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

$

+ +

在 R 中,$ 符号用于从数据框中提取特定列的数据。它允许你通过列名来访问数据框中的列,并返回该列的数据作为向量。 +

# 创建一个数据框
+df <- data.frame(
+  name = c("John", "Alice", "Bob", "Emily"),
+  age = c(25, 32, 28, 35),
+  city = c("New York", "London", "Paris", "Tokyo")
+)
+
+# 提取 age 列的数据
+age <- df$age
+print(age)
+
+输出结果为: +
[1] 25 32 28 35
+
+在上述示例中,我们首先创建了一个数据框 df,其中包含三列数据:nameagecity。然后,我们使用 $ 符号来提取 df 数据框中的 age 列,并将其数据存储在变量 age 中。通过打印 age 的值,我们可以看到 age 列的数据作为一个向量被提取出来。

+

你可以根据需要使用 $ 符号从数据框中提取多个列的数据。例如: +

# 提取 name 和 city 列的数据
+name <- df$name
+city <- df$city
+print(name)
+print(city)
+

+

输出结果为: +

[1] "John"  "Alice" "Bob"   "Emily"
+[1] "New York" "London"   "Paris"    "Tokyo" 
+

+

在上面的示例中,我们使用 $ 符号分别提取了 namecity 列的数据,并将它们存储在变量 namecity 中。通过打印这些变量的值,我们可以看到相应列的数据作为向量被提取出来。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/IQR()/index.html b/R/base-content/IQR()/index.html new file mode 100644 index 00000000..2c8d956a --- /dev/null +++ b/R/base-content/IQR()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + IQR() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

IQR()

+ +

是一个用于计算四分位距的函数,在 R 语言中常用。四分位距(Interquartile Range,IQR)是指数据集的第三四分位数与第一四分位数之间的差异,用于衡量数据的离散程度。 +

IQR(x, na.rm)
+

+
    +
  • +

    x:指定要计算四分位距的向量、矩阵、数据框或其他 R 对象。

    +
  • +
  • +

    na.rm:指定是否忽略缺失值。如果设置为 TRUE,则在计算四分位距时会忽略缺失值。

    +
  • +
+

下面是一个示例,展示如何使用 IQR() 函数计算四分位距:

+
# 创建示例向量
+x <- c(1, 2, 3, 4, 5)
+
+# 计算四分位距
+iqr_value <- IQR(x)
+print(iqr_value)
+
+

在上述示例中,我们创建了一个包含数值的向量 x。然后,使用 IQR() 函数计算了 x 的四分位距。最后,打印输出了计算结果。

+

在这个示例中,向量 x 的第一四分位数是 1.5,第三四分位数是 4.5。因此,四分位距为 4.5 - 1.5 = 3。

+

你可以根据自己的数据和需求,使用 IQR() 函数计算其他数据集的四分位距。此外,IQR() 函数还有一个可选的参数 na.rm,用于指定是否忽略缺失值。你可以根据需要查阅 R 的文档来进一步了解。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/TukeyHSD()/index.html b/R/base-content/TukeyHSD()/index.html new file mode 100644 index 00000000..b9c87461 --- /dev/null +++ b/R/base-content/TukeyHSD()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + TukeyHSD() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

TukeyHSD()

+ +

在 R 语言中,TukeyHSD() 函数用于进行 Tukey's Honestly Significant Difference (HSD) 检验,用于比较多个组之间的均值差异。它基于方差分析(ANOVA)的结果,提供了一种多重比较的方法。下面是对 TukeyHSD() 函数的参数进行详细介绍和举例:

+

函数语法: +

TukeyHSD(aov_result, which = "means", conf.level = 0.95)
+

+

参数说明: +- aov_result:一个方差分析对象,通常是通过 aov() 函数得到的结果。 +- which:一个字符向量,表示要计算的比较类型。可以是 "means"(默认值),表示计算均值之间的差异;也可以是 "fitted",表示计算拟合值之间的差异。 +- conf.level:一个数值,表示置信水平的程度。默认为 0.95,表示计算 95% 的置信区间。

+

返回值: +函数返回一个数据框,包含了多个组之间的比较结果,包括组别、均值差异、标准误差、置信区间和 p 值等信息。

+

示例: +下面是使用 TukeyHSD() 函数进行多重比较的示例:

+
# 创建一个数据框
+data <- data.frame(
+  group = c("A", "A", "B", "B", "C", "C"),
+  value = c(10, 12, 15, 18, 20, 22)
+)
+
+# 进行方差分析
+result <- aov(value ~ group, data = data)
+
+# 进行多重比较
+comparison <- TukeyHSD(result)
+
+# 打印比较结果
+print(comparison)
+
+

在上述示例中,我们首先创建了一个数据框 data,其中包含了一个分组变量 group 和一个数值变量 value。然后,我们使用 aov() 函数进行方差分析,得到方差分析结果 result。接下来,我们使用 TukeyHSD() 函数对方差分析结果进行多重比较,将结果存储在 comparison 中。最后,我们打印出比较结果,包括组别、均值差异、标准误差、置信区间和 p 值等信息。

+

根据实际情况,你可以调整参数来指定计算的比较类型或置信水平。根据数据的特点和研究问题,适当调整参数可以得到相应的多重比较结果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/ad.test()/index.html b/R/base-content/ad.test()/index.html new file mode 100644 index 00000000..8502063b --- /dev/null +++ b/R/base-content/ad.test()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Ad.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Ad.test()

+ +

在R语言中,ad.test()函数是nortest包(内置包)中的函数,用于执行Anderson-Darling(A-D)正态性检验。

+

函数定义: +

ad.test(x)
+

+

参数: +- x:一个数值向量,用于进行正态性检验

+

返回值: +函数返回一个包含正态性检验的结果的对象,其中包括统计量值和p值。

+

示例: +以下是使用ad.test()函数执行Anderson-Darling正态性检验的示例:

+
# 创建示例数据向量
+data <- rnorm(100)
+
+# 执行正态性检验
+ad_result <- ad.test(data)
+
+# 查看检验结果
+print(ad_result)
+
+

在上述示例中,我们首先使用rnorm()函数创建了一个长度为100的示例数据向量data,其中包含了从标准正态分布中抽取的随机数。

+

然后,我们使用ad.test()函数对数据向量data执行Anderson-Darling正态性检验。检验结果保存在ad_result中。

+

最后,我们打印出检验结果,其中包括统计量值和p值。

+

以下是打印出的内容示例:

+
    Anderson-Darling normality test
+
+data:  data
+A = 0.27889, p-value = 0.786
+
+

在上述输出中,我们可以看到执行正态性检验的结果,其中包括统计量A的值和对应的p值。根据p值的大小,我们可以判断数据是否服从正态分布。在本例中,p值为0.786,大于通常的显著性水平(如0.05),因此无法拒绝原假设,即数据在统计上可以认为服从正态分布。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/anova()/index.html b/R/base-content/anova()/index.html new file mode 100644 index 00000000..82036ffa --- /dev/null +++ b/R/base-content/anova()/index.html @@ -0,0 +1,1557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Anova() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Anova()

+ +

在R语言中,anova()函数用于进行方差分析(Analysis of Variance,ANOVA)。

+

函数定义: +

anova(lm, ...)
+

+

参数: +- lm:线性回归模型对象(通过lm()函数创建)或其他适用的模型对象。 +- ...:其他模型对象(可选),用于进行多个模型的比较。

+

返回值: +函数返回一个包含方差分析结果的分析表格。

+

示例: +以下是使用anova()函数进行方差分析的示例:

+
# 创建数据集
+group1 <- c(1, 2, 3, 4, 5)
+group2 <- c(2, 4, 6, 8, 10)
+group3 <- c(3, 6, 9, 12, 15)
+
+# 创建线性回归模型
+model <- lm(c(group1, group2, group3) ~ c(rep("Group 1", 5), rep("Group 2", 5), rep("Group 3", 5)))
+
+# 进行方差分析
+result <- anova(model)
+
+# 输出结果
+print(result)
+
+

在上述示例中,我们首先创建了一个包含三个组的数据集,每个组包含五个观测值。这里我们假设这些数据是不同组之间的响应变量。

+

然后,我们使用lm()函数创建了一个线性回归模型,其中响应变量与组变量相关。

+

接下来,我们使用anova()函数对该线性回归模型进行方差分析。

+

最后,我们打印出方差分析的结果。

+

以下是打印出的内容示例:

+
Analysis of Variance Table
+
+Response: c(group1, group2, group3)
+          Df Sum Sq Mean Sq F value Pr(>F)
+c(rep("Group 1", 5), rep("Group 2", 5), rep("Group 3", 5))   2     30    15.0       2  0.209
+Residuals                                                   12    180    15.0               
+
+

在上述输出中,我们可以看到方差分析的结果,包括自由度(Df)、平方和(Sum Sq)、均方(Mean Sq)、F值和p值等信息。

+

需要注意的是,anova()函数适用于比较不同组之间的差异,并进行方差分析。在使用函数时,请根据实际情况设置参数和数据。

+

与aov()的区别???

+

在R语言中,anova()aov()函数都用于执行方差分析(ANOVA),但它们在使用方式和功能上有一些区别。

+

anova()函数用于比较线性模型的拟合结果,可以进行模型的比较和显著性检验。它接受一个或多个拟合的线性模型作为参数,并计算它们之间的差异和显著性。anova()函数返回一个包含方差分析结果的表格,其中包括模型之间的比较、方差分解和显著性检验等信息。anova()函数通常用于比较不同模型的拟合情况,或者比较同一个模型在不同条件下的拟合结果。

+

示例代码: +

# 假设有两个线性模型 model1 和 model2
+result <- anova(model1, model2)
+print(result)  # 输出模型之间的比较和显著性检验结果
+

+

aov()函数用于拟合一个线性模型并执行方差分析。它接受一个公式作为参数,该公式描述了因变量和一个或多个自变量之间的关系。aov()函数将数据按照自变量进行分组,并拟合线性模型来分析因变量的差异是否显著。aov()函数返回一个包含方差分析结果的对象,可以使用summary()函数来获取更详细的分析结果。

+

示例代码: +

# 假设有因变量 y 和自变量 x,按照 x 进行分组的数据框 df
+model <- aov(y ~ x, data = df)
+summary(model)  # 输出方差分析结果的摘要统计信息
+

+

总结区别: +- anova()函数用于比较不同模型的拟合结果,返回模型之间的比较和显著性检验结果。 +- aov()函数用于拟合一个线性模型并执行方差分析,返回方差分析结果的对象,可以使用summary()函数获取详细的分析结果。

+

需要根据具体情况选择适当的函数来进行方差分析。如果只需要比较不同模型的拟合结果,使用anova()函数;如果需要进行方差分析并获取更详细的结果,使用aov()函数配合summary()函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/aov()/index.html b/R/base-content/aov()/index.html new file mode 100644 index 00000000..968d5dd7 --- /dev/null +++ b/R/base-content/aov()/index.html @@ -0,0 +1,1713 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Aov() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Aov()

+ +

在 R 语言中,aov() 函数用于进行方差分析(ANOVA)的计算。它用于比较不同组之间的均值是否显著不同,以及确定哪些因素对于观察到的差异有显著影响。下面是对 aov() 函数的参数进行详细介绍和举例:

+

函数语法: +

aov(formula, data, subset, na.action, ...)
+

+

参数说明: +- formula:一个公式对象,表示要进行方差分析的模型。公式的形式为 response ~ terms,其中 response 是一个因变量terms一个或多个自变量和交互项。例如,y ~ x1 + x2 表示因变量 y 与自变量 x1x2 之间的关系。

+
    +
  • +

    data:一个数据框,表示包含因变量和自变量的数据。默认为当前环境中的数据框。

    +
  • +
  • +

    subset:一个逻辑向量,表示要使用的观察值的子集。默认为 NULL,表示使用所有观察值。

    +
  • +
  • +

    na.action:一个函数,用于处理缺失值的方法。默认为 na.omit,表示删除包含缺失值的观察值

    +
  • +
  • +

    ...:其他参数,用于传递给底层函数。

    +
  • +
+

返回值: +函数返回一个方差分析对象,可以通过 summary() 函数获取分析结果。 +示例: +下面是使用 aov() 函数进行方差分析的示例:

+
# 创建一个数据框
+data <- data.frame(
+  group = c("A", "A", "B", "B", "C", "C"),
+  value = c(10, 12, 15, 18, 20, 22)
+)
+
+# 进行方差分析
+result <- aov(value ~ group, data = data)
+
+# 打印分析结果
+print(summary(result))
+
+

在上述示例中,我们创建了一个数据框 data,其中包含了一个分组变量 group 和一个数值变量 value。然后,我们使用 aov() 函数进行方差分析,其中因变量是 value,自变量是 group。最后,我们使用 summary() 函数打印出分析结果,包括组间变异、组内变异、均方和 F 统计量等。

+

你可以根据实际情况调整参数,例如指定额外的自变量、交互项,处理缺失值的方式,或者使用其他统计方法。根据数据的特点和研究问题,适当调整参数可以得到相应的方差分析结果。

+

单因素(子)方差分析(One-way ANOVA)

+

在R语言中,当需要检验三个或更多均值是否存在显著性差异时,通常采用方差分析(ANOVA)。这里,我将展示如何使用R语言进行一元方差分析(One-way ANOVA)的例子,假设我们有三个独立的样本组。

+

以下是具体步骤和代码:

+
    +
  1. 准备数据:首先,我们需要创建一个数据框,其中包含我们想要检验的变量。假设我们有三组数据,分别命名为group1、group2 和 group3。
  2. +
+
# 定义三个样本组的数据
+group1 <- c(6, 8, 4, 5, 3, 7)
+group2 <- c(8, 7, 6, 5, 7, 8)
+group3 <- c(13, 9, 11, 8, 12, 10)
+
+# 使用data.frame创建数据框,并添加一个组别标识因子
+data <- data.frame(
+  value = c(group1, group2, group3),
+  group = factor(rep(c("Group1", "Group2", "Group3"), each = 6))
+)
+
+
    +
  1. 进行方差分析:使用aov函数进行方差分析,并用summary函数查看结果。
  2. +
+
# 进行一元方差分析
+result <- aov(value ~ group, data = data)
+
+# 显示方差分析结果
+summary(result)
+
+
    +
  1. 如果ANOVA结果显示至少有一组均值与其他组有显著差异,接下来可以进行事后检验(Post-hoc test)来确定哪些组之间存在差异。常见的事后检验包括TukeyHSD、pairwise.t.test等。
  2. +
+
# 进行TukeyHSD事后检验
+TukeyHSD(result)
+
+

下面是将这些步骤整合到一起的完整示例:

+
# 定义样本数据
+group1 <- c(6, 8, 4, 5, 3, 7)
+group2 <- c(8, 7, 6, 5, 7, 8)
+group3 <- c(13, 9, 11, 8, 12, 10)
+
+# 创建数据框
+data <- data.frame(
+  value = c(group1, group2, group3),
+  group = factor(rep(c("Group1", "Group2", "Group3"), each = 6))
+)
+
+# 进行方差分析
+result <- aov(value ~ group, data = data)
+
+# 查看方差分析结果
+summary_result <- summary(result)
+print(summary_result)
+
+# 如果ANOVA显示有显著性差异,则进行TukeyHSD事后检验
+if(summary_result[[1]]$'Pr(>F)'[1] < 0.05) {
+  posthoc_result <- TukeyHSD(result)
+  print(posthoc_result)
+}
+
+

运行以上代码后,你会得到每个组之间均值的比较结果以及是否存在显著差异。如果Pr(>F)的值低于你选择的显著性水平(例如0.05),那么你可以认为至少有一组均值与其他组不同。事后检验的结果将告诉你具体哪些组之间存在显著性差异。

+

解释

+

summary(model)显示的内容

+

Pasted image 20240109203103

+

school:分子
+Residuals:分母 。解释为余数和残差

+

(1)DF:自由度;
+(2)Sum Sq:sum of squares,SS;
+(3)Mean Sq:mean of squuares,MS;
+(4)F value:F值;
+(5)Pr(>F):P值
+(6)Signif. codes:p值得显著程度,三个星号表示显著水平在0到0.001之间

+

双因素方差分析

+

在R语言中,双因素方差分析(Two-Way ANOVA)可以用来研究两个分类自变量(因子)对一个连续因变量的影响。可以通过aov()函数或者lm()函数来进行双因素方差分析,并使用summary()函数来获取分析结果。以下是一个使用aov()函数进行双因素方巀分析的例子:

+

(1)两个因素存在交互作用,相互影响

+

result <- aov(Response ~ Factor1 * Factor2, data=data)

+

(2)两个因素是相互独立

+

result <- aov(Response ~ Factor1 + Factor2, data=data)

+

红酒配红肉的例子:

+

酒的种类和肉的种类对评价的影响!

+

Pasted image 20240109204554

+

???有时间精简下!

+

这一步的目的是将数据框 taste 中的列 "red_meet", "chicken", "fish" 转换为长格式(long format),并创建一个新的列 meet_type 来存储转换后的因子变量。这样做的目的是为了更方便地进行数据分析和可视化。

+

具体来说,pivot_longer() 函数的作用是将多个列合并成一个列,并将合并后的值存储在新的列中。在这个例子中,函数将列 "red_meet", "chicken", "fish" 合并成一个新的列 meet_type,并将合并后的值存储在新的列 level 中。

+

接着,mutate() 函数将 meet_type 列转换为因子变量,这样在后续的分析中可以更好地处理该变量。

+

通过将数据转换为长格式,可以更容易地进行数据分析,例如使用 ggplot2 进行可视化或使用统计模型进行建模。长格式的数据更适合于处理多个因子变量,同时也更符合数据分析和统计建模的要求。

+
# 游哥程序
+taste <- tibble(
+  red_meet = c(10,9,10,3,3,2),
+  chicken = c(4,4,2,6,5,7),
+  fish = c(3,2,4,8,6,7),
+  wine =c("red_wine","red_wine","red_wine","white_wine","white_wine","white_wine")
+)
+
+taste <- taste %>%
+  pivot_longer(c("red_meet","chicken","fish"), names_to = c("meet_type"), values_to = "level") %>% 
+  mutate(meet_type = factor(meet_type))
+
+# tw two w...双因素变量
+tw_anova <-aov(level ~ wine + meet_type,data = taste)
+summary(tw_anova)
+
+# 交互作用 * meet_type 交互项
+tw_anova <-aov(level ~ wine * meet_type,data = taste)
+summary(tw_anova)
+
+# 交互作用图,没有交叉,交互作用不显著
+with(taste, {
+interaction.plot(wine,meet_type,level,type="b",
+                 col=c('red',"blue"), pch = c(16,18),
+                 main = "Interaction between wine and meet_type")
+})
+
+

另外,aov()函数还可以与TukeyHSD()函数一起使用,进行事后多重比较分析:

+
# 事后多重比较分析  
+TukeyHSD(tw_anova)
+
+

解释

+

Pasted image 20240109204832

+

wine:属于分子,影响因素1; +meet_type:属于分子,影响因素2; +wine:meet_type:乘积?属于分子,额外的影响因素1*2

+

Residuals:分母 。解释为余数和残差

+

(1)DF:自由度;
+(2)Sum Sq:sum of squares,SS;
+(3)Mean Sq:mean of squuares,MS;
+(4)F value:F值;
+(5)Pr(>F):P值 ,跟F值的结论应该是一致的!一般考虑显著性水平α=5%,P<α代表某个因素对结果具有显著影响? +(6)Signif. codes:p值得显著程度,三个星号表示显著水平在0到0.001之间。

+

Pasted image 20240109204857

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/append()/index.html b/R/base-content/append()/index.html new file mode 100644 index 00000000..e54f9160 --- /dev/null +++ b/R/base-content/append()/index.html @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Append() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Append()

+ +

append()函数,用于向向量或列表中添加元素

+

以下是append()函数的定义:

+
append(x, values, after = length(x))
+
+

参数说明: +- x:要添加元素的向量或列表。 +- values:要添加的元素或要添加的值的向量。 +- after:可选参数,指定在哪个位置之后添加元素。默认为向量或列表的末尾。

+

下面是使用append()函数向向量和列表中添加元素的示例:

+
# 向向量中添加元素
+vec <- c(1, 2, 3)
+new_vec <- append(vec, 4)
+print(new_vec)
+
+# 向列表中添加元素
+my_list <- list("apple", "banana", "orange")
+new_list <- append(my_list, "grape")
+print(new_list)
+
+

在上述示例中,我们分别使用append()函数向向量vec和列表my_list中添加元素。

+

对于向量,我们将元素4添加到向量vec中,将结果保存在new_vec中,并打印出结果。

+

对于列表,我们将元素"grape"添加到列表my_list中,将结果保存在new_list中,并打印出结果。

+

请注意,append()函数将返回一个新的向量或列表,而不会修改原始的向量或列表。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/array()/index.html b/R/base-content/array()/index.html new file mode 100644 index 00000000..19be6f3c --- /dev/null +++ b/R/base-content/array()/index.html @@ -0,0 +1,1550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Array() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Array()

+ +

在R语言中,array()函数用于创建多维数组(array)。 +函数定义: +

array(data = NA, dim = length(data), dimnames = NULL)
+
+参数: +- data:用于填充数组的数据。可以是向量、矩阵或其他数组。 +- dim:指定数组的维度。可以是一个整数向量,表示每个维度的长度;也可以是一个正整数,表示数组的总长度,此时维度将自动计算。 +- dimnames:一个包含维度名称的列表,用于标识数组的各个维度。 +示例: +以下是一些使用array()函数创建多维数组的示例: +
# 示例1:创建二维数组
+data <- 1:6
+arr <- array(data, dim = c(2, 3))
+print(arr)
+# 输出:
+#      [,1] [,2] [,3]
+# [1,]    1    3    5
+# [2,]    2    4    6
+

+
# 示例1-1:创建二维数组并指定维度名称
+# 使用array()函数创建一个3x3的二维数组
+arr <- array(1:9, dim = c(3, 3))
+# 使用dimnames参数为数组的行和列赋予名称
+dimnames(arr) <- list(c("Row1", "Row2", "Row3"), c("Col1", "Col2", "Col3"))
+# 打印带有名称的二维数组
+print(arr)
+
+Col1 Col2 Col3
+Row1    1    4    7
+Row2    2    5    8
+Row3    3    6    9
+
+
# 示例2:创建三维数组
+data <- 1:8
+arr <- array(data, dim = c(2, 2, 2))
+print(arr)
+# 输出:
+# , , 1
+# 
+#      [,1] [,2]
+# [1,]    1    3
+# [2,]    2    4
+# 
+# , , 2
+# 
+#      [,1] [,2]
+# [1,]    5    7
+# [2,]    6    8
+
+
# 示例3:创建三维数组并指定维度名称
+data <- 1:8
+dimnames <- list(c("A", "B"), c("X", "Y"), c("M", "N"))
+arr <- array(data, dim = c(2, 2, 2), dimnames = dimnames)
+print(arr)
+# 输出:
+# , , M
+# 
+#   X Y
+# A 1 3
+# B 2 4
+# 
+# , , N
+# 
+#   X Y
+# A 5 7
+# B 6 8
+
+

在上述示例中,我们展示了使用array()函数创建不同维度的多维数组。

+

在示例1中,我们创建了一个二维数组arr,使用data参数填充数组,使用dim参数指定数组的维度为2行3列。函数将数据按照指定的维度排列,并打印出数组的内容。

+

在示例2中,我们创建了一个三维数组arr,使用data参数填充数组,使用dim参数指定数组的维度为2行2列2层。函数将数据按照指定的维度排列,并打印出数组的内容。

+

在示例3中,我们创建了一个三维数组arr,使用data参数填充数组,使用dim参数指定数组的维度为2行2列2层。我们还使用dimnames参数指定了每个维度的名称。函数将数据按照指定的维度和维度名称排列,并打印出数组的内容。

+

通过使用array()函数,我们可以创建任意维度的多维数组,并根据需要填充数据和指定维度名称,以满足数据分析和计算的需求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/as.character()/index.html b/R/base-content/as.character()/index.html new file mode 100644 index 00000000..8b49c738 --- /dev/null +++ b/R/base-content/as.character()/index.html @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + As.character() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

As.character()

+ +

在R语言中,as.character()函数用于将对象转换为字符向量。 +函数定义: +

as.character(x, ...)
+
+参数: +- x:要转换为字符向量的对象。 +- ...:其他参数,用于传递给转换方法。 +示例: +以下是一些使用as.character()函数将对象转换为字符向量的示例: +
# 示例1:将数值向量转换为字符向量
+nums <- c(1, 2, 3, 4, 5)
+char_vec <- as.character(nums)
+print(char_vec)
+# 输出: "1" "2" "3" "4" "5"
+
+# 示例2:将逻辑向量转换为字符向量
+logical_vec <- c(TRUE, FALSE, TRUE)
+char_vec <- as.character(logical_vec)
+print(char_vec)
+# 输出: "TRUE" "FALSE" "TRUE"
+
+# 示例3:将日期向量转换为字符向量
+dates <- as.Date(c("2022-01-01", "2022-02-01", "2022-03-01"))
+char_vec <- as.character(dates)
+print(char_vec)
+# 输出: "2022-01-01" "2022-02-01" "2022-03-01"
+
+# 示例4:将因子转换为字符向量
+factor_vec <- factor(c("A", "B", "C"))
+char_vec <- as.character(factor_vec)
+print(char_vec)
+# 输出: "A" "B" "C"
+

+

在上述示例中,我们演示了将不同类型的对象转换为字符向量的情况。 +在示例1中,我们将数值向量nums转换为字符向量char_vec,其中每个元素都被转换为字符。 +在示例2中,我们将逻辑向量logical_vec转换为字符向量char_vec,其中逻辑值TRUEFALSE被转换为字符。 +在示例3中,我们将日期向量dates转换为字符向量char_vec,其中日期被转换为字符形式的日期。 +在示例4中,我们将因子factor_vec转换为字符向量char_vec,其中因子水平被转换为字符。 +通过使用as.character()函数,我们可以将对象转换为字符向量,以满足特定的数据处理和分析需求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/as.factor()/index.html b/R/base-content/as.factor()/index.html new file mode 100644 index 00000000..13b183a4 --- /dev/null +++ b/R/base-content/as.factor()/index.html @@ -0,0 +1,1515 @@ + + + + + + + + + + + + + + + + + + + + + + + + + As.factor() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

As.factor()

+ +

在 R 语言中,as.factor() 函数用于将一个向量或数据框中的变量转换为因子(factor)类型。因子是一种特殊的数据类型,用于表示分类变量,其中每个水平(level)代表一个类别。以下是 as.factor() 函数的一般格式和一些示例用法: +

as.factor(x)
+
+参数: +- x:要转换为因子类型的向量、因子或数据框中的列。 +示例用法: +
# 将向量转换为因子
+vec <- c("A", "B", "A", "C", "B", "C")
+factor_vec <- as.factor(vec)
+print(factor_vec)
+
+# 将数据框中的列转换为因子
+df <- data.frame(
+  x = c("A", "B", "A", "C", "B", "C"),
+  y = c(1, 2, 3, 4, 5, 6)
+)
+df$y <- as.factor(df$y)
+print(df)
+
+在上述示例中,我们展示了将向量和数据框中的列转换为因子的用法。首先,我们创建了一个示例向量 vec,其中包含了几个字符类别。然后,我们使用 as.factor() 函数将向量 vec 转换为因子,并将结果存储在变量 factor_vec 中。最后,我们打印输出结果。 +输出结果为: +
[1] A B A C B C
+Levels: A B C
+
+这表示向量 factor_vec 已成功转换为因子类型,并且包含三个水平(levels):A、B 和 C。 +接下来,我们创建了一个示例数据框 df,其中包含两列变量 xy。然后,我们使用 as.factor() 函数将数据框中的列 y 转换为因子类型,并覆盖原始列。最后,我们打印输出整个数据框。 +输出结果为: +
  x y
+1 A 1
+2 B 2
+3 A 3
+4 C 4
+5 B 5
+6 C 6
+

+

这表示数据框 df 中的列 y 已成功转换为因子类型。 +总结起来,as.factor() 函数用于将向量或数据框中的变量转换为因子类型。因子类型常用于表示分类变量,并在统计分析中具有特殊的用途。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/as.integer()/index.html b/R/base-content/as.integer()/index.html new file mode 100644 index 00000000..42830803 --- /dev/null +++ b/R/base-content/as.integer()/index.html @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + As.integer() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

As.integer()

+ +

在 R 语言中,as.integer() 函数是基础的 R 函数,用于将对象转换为整数型。

+

以下是 as.integer() 函数的基本信息:

+

所属的包: 无需导入特定包,是 R 语言的基础函数。

+

功能: 将对象转换为整数型。

+

定义: +

as.integer(x)
+

+

参数介绍: +- x:要转换为整数型的对象,可以是向量、列表、数据框等。

+

返回值: +返回一个整数型的对象。

+

举例: +

# 使用 as.integer() 将数值向量转换为整数型
+num_vector <- c(1.5, 2.8, 3.2)
+int_vector <- as.integer(num_vector)
+
+# 打印结果
+print(int_vector)
+

+

输出: +

[1] 1 2 3
+

+

在这个例子中,as.integer(num_vector) 将数值向量 num_vector 转换为整数型向量 int_vector。小数部分被截断,得到整数型的结果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/as.logical()/index.html b/R/base-content/as.logical()/index.html new file mode 100644 index 00000000..caa00355 --- /dev/null +++ b/R/base-content/as.logical()/index.html @@ -0,0 +1,1495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + As.logical() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

As.logical()

+ +

是 R 语言中的函数,用于将对象转换为逻辑型(logical)数据类型。 +以下是 as.logical() 函数的详细说明: +

as.logical(x)
+
+ - x:要转换的对象。

+

as.logical() 函数将给定的对象 x 转换为逻辑型数据类型。如果对象可以被解释为逻辑值,则返回相应的逻辑型值;否则,返回一个缺失值 NA。 +以下是一些示例: +

x <- c(TRUE, FALSE, 1, 0, "TRUE", "FALSE", "T", "F", "yes", "no")
+y <- as.logical(x)
+
+print(y)
+
+输出: +
[1]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
+

+

在这个示例中,我们定义了一个包含不同类型的元素的向量 x,包括逻辑值、数值、字符型。然后,我们使用 as.logical() 函数将 x 转换为逻辑型。函数将逐个元素地解释为逻辑值,并返回一个逻辑型向量 y

+

在 R 中,逻辑型数据类型主要用于表示逻辑值(TRUE 或 FALSE)。as.logical() 函数可用于将其他类型的对象转换为逻辑型,以便进行逻辑运算和条件判断等操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/as.numeric()/index.html b/R/base-content/as.numeric()/index.html new file mode 100644 index 00000000..16cee676 --- /dev/null +++ b/R/base-content/as.numeric()/index.html @@ -0,0 +1,1528 @@ + + + + + + + + + + + + + + + + + + + + + + + + + As.numeric() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

As.numeric()

+ +

函数是R语言中的一个内置函数,用于将对象转换为数值型(numeric)。数值型数据是指带有小数部分的数值,实数。

+

数值型数据和浮点型数据是指同一种类型,即带有小数部分的数值,在 R 中没有实质上的区别,这两个术语可以互换使用。

+

函数介绍: +as.numeric()函数用于将对象转换为数值型。如果对象可以转换为数值型,则返回转换后的数值型对象;如果无法转换,则返回NA

+

该函数常用于将字符型、因子型等非数值型数据转换为数值型。

+

函数语法: +

as.numeric(x)
+
+参数x代表要转换的对象,可以是任何R语言中的数据类型,包括向量、矩阵、数据框等。

+

函数示例:

+

示例1:将字符型向量转换为数值型

+
# 创建一个字符型向量
+x <- c("1", "2", "3")
+
+# 转换为数值型向量
+y <- as.numeric(x)
+y
+# 输出: 1 2 3
+
+# 检查转换后的对象是否为数值型
+is.numeric(y)
+# 输出: TRUE
+
+

示例2:将因子型向量转换为数值型

+
# 创建一个因子型向量
+x <- factor(c("1", "2", "3"))
+
+# 转换为数值型向量
+y <- as.numeric(x)
+y
+# 输出: 1 2 3
+
+# 检查转换后的对象是否为数值型
+is.numeric(y)
+# 输出: TRUE
+
+

示例3:将逻辑型向量转换为数值型

+
# 创建一个逻辑型向量
+x <- c(TRUE, FALSE, TRUE)
+
+# 转换为数值型向量
+y <- as.numeric(x)
+y
+# 输出: 1 0 1
+
+# 检查转换后的对象是否为数值型
+is.numeric(y)
+# 输出: TRUE
+
+

通过调用as.numeric()函数,我们可以将非数值型对象转换为数值型,以便进行数值型数据的分析和计算。注意,在转换时,输入对象的每个元素在转换过程中要能够被解析为数值,否则会被转换为NA

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/as.vector()/index.html b/R/base-content/as.vector()/index.html new file mode 100644 index 00000000..195a01b6 --- /dev/null +++ b/R/base-content/as.vector()/index.html @@ -0,0 +1,1514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + As.vector() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

As.vector()

+ +

函数用于将对象转换为向量。 +以下是 as.vector() 函数的详细介绍和示例:as.vector() 函数可以用于将矩阵、数组或列表等对象转换为一个简单的向量。如果对象已经是向量,则不会进行任何转换。 +

as.vector(x)
+
+ - x:要转换为向量的对象。

+
    +
  1. 将矩阵转换为向量: +
    mat <- matrix(1:6, nrow = 2, ncol = 3)
    +result <- as.vector(mat)
    +print(result)
    +
    +在这个示例中,我们创建了一个矩阵 `mat`,然后使用 `as.vector()` 函数将矩阵转换为向量。
    +
    +# 输出结果为:
    +
    +\[1\] 1 2 3 4 5 6
    +
  2. +
  3. 将数组转换为向量: + ````R + arr <- array(1:24, dim = c(2, 3, 4)) + result <- as.vector(arr) + print(result)
  4. +
+

在这个示例中,我们创建了一个三维数组 arr,然后使用 as.vector() 函数将数组转换为向量。 + # 输出结果为:

+

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + `` +3. 将列表转换为向量:R + lst <- list(a = 1, b = 2, c = 3) + result <- as.vector(lst) + print(result)

+

在这个示例中,我们创建了一个列表 lst,然后使用 as.vector() 函数将列表转换为向量。

+

# 输出结果为:

+

[1] 1 2 3 + ```

+

as.vector() 函数在需要将对象转换为简单的向量时非常有用。请注意,转换后的向量将是一维的,无论原始对象是多维的还是列表对象。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/attachments/Pasted image 20230924112707.png b/R/base-content/attachments/Pasted image 20230924112707.png new file mode 100644 index 00000000..fc8d4113 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20230924112707.png differ diff --git a/R/base-content/attachments/Pasted image 20230924114211.png b/R/base-content/attachments/Pasted image 20230924114211.png new file mode 100644 index 00000000..49ec57ba Binary files /dev/null and b/R/base-content/attachments/Pasted image 20230924114211.png differ diff --git a/R/base-content/attachments/Pasted image 20230924114507.png b/R/base-content/attachments/Pasted image 20230924114507.png new file mode 100644 index 00000000..6860eaa9 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20230924114507.png differ diff --git a/R/base-content/attachments/Pasted image 20231012195027.png b/R/base-content/attachments/Pasted image 20231012195027.png new file mode 100644 index 00000000..4cc8f609 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231012195027.png differ diff --git a/R/base-content/attachments/Pasted image 20231015141611.png b/R/base-content/attachments/Pasted image 20231015141611.png new file mode 100644 index 00000000..47d97f1f Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231015141611.png differ diff --git a/R/base-content/attachments/Pasted image 20231017144628.png b/R/base-content/attachments/Pasted image 20231017144628.png new file mode 100644 index 00000000..ed81d579 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231017144628.png differ diff --git a/R/base-content/attachments/Pasted image 20231019080018.png b/R/base-content/attachments/Pasted image 20231019080018.png new file mode 100644 index 00000000..bd23666e Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231019080018.png differ diff --git a/R/base-content/attachments/Pasted image 20231113114711.png b/R/base-content/attachments/Pasted image 20231113114711.png new file mode 100644 index 00000000..4224086c Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113114711.png differ diff --git a/R/base-content/attachments/Pasted image 20231113114952.png b/R/base-content/attachments/Pasted image 20231113114952.png new file mode 100644 index 00000000..64caa8dc Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113114952.png differ diff --git a/R/base-content/attachments/Pasted image 20231113115136.png b/R/base-content/attachments/Pasted image 20231113115136.png new file mode 100644 index 00000000..36632aa8 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113115136.png differ diff --git a/R/base-content/attachments/Pasted image 20231113115527.png b/R/base-content/attachments/Pasted image 20231113115527.png new file mode 100644 index 00000000..59bf0ed3 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113115527.png differ diff --git a/R/base-content/attachments/Pasted image 20231113122835.png b/R/base-content/attachments/Pasted image 20231113122835.png new file mode 100644 index 00000000..840e31cb Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113122835.png differ diff --git a/R/base-content/attachments/Pasted image 20231113122847.png b/R/base-content/attachments/Pasted image 20231113122847.png new file mode 100644 index 00000000..67f7c8fd Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113122847.png differ diff --git a/R/base-content/attachments/Pasted image 20231113124341.png b/R/base-content/attachments/Pasted image 20231113124341.png new file mode 100644 index 00000000..6ecd903f Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113124341.png differ diff --git a/R/base-content/attachments/Pasted image 20231113125340.png b/R/base-content/attachments/Pasted image 20231113125340.png new file mode 100644 index 00000000..f8f460ab Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231113125340.png differ diff --git a/R/base-content/attachments/Pasted image 20231116141335.png b/R/base-content/attachments/Pasted image 20231116141335.png new file mode 100644 index 00000000..2586e2a9 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231116141335.png differ diff --git a/R/base-content/attachments/Pasted image 20231120135431.png b/R/base-content/attachments/Pasted image 20231120135431.png new file mode 100644 index 00000000..95c2093f Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231120135431.png differ diff --git a/R/base-content/attachments/Pasted image 20231120142431.png b/R/base-content/attachments/Pasted image 20231120142431.png new file mode 100644 index 00000000..fa71ac19 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231120142431.png differ diff --git a/R/base-content/attachments/Pasted image 20231120142440.png b/R/base-content/attachments/Pasted image 20231120142440.png new file mode 100644 index 00000000..1996c62c Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231120142440.png differ diff --git a/R/base-content/attachments/Pasted image 20231122085319.png b/R/base-content/attachments/Pasted image 20231122085319.png new file mode 100644 index 00000000..ac2c03b6 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231122085319.png differ diff --git a/R/base-content/attachments/Pasted image 20231122105019.png b/R/base-content/attachments/Pasted image 20231122105019.png new file mode 100644 index 00000000..05ed20ac Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231122105019.png differ diff --git a/R/base-content/attachments/Pasted image 20231219115135.png b/R/base-content/attachments/Pasted image 20231219115135.png new file mode 100644 index 00000000..8b74ca22 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231219115135.png differ diff --git a/R/base-content/attachments/Pasted image 20231219122919.png b/R/base-content/attachments/Pasted image 20231219122919.png new file mode 100644 index 00000000..59842de6 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231219122919.png differ diff --git a/R/base-content/attachments/Pasted image 20231223104422.png b/R/base-content/attachments/Pasted image 20231223104422.png new file mode 100644 index 00000000..a565dc6e Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231223104422.png differ diff --git a/R/base-content/attachments/Pasted image 20231223104500.png b/R/base-content/attachments/Pasted image 20231223104500.png new file mode 100644 index 00000000..c95e6126 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231223104500.png differ diff --git a/R/base-content/attachments/Pasted image 20231224105442.png b/R/base-content/attachments/Pasted image 20231224105442.png new file mode 100644 index 00000000..cfd2bea5 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231224105442.png differ diff --git a/R/base-content/attachments/Pasted image 20231226131407.png b/R/base-content/attachments/Pasted image 20231226131407.png new file mode 100644 index 00000000..a67f8931 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231226131407.png differ diff --git a/R/base-content/attachments/Pasted image 20231226164828.png b/R/base-content/attachments/Pasted image 20231226164828.png new file mode 100644 index 00000000..32c065d9 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231226164828.png differ diff --git a/R/base-content/attachments/Pasted image 20231227090001.png b/R/base-content/attachments/Pasted image 20231227090001.png new file mode 100644 index 00000000..2c301131 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231227090001.png differ diff --git a/R/base-content/attachments/Pasted image 20231227090100.png b/R/base-content/attachments/Pasted image 20231227090100.png new file mode 100644 index 00000000..24cae4c1 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231227090100.png differ diff --git a/R/base-content/attachments/Pasted image 20231227090344.png b/R/base-content/attachments/Pasted image 20231227090344.png new file mode 100644 index 00000000..f943c267 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231227090344.png differ diff --git a/R/base-content/attachments/Pasted image 20231227130146.png b/R/base-content/attachments/Pasted image 20231227130146.png new file mode 100644 index 00000000..5354f11d Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231227130146.png differ diff --git a/R/base-content/attachments/Pasted image 20231227130310.png b/R/base-content/attachments/Pasted image 20231227130310.png new file mode 100644 index 00000000..84389789 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20231227130310.png differ diff --git a/R/base-content/attachments/Pasted image 20240107124937.png b/R/base-content/attachments/Pasted image 20240107124937.png new file mode 100644 index 00000000..71079ae2 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240107124937.png differ diff --git a/R/base-content/attachments/Pasted image 20240107124942.png b/R/base-content/attachments/Pasted image 20240107124942.png new file mode 100644 index 00000000..c4bf3205 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240107124942.png differ diff --git a/R/base-content/attachments/Pasted image 20240108103712.png b/R/base-content/attachments/Pasted image 20240108103712.png new file mode 100644 index 00000000..08dbbfbc Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240108103712.png differ diff --git a/R/base-content/attachments/Pasted image 20240108103742.png b/R/base-content/attachments/Pasted image 20240108103742.png new file mode 100644 index 00000000..3802acef Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240108103742.png differ diff --git a/R/base-content/attachments/Pasted image 20240109203103.png b/R/base-content/attachments/Pasted image 20240109203103.png new file mode 100644 index 00000000..4ec45298 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240109203103.png differ diff --git a/R/base-content/attachments/Pasted image 20240109204554.png b/R/base-content/attachments/Pasted image 20240109204554.png new file mode 100644 index 00000000..f3e8b6d1 Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240109204554.png differ diff --git a/R/base-content/attachments/Pasted image 20240109204832.png b/R/base-content/attachments/Pasted image 20240109204832.png new file mode 100644 index 00000000..3964111d Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240109204832.png differ diff --git a/R/base-content/attachments/Pasted image 20240109204857.png b/R/base-content/attachments/Pasted image 20240109204857.png new file mode 100644 index 00000000..fe28542f Binary files /dev/null and b/R/base-content/attachments/Pasted image 20240109204857.png differ diff --git a/R/base-content/barplot()/index.html b/R/base-content/barplot()/index.html new file mode 100644 index 00000000..4110795e --- /dev/null +++ b/R/base-content/barplot()/index.html @@ -0,0 +1,1542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Barplot() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Barplot()

+ +

在R语言中,barplot()函数用于创建条形图(bar plot),用于可视化离散变量的频数、计数或其他汇总数据

+

函数定义: +

barplot(height, width, space, names.arg, main, xlab, ylab, xlim, ylim, col, border, ...)
+

+

参数: +以下是barplot()函数中常用的参数:

+
    +
  • +

    height:一个向量或矩阵,表示条形的高度。可以是一个数值向量,表示每个条形的高度;或者是一个矩阵,每一行表示一个条形的高度。

    +
  • +
  • +

    width:可选参数,表示条形的宽度。可以是一个数值,表示所有条形的宽度;或者是一个数值向量,表示每个条形的宽度。

    +
  • +
  • +

    space:可选参数,表示条形之间的间距

    +
  • +
  • +

    names.arg:可选参数,用于指定条形的名称。可以是一个字符向量,长度与条形数量相等

    +
  • +
  • +

    main:可选参数,表示条形图的标题。

    +
  • +
  • +

    xlab:可选参数,表示x轴的标签。

    +
  • +
  • +

    ylab:可选参数,表示y轴的标签。

    +
  • +
  • +

    xlim:可选参数,表示x轴的范围。

    +
  • +
  • +

    ylim:可选参数,表示y轴的范围。

    +
  • +
  • +

    col:可选参数,表示条形的填充颜色。

    +
  • +
  • +

    border:可选参数,表示条形的边框颜色。

    +
  • +
  • +

    ...:其他可选参数,用于传递给底层绘图函数。

    +
  • +
+

返回值: +barplot()函数会创建一个条形图,并返回一个数值向量,表示每个条形的中心的x坐标。

+

示例: +以下是使用barplot()函数创建一个简单的条形图的示例:

+
# 创建一个向量表示条形的高度
+height <- c(5, 8, 3, 2)
+
+# 创建条形图
+barplot(height, 
+        names.arg = c("A", "B", "C", "D"),
+        main = "Bar Plot Example",
+        xlab = "Categories",
+        ylab = "Counts",
+        col = "blue",
+        border = "black")
+
+

在上述示例中,我们首先创建了一个向量height,表示条形的高度。

+

然后,我们使用barplot()函数创建一个条形图。通过传递height作为条形的高度,names.arg作为条形的名称,main作为图的标题,xlab作为x轴的标签,ylab作为y轴的标签,col作为条形的填充颜色,border作为条形的边框颜色。

+

最后,barplot()函数会绘制条形图,并返回一个数值向量,表示每个条形的中心的x坐标。

+

请注意,上述示例仅演示了基本用法,更多详细的参数和选项可以参考R语言的官方文档或使用?barplot命令查看函数的帮助文档。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/bartlett.test()/index.html b/R/base-content/bartlett.test()/index.html new file mode 100644 index 00000000..644566f1 --- /dev/null +++ b/R/base-content/bartlett.test()/index.html @@ -0,0 +1,1574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Bartlett.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Bartlett.test()

+ +

bartlett.test函数概述:

+

功能: bartlett.test()函数用于执行Bartlett's test(巴特利特检验),检验多个组的方差是否相等。这个检验通常用于方差分析(ANOVA)等统计方法,因为这些方法在假设组内方差相等的情况下更为有效。

+

所属包: bartlett.test函数属于stats包,这是R语言的基础统计包,通常默认加载。

+

定义: +

bartlett.test(formula, data, subset, na.action)
+

+

参数介绍:

+
    +
  • +

    formula 一个公式,通常表示为response ~ group,其中response是数值型变量,而group是分组变量。

    +
  • +
  • +

    data 包含相关变量的数据框。

    +
  • +
  • +

    subset 可选参数,用于指定一个子集进行分析。

    +
  • +
  • +

    na.action 一个函数,用于处理缺失值。

    +
  • +
+

示例:

+
# 创建三个组的数据(示例数据)
+group1 <- c(23, 25, 28, 30, 32)
+group2 <- c(18, 20, 24, 28, 30)
+group3 <- c(22, 24, 26, 28, 30)
+
+# 创建数据框
+data <- data.frame(
+  Group = rep(c("Group1", "Group2", "Group3"), each = 5),
+  Value = c(group1, group2, group3)
+)
+
+# 执行Bartlett's test
+result <- bartlett.test(Value ~ Group, data = data)
+
+# 显示结果
+print(result)
+
+

输出:

+

示例中的输出结果将包含Bartlett's test的统计量(Bartlett's K-squared)、自由度(df)和p值(p-value)。具体输出信息将类似于:

+
Bartlett test of homogeneity of variances
+           Df = 2 
+           Chisquare = 0.55071 
+           Pr(>Chisq) = 0.7595
+
+

这个输出提供了Bartlett's test的统计量、自由度以及p值。在这个示例中,你可以查看p值来判断是否拒绝了组内方差相等的假设。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/binom.test()/index.html b/R/base-content/binom.test()/index.html new file mode 100644 index 00000000..8980529a --- /dev/null +++ b/R/base-content/binom.test()/index.html @@ -0,0 +1,1526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Binom.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Binom.test()

+ +

在 R 语言中,binom.test() 函数是基础的统计检验函数,用于进行二项分布的检验。

+

以下是 binom.test() 函数的基本信息:

+

所属的包: 无需导入特定包,是 R 语言的基础函数。

+

功能: 执行二项分布的检验,通常用于比较两个二项分布的参数或对单个二项分布的参数进行检验。

+

定义: +

binom.test(x, n = NULL, p = 0.5, alternative = c("two.sided", "less", "greater"), conf.level = 0.95)
+

+

参数介绍: +- x:成功的次数,可以是向量或一个表示表格的矩阵。

+
    +
  • +

    n:试验的总次数,如果 x 是向量,则 n 必须是相同长度的向量。如果 x 是表示表格的矩阵,则 n 是每个单元格的行数。

    +
  • +
  • +

    p:要检验的比例(成功的概率),默认为 0.5。

    +
  • +
  • +

    alternative:替代假设的类型,可选值为 "two.sided"(双侧检验,默认)、"less"(小于检验)、"greater"(大于检验)。

    +
  • +
  • +

    conf.level:置信水平,默认为 0.95,表示 95% 置信水平。

    +
  • +
+

返回值: +返回一个包含二项检验的结果的列表。

+

举例: +

# 使用 binom.test() 进行二项分布检验
+successes <- 15
+trials <- 20
+
+binom_test_result <- binom.test(successes, n = trials, p = 0.5, alternative = "two.sided")
+
+# 打印结果
+print(binom_test_result)
+

+

输出: +

    Exact binomial test
+
+data:  successes and trials
+number of successes = 15, number of trials = 20, p-value = 0.018
+alternative hypothesis: true probability of success is not equal to 0.5
+95 percent confidence interval:
+ 0.5262944 0.9045654
+sample estimates:
+probability of success 
+                   0.75 
+

+

在这个例子中,binom.test() 函数用于执行二项分布的检验。成功的次数为 15,总试验次数为 20,检验的替代假设是 "two.sided"(双侧检验)。输出包含了 p 值、替代假设、置信区间等信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/c()/index.html b/R/base-content/c()/index.html new file mode 100644 index 00000000..b88d4338 --- /dev/null +++ b/R/base-content/c()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + C() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

C()

+ +

在 R 语言中,是一个函数,用于创建向量(Vector)。 +c() 函数将给定的对象组合成一个向量,并返回这个向量。

+

c(...)
+
+ - ...:要组合成向量的对象,可以是多个元素、向量或其他对象。 +1. 创建数值向量: +
nums <- c(1, 2, 3, 4, 5)
+print(nums)  # 输出:1 2 3 4 5
+```
+在这个示例中,我们使用 `c()` 函数将一系列数值对象组合成一个数值向量。
+
+2. 创建字符型向量: +
names <- c("Alice", "Bob", "Charlie")
+print(names)  # 输出:"Alice" "Bob" "Charlie"
+```
+在这个示例中,我们使用 `c()` 函数将一系列字符型对象组合成一个字符型向量。
+
+3. 组合多个向量: +
nums1 <- c(1, 2, 3)
+nums2 <- c(4, 5, 6)
+combined <- c(nums1, nums2)
+print(combined)  # 输出:1 2 3 4 5 6
+```
+在这个示例中,我们使用 `c()` 函数将两个数值向量 `nums1` 和 `nums2` 组合成一个新的数值向量。
+
+c() 函数在创建向量时非常有用,可以通过将多个对象组合在一起来构建不同类型的向量。可以使用 c() 函数来创建数值向量、字符型向量、逻辑型向量等。在组合对象时,可以直接提供元素值,也可以使用已经存在的向量或其他对象。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/cat()/index.html b/R/base-content/cat()/index.html new file mode 100644 index 00000000..46e36bdb --- /dev/null +++ b/R/base-content/cat()/index.html @@ -0,0 +1,1556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cat() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Cat()

+ +

在R语言中,cat()函数是一个内置函数,用于将文本输出到控制台或文件。 +函数定义: +

cat(..., file = "", sep = " ", fill = FALSE, labels = NULL, append = FALSE)
+
+参数: +- ...:要输出的一个或多个对象。 +- file:要写入的文件名。如果未指定文件名,则将文本输出到控制台。默认为空字符串。 +- sep:用于分隔多个对象的字符。默认为单个空格。 +- fill:一个逻辑值,表示是否在输出时填充行。默认为FALSE,即不填充行。 +- labels:一个字符向量,用于在输出中标记每个对象。默认为NULL,即不使用标签。 +- append:一个逻辑值,表示是否将输出附加到现有文件。默认为FALSE,即覆盖现有文件。

+
    +
  1. 输出文本到控制台:
  2. +
+
# 输出文本到控制台
+cat("Hello, world!")
+cat("The answer is", 42)
+
+

输出: +

Hello, world!
+The answer is 42
+

+

在上面的示例中,我们使用cat()函数将文本输出到控制台。传递给cat()函数的参数是要输出的对象,可以是字符串、数字或其他类型的对象。多个对象之间使用默认的空格分隔。

+
    +
  1. 输出文本到文件:
  2. +
+
# 输出文本到文件
+cat("This is line 1.", "This is line 2.", file = "output.txt")
+
+

在上面的示例中,我们使用cat()函数将文本输出到名为output.txt的文件中。通过将文件名作为file参数的值传递给cat()函数,可以将输出定向到指定的文件中。

+

输出的文本将写入output.txt文件中,每行一个文本对象。

+
    +
  1. 使用标签和分隔符:
  2. +
+
# 使用标签和分隔符
+cat("Name:", "John Doe", "Age:", 30, sep = ", ", labels = c("First", "Second"))
+
+

输出: +

First: Name, Second: John Doe, First: Age, Second: 30
+

+

在上面的示例中,我们使用sep参数指定了逗号和空格作为对象之间的分隔符。使用labels参数指定了标签,用于标记每个对象的前后部分。

+

输出结果中,每个对象的前面都有一个标签,分别为"First"和"Second"。

+

通过使用cat()函数,您可以将文本输出到控制台或文件中,并可以自定义分隔符、填充行、标签等。

+

更简洁的输出形式

+

在 R 语言中,可以通过多种方式让输出更简洁。一种方法是将所有信息合并成一个单一的字符串,然后用一次 cat 函数调用输出。你可以使用 pastesprintf 函数来格式化字符串。 +使用 paste 的例子: +

cat(paste("优化的参数:", best$par, "\n",
+          "目标函数:", best$value, "\n",
+          "是否收敛:", best$convergence, "\n"))
+

+

使用 sprintf 的例子,它可以让格式化更加灵活: +

cat(sprintf("优化的参数:%s\n目标函数:%f\n是否收敛:%d\n",
+            best$par, best$value, best$convergence))
+

+

sprintf 函数允许你指定数据类型占位符(如 %s 代表字符串,%f 代表浮点数,%d 代表整数),这样你可以控制数字的格式,例如小数点后的位数。 +这些方法让代码更加简洁,并且只调用一次 cat 函数,使得输出的格式更加统一。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/chisq.test()/index.html b/R/base-content/chisq.test()/index.html new file mode 100644 index 00000000..28f4270d --- /dev/null +++ b/R/base-content/chisq.test()/index.html @@ -0,0 +1,1557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Chisq.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Chisq.test()

+ +

在 R 语言中,chisq.test() 函数用于执行卡方检验(Chi-squared test)。卡方检验是一种用于评估观察值与期望值之间的差异的统计方法,常用于分析分类变量之间的关联性。下面是对 chisq.test() 函数的参数进行详细介绍和举例:

+

Pasted image 20231120135431

+

函数语法: +

chisq.test(x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), ...)
+

+

参数说明:

+
    +
  • x:一个数据向量或者一个数据矩阵。如果是向量,则表示单个分类变量的观察值;如果是矩阵,则表示多个分类变量之间的关联表
  • +
+

c=(38, 24, 18, 18, 2);期望值系统自动汇总观测值,乘以期望值的概率分布间接求得

+
    +
  • +

    y:可选参数,当 x 是一个数据矩阵时,y 是一个数据向量,用于表示分类变量的配对信息

    +
  • +
  • +

    correct:一个逻辑值,用于指定是否应用连续性校正(continuity correction)。默认为 TRUE,表示应用连续性校正。

    +
  • +
  • +

    p:一个概率向量,用于指定理论期望值的概率分布,即期望频次的概率。默认情况下,每个分类的概率相等

    +
  • +
+

c=(0.40, 0.20, 0.20, 0.15, 0.05)

+
    +
  • ...:其他参数,用于传递给 chisq.test() 函数的选项。
  • +
+

返回值: +函数返回一个包含卡方检验结果的对象,其中包括卡方统计量、自由度、p 值等。

+

示例: +下面是一个使用 chisq.test() 函数进行卡方检验的示例:

+
# 创建一个分类变量的观察值向量
+x <- c(10, 15, 5, 8)
+
+# 使用 chisq.test() 进行卡方检验
+result <- chisq.test(x)
+
+# 打印卡方检验结果
+print(result)
+
+

在上述示例中,我们创建了一个分类变量的观察值向量 x,表示不同类别的频数。然后,我们使用 chisq.test() 函数对观察值进行卡方检验。最后,我们打印出卡方检验的结果。

+

请注意,chisq.test() 函数还可以用于分析多个分类变量之间的关联性,此时 x 参数应该是一个数据矩阵,每一列代表一个分类变量的观察值。你可以根据实际需要传递不同的参数来执行相应的卡方检验,并根据检验结果进行数据分析和解释。

+

卡方的拟合优度检验

+

一个类别变量,检验样本能多大程度代表总体。 +Pasted image 20231224105442

+

卡方的独立性检验

+

两个类别变量,看类别间是否相互独立。H_1:两个类别变量不是相互独立,对备用假设有主观偏好,不然不会设置更为严格的证明条件,从而增加H1的说服力。

+

先构建类别频次矩阵 +Pasted image 20231120142431

+

Pasted image 20231120142440

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/cluster()/index.html b/R/base-content/cluster()/index.html new file mode 100644 index 00000000..b7d110e8 --- /dev/null +++ b/R/base-content/cluster()/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cluster() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Cluster()

+ +

在R编程语言中,sampling包中的函数,是一个用于创建聚类对象的函数用。 +cluster()函数的具体用法和参数取决于所使用的聚类分析包。一般而言,cluster()函数可以用于创建不同类型的聚类对象,如k均值聚类(k-means clustering)或层次聚类(hierarchical clustering)。 +

# 导入相关包(如果尚未安装,需要先安装)
+library(stats)
+
+# 创建数据
+data <- iris[, 1:4]  # 使用鸢尾花数据集的前四列作为示例数据
+
+# 进行k均值聚类
+k <- 3  # 设置聚类的簇数
+kmeans_result <- kmeans(data, centers = k)  # 使用kmeans函数进行聚类
+
+# 获取聚类结果
+clusters <- kmeans_result$cluster  # 聚类结果存储在$cluster中
+
+# 打印聚类结果
+print(clusters)
+

+

在上述示例中,我们使用cluster()函数创建了一个k均值聚类对象,然后通过访问聚类对象的属性(例如$cluster)来获取聚类结果。

+

请注意,聚类分析的具体操作和参数设置可能因不同的聚类算法或包而有所不同。因此,在使用cluster()函数时,请参考相应包的文档或函数帮助文档,以了解如何正确使用和解释聚类对象。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/colnames()/index.html b/R/base-content/colnames()/index.html new file mode 100644 index 00000000..5d94fa2b --- /dev/null +++ b/R/base-content/colnames()/index.html @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Colnames() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Colnames()

+ +

colnames() 是 R 语言中用于获取或设置矩阵列名的函数。它可以用于矩阵对象或数据框对象。colnames() 函数返回一个字符向量,包含给定对象的列名。如果对象没有列名,则返回一个空的字符向量。 +

colnames(x)
+
+ - x:要获取或设置列名的对象,通常是矩阵或数据框。

+
    +
  1. 获取矩阵的列名: +
    mat <- matrix(1:6, nrow = 2, ncol = 3)
    +colnames(mat) <- c("Col1", "Col2", "Col3")
    +result <- colnames(mat)
    +print(result)  # 输出:"Col1" "Col2" "Col3"
    +```
    +
    +在这个示例中,我们首先创建了一个矩阵 `mat`,然后使用 `colnames()` 函数为矩阵的列设置名称。最后,使用 `colnames()` 函数获取矩阵的列名。
    +
  2. +
  3. 获取数据框的列名: +
    df <- data.frame(A = 1:3, B = 4:6, C = 7:9)
    +result <- colnames(df)
    +print(result)  # 输出:"A" "B" "C"
    +```
    +
    +在这个示例中,我们创建了一个数据框 `df`,其中包含三列 A、B 和 C。使用 `colnames()` 函数获取数据框的列名。
    +
  4. +
  5. 设置矩阵的列名: +
    mat <- matrix(1:6, nrow = 2, ncol = 3)
    +colnames(mat) <- c("Column1", "Column2", "Column3")
    +print(colnames(mat))  # 输出:"Column1" "Column2" "Column3"
    +```
    +
    +在这个示例中,我们创建了一个矩阵 `mat`,然后使用 `colnames()` 函数为矩阵的列设置名称。
    +
    +注意:`colnames()` 函数可以用于矩阵和数据框对象,但对于其他类型的对象,如向量,它可能会返回一个空的字符向量。
    +
  6. +
+

colnames() 函数在处理矩阵和数据框时非常有用,可以帮助您获取和设置对象的列名,从而更好地理解和操作数据。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/cummean()/index.html b/R/base-content/cummean()/index.html new file mode 100644 index 00000000..b3459c52 --- /dev/null +++ b/R/base-content/cummean()/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cummean() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Cummean()

+ +

是 R 中的一个函数,它用于计算向量或数据框中元素的累积均值。它返回一个具有相同长度的向量,其中每个元素是原始向量中该位置及之前位置上元素的均值。

+

以下是 cummean() 函数的示例用法:

+
# 使用 cummean() 计算向量的累积均值
+vec <- c(2, 4, 6, 8, 10)
+cumulative_mean <- cummean(vec)
+
+print(cumulative_mean)
+
+

输出结果如下:

+
[1]  2.0  3.0  4.0  5.0  6.0
+
+

在上述示例中,我们使用 cummean() 函数计算了向量 vec 中元素的累积均值。第一个元素保持不变,第二个元素是前两个元素的均值,第三个元素是前三个元素的均值,以此类推。

+

cummean() 函数也可以应用于数据框中的列。下面是一个示例:

+
data <- data.frame(
+  category = c("A", "B", "C", "D", "E"),
+  value = c(2, 4, 6, 8, 10)
+)
+
+# 在数据框中应用 cummean()
+cumulative_mean_data <- data %>%
+  mutate(cumulative_mean_value = cummean(value))
+
+print(cumulative_mean_data)
+
+

输出结果如下:

+
  category value cumulative_mean_value
+1        A     2                   2.0
+2        B     4                   3.0
+3        C     6                   4.0
+4        D     8                   5.0
+5        E    10                   6.0
+
+

在上述示例中,我们使用 mutate() 函数和 cummean() 函数在数据框中创建了一个新列 cumulative_mean_value,其中存储了 value 列元素的累积均值。

+

通过 cummean() 函数,你可以计算向量或数据框中元素的累积均值,这对于计算累积和、滚动平均等累积性统计量非常有用。

+

希望这个例子能够帮助你理解 cummean() 函数的作用。如果你有任何其他问题,请随时提问!

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/cumprod()/index.html b/R/base-content/cumprod()/index.html new file mode 100644 index 00000000..ff9f8cf1 --- /dev/null +++ b/R/base-content/cumprod()/index.html @@ -0,0 +1,1520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cumprod() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Cumprod()

+ +

在R语言中,cumprod()是一个内置函数,用于计算向量或矩阵的累积乘积。 +函数定义: +

cumprod(x)
+
+参数: +- x:要计算累积乘积的向量、矩阵或数据框。

+
    +
  1. 对向量计算累积乘积:
  2. +
+
# 定义向量
+x <- c(1, 2, 3, 4, 5)
+
+# 计算累积乘积
+cumulative_product <- cumprod(x)
+
+print(cumulative_product)
+
+

输出: +

[1]   1   2   6  24 120
+

+

在上面的示例中,我们定义了一个向量x,包含了整数1到5。然后,我们使用cumprod()函数计算了向量x的累积乘积,并将结果存储在cumulative_product变量中。

+

输出结果显示了cumulative_product向量中每个位置的累积乘积。在这种情况下,累积乘积的计算方式如下:1, 1 * 2 = 2, 1 * 2 * 3 = 6, 1 * 2 * 3 * 4 = 24, 1 * 2 * 3 * 4 * 5 = 120。

+
    +
  1. 对矩阵计算累积乘积:
  2. +
+
# 定义矩阵
+m <- matrix(1:9, nrow = 3)
+
+# 计算累积乘积
+cumulative_product <- cumprod(m)
+
+print(cumulative_product)
+
+

输出: +

     [,1] [,2] [,3]
+[1,]    1    4    7
+[2,]    2   10   36
+[3,]    6   48  288
+

+

在上面的示例中,我们定义了一个3x3的矩阵m,其中包含1到9的整数。然后,我们使用cumprod()函数计算了矩阵m的累积乘积。由于cumprod()函数逐列计算累积乘积,因此输出结果是一个与输入矩阵维度相同的矩阵,其中每个位置包含了相应列的累积乘积。

+

请注意,cumprod()函数也可以用于数据框。它将逐列计算累积乘积,并返回一个具有相同列数和行名的数据框。

+

希望这些示例能帮助您理解cumprod()函数的用法和功能。您可以根据实际需求对向量、矩阵或数据框应用cumprod()函数来计算累积乘积。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/cumsum()/index.html b/R/base-content/cumsum()/index.html new file mode 100644 index 00000000..4382707f --- /dev/null +++ b/R/base-content/cumsum()/index.html @@ -0,0 +1,1520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cumsum() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Cumsum()

+ +

在R语言中,cumsum()是一个内置函数,用于计算向量或矩阵的累积和。 +函数定义: +

cumsum(x)
+
+参数: +- x:要计算累积和的向量、矩阵或数据框。

+
    +
  1. 对向量计算累积和:
  2. +
+
# 定义向量
+x <- c(1, 2, 3, 4, 5)
+
+# 计算累积和
+cumulative_sum <- cumsum(x)
+
+print(cumulative_sum)
+
+

输出: +

[1]  1  3  6 10 15
+

+

在上面的示例中,我们定义了一个向量x,包含了整数1到5。然后,我们使用cumsum()函数计算了向量x的累积和,并将结果存储在cumulative_sum变量中。

+

输出结果显示了cumulative_sum向量中每个位置的累积和。在这种情况下,累积和的计算方式如下:1, 1 + 2 = 3, 1 + 2 + 3 = 6, 1 + 2 + 3 + 4 = 10, 1 + 2 + 3 + 4 + 5 = 15。

+
    +
  1. 对矩阵计算累积和:
  2. +
+
# 定义矩阵
+m <- matrix(1:9, nrow = 3)
+
+# 计算累积和
+cumulative_sum <- cumsum(m)
+
+print(cumulative_sum)
+
+

输出: +

     [,1] [,2] [,3]
+[1,]    1    4    7
+[2,]    3    8   15
+[3,]    6   14   24
+

+

在上面的示例中,我们定义了一个3x3的矩阵m,其中包含1到9的整数。然后,我们使用cumsum()函数计算了矩阵m的累积和。由于cumsum()函数逐列计算累积和,因此输出结果是一个与输入矩阵维度相同的矩阵,其中每个位置包含了相应列的累积和。

+

请注意,cumsum()函数也可以用于数据框。它将逐列计算累积和,并返回一个具有相同列数和行名的数据框。

+

希望这些示例能帮助您理解cumsum()函数的用法和功能。您可以根据实际需求对向量、矩阵或数据框应用cumsum()函数来计算累积和。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/data.frame()/index.html b/R/base-content/data.frame()/index.html new file mode 100644 index 00000000..c2e6a931 --- /dev/null +++ b/R/base-content/data.frame()/index.html @@ -0,0 +1,1573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Data.frame() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Data.frame()

+ +

在R语言中,data.frame()函数用于创建数据框(data frame)。 +函数定义: +

data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, stringsAsFactors = default.stringsAsFactors())
+
+参数: +- ...:列向量或其他数据框,用于构建数据框的列。每个参数可以是向量、矩阵、数组或其他数据结构。 +- row.names:指定行名(可选)。可以是字符向量或NULL。默认情况下,行名为数字序列。 +- check.rows:逻辑值,表示是否检查输入的行数。默认为FALSE,表示不检查。 +- check.names:逻辑值,表示是否检查列名的合法性。默认为TRUE,表示检查。 +- stringsAsFactors:逻辑值,表示是否将字符列作为因子处理。默认为根据全局选项options(stringsAsFactors)来确定。 +示例: +以下是一些使用data.frame()函数创建数据框的示例: +
# 示例1:创建简单数据框
+name <- c("Alice", "Bob", "Charlie")
+age <- c(25, 30, 35)
+height <- c(165, 175, 185)
+
+df <- data.frame(name, age, height)
+print(df)
+# 输出:
+#     name age height
+# 1  Alice  25    165
+# 2    Bob  30    175
+# 3 Charlie  35    185
+
+# 示例2:创建具有行名的数据框
+name <- c("Alice", "Bob", "Charlie")
+age <- c(25, 30, 35)
+height <- c(165, 175, 185)
+
+df <- data.frame(name, age, height, row.names = c("P1", "P2", "P3"))
+print(df)
+# 输出:
+#       name age height
+# P1   Alice  25    165
+# P2     Bob  30    175
+# P3 Charlie  35    185
+
+# 示例3:创建具有因子列的数据框
+name <- c("Alice", "Bob", "Charlie")
+age <- c(25, 30, 35)
+gender <- c("Female", "Male", "Male")
+
+df <- data.frame(name, age, gender, stringsAsFactors = TRUE)
+print(df)
+# 输出:
+#     name age gender
+# 1  Alice  25 Female
+# 2    Bob  30   Male
+# 3 Charlie  35   Male
+# 
+# 注意:gender列被默认转换为因子类型
+

+

在上述示例中,我们展示了使用data.frame()函数创建数据框的不同情况。

+

在示例1中,我们创建了一个简单的数据框df,使用nameageheight作为列向量构建数据框。函数将这些列合并为一个数据框,并打印出数据框的内容。

+

在示例2中,我们创建了一个具有行名的数据框df,使用nameageheight作为列向量构建数据框,并使用row.names参数指定了行名。函数将这些列合并为一个数据框,并打印出数据框的内容。

+

在示例3中,我们创建了一个具有因子列的数据框df,使用nameagegender作为列向量构建数据框,并使用stringsAsFactors参数将字符列gender转换为因子类型。函数将这些列合并为一个数据框,并打印出数据框的内容。

+

通过使用data.frame()函数,我们可以根据给定的列向量创建数据框,并根据需要指定行名、检查行数和列名的合法性,以及处理字符列是否转换为因子类型等。数据框是R语言中常用的数据结构,用于处理和分析结构化数据。

+

常见创建形式

+

注意每个列后面要加逗号

+
# 创建数据库数据
+database_data <- data.frame(
+  ID = c(1, 2, 3, 4, 5),
+  Name = c("John", "Emma", "Michael", "Sophia", "William"),
+  Age = c(25, 28, 32, 27, 30),
+  Country = c("USA", "Canada", "UK", "Australia", "Germany"),
+  Salary = c(50000, 60000, 70000, 55000, 65000),
+  stringsAsFactors = FALSE
+)
+
+# 打印输出数据库数据
+print(database_data)
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/dchisq()/index.html b/R/base-content/dchisq()/index.html new file mode 100644 index 00000000..70711a85 --- /dev/null +++ b/R/base-content/dchisq()/index.html @@ -0,0 +1,1493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dchisq() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Dchisq()

+ +

是R语言中用于计算卡方分布概率密度函数(Probability Density Function,PDF)的函数。卡方分布是一种常用的概率分布,特别用于统计推断和假设检验。 +dchisq()函数的语法如下: +

dchisq(x, df)
+
+参数说明: +- x:要计算概率密度的值或一组值。 +- df:卡方分布的自由度(degrees of freedom)。

+

下面是一个示例,演示如何使用dchisq()函数计算卡方分布的概率密度: +

# 计算自由度为3的卡方分布在x=2处的概率密度
+pdf_value <- dchisq(2, df = 3)
+print(pdf_value)
+
+在上述示例中,我们使用dchisq(2, df = 3)计算自由度为3的卡方分布在x=2处的概率密度,并将结果存储在pdf_value变量中。print()函数用于打印概率密度的值。

+

需要注意的是,dchisq()函数计算的是卡方分布的概率密度值,即给定自由度下某个特定取值的概率密度。对于连续分布,概率密度函数表示了随机变量落在某个取值附近的概率密度。

+

希望这个例子能够帮助您理解dchisq()函数的用法和功能。如果您有任何其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/density()/index.html b/R/base-content/density()/index.html new file mode 100644 index 00000000..90a4ca16 --- /dev/null +++ b/R/base-content/density()/index.html @@ -0,0 +1,1533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Density() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Density()

+ +

在R语言中,density()函数用于计算核密度估计(kernel density estimation)。

+

函数定义: +

density(x, bw = "nrd0", kernel = "gaussian", ...)
+

+

参数: +以下是density()函数中常用的参数:

+
    +
  • +

    x:要进行核密度估计的向量或数值向量。

    +
  • +
  • +

    bw:可选参数,表示带宽(bandwidth)的选择方法。可以是字符串值,如"nrd0""nrd""ucv"等,或者是一个数字值。

    +
  • +
  • +

    kernel:可选参数,表示核函数的选择。可以是字符串值,如"gaussian""epanechnikov""rectangular"等。

    +
  • +
  • +

    ...:其他可选参数,用于传递给底层的核密度估计函数。

    +
  • +
+

返回值: +density()函数返回一个核密度估计的对象,其中包含以下组成部分:

+
    +
  • +

    x:原始数据。

    +
  • +
  • +

    y:对应于每个x值的核密度估计。

    +
  • +
  • +

    bw:使用的带宽。

    +
  • +
  • +

    n:观测值的数量。

    +
  • +
  • +

    call:函数的调用。

    +
  • +
+

示例: +以下是使用density()函数进行核密度估计的示例:

+
# 创建一个向量
+x <- c(1, 2, 2, 3, 4, 4, 4, 5)
+
+# 进行核密度估计
+dens <- density(x, bw = "nrd0", kernel = "gaussian")
+
+# 打印核密度估计结果
+print(dens)
+
+

在上述示例中,我们首先创建了一个向量x,它包含一些观测值。

+

然后,我们使用density()函数对向量x进行核密度估计。通过指定bw = "nrd0"kernel = "gaussian"参数,我们使用了默认的带宽选择方法和高斯核函数。

+

最后,我们打印核密度估计对象dens,它包含了计算得到的核密度估计结果。

+

请注意,上述示例仅演示了基本用法,更多详细的参数和选项可以参考R语言的官方文档或使用?density命令查看函数的帮助文档。

+

关于“距离”的部分,density()函数本身不涉及距离的计算。它主要用于估计密度函数,而不是计算观测值之间的距离。如果你对距离计算感兴趣,可以考虑使用其他R包中的函数,如dist()用于计算距离矩阵。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/df()/index.html b/R/base-content/df()/index.html new file mode 100644 index 00000000..246f08d0 --- /dev/null +++ b/R/base-content/df()/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Df() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Df()

+ +

在R语言中,df()函数用于计算F分布的概率密度函数(PDF)值。 +函数定义: +

df(x, df1, df2)
+
+参数: +- x:自变量,即要计算概率密度函数值的点。 +- df1:分子自由度。 +- df2:分母自由度。 +示例: +
# 示例:计算F分布的概率密度函数值
+# 计算F分布的概率密度函数值
+density <- df(x = 2.5, df1 = 3, df2 = 6)
+print(density)
+

+

在示例中,我们使用df()函数计算F分布的概率密度函数值。我们指定了自变量x为2.5,分子自由度df1为3,分母自由度df2为6。通过将结果存储在density中,并打印出来,我们可以得到F分布的概率密度函数值。

+

请注意,F分布是用于统计推断中的假设检验和方差分析等问题。您可以根据具体需求调整参数来计算F分布的概率密度函数值。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/df\347\264\242\345\274\225/index.html" "b/R/base-content/df\347\264\242\345\274\225/index.html" new file mode 100644 index 00000000..daeb3032 --- /dev/null +++ "b/R/base-content/df\347\264\242\345\274\225/index.html" @@ -0,0 +1,1592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Df索引 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Df索引

+ +

在 R 语言中,要选出数据框(data frame)中的前多少行,您可以使用索引操作符 [ ] 结合整数索引来实现。下面是几种选取前多少行的方法: +1. 使用基本索引: +

# 示例数据框
+df <- data.frame(x = 1:10, y = letters[1:10])
+
+# 选取前3行
+top_rows <- df[1:3, ]
+

+
    +
  1. +

    使用 head() 函数: +

    # 示例数据框
    +df <- data.frame(x = 1:10, y = letters[1:10])
    +
    +# 选取前3行
    +top_rows <- head(df, n = 3)
    +

    +
  2. +
  3. +

    使用逻辑条件: +

    # 示例数据框
    +df <- data.frame(x = 1:10, y = letters[1:10])
    +
    +# 选取 x 大于5的前3行
    +top_rows <- df[df$x > 5, ][1:3, ]
    +

    +
  4. +
+

以上三种方法都可以用来选取数据框中的前多少行。您可以根据自己的需求选择适合的方法。

+

根据某列中的数据,筛选另一列同行数据

+
# 示例数据框
+df <- data.frame(
+  field1 = c("A", "B", "A", "C", "B"),
+  field2 = c(10, 20, 30, 40, 50)
+)
+
+# 使用基础的数据框子集选择语法
+filtered_values <- df[df$field1 == "A", "field2"]
+
+# 输出结果
+print(filtered_values)
+
+

df[[]]

+

在R语言中,数据框的行和列的选择操作使用了不同的语法。 +- 行选择:要选择数据框的行,可以使用方括号[],并指定需要选择的行的索引或逻辑条件。例如,df[1, ]选择数据框df的第一行。 +- 列选择:要选择数据框的列,有两种常用的方法: + 1. 使用方括号[]并指定需要选择的列的索引或列名。例如,df[, 1]选择数据框df的第一列。这种方式返回的是一个向量。 + 2. 使用双方括号[[]]$符号,通过列名选择数据框的列。例如,df[[1]]df$column_name选择数据框df中名为column_name的列。这种方式返回的是一个向量。 +为什么要使用不同的语法进行行和列的选择呢? +这是因为数据框是一种特殊的对象,在R中它被存储为列表(list)的形式。数据框的每一列都是作为列表的元素存储的,而每一列又可以是不同的数据类型(例如字符型、数值型等)。因此,对于数据框的列选择,需要使用双方括号[[]]$符号来明确指定要选择的列,并返回列向量。 +相比之下,数据框的行选择更加直观和常见,因此可以使用常规的方括号[]来选择行,而不需要使用双方括号[[]]

+

下面是一个示例,演示如何选择数据框的行和列: +

# 创建一个示例数据框
+df <- data.frame(A = c(1, 2, 3), B = c(4, 5, 6), C = c(7, 8, 9))
+
+# 选择行
+df[1, ]  # 选择第一行
+# 输出:
+#   A B C
+# 1 1 4 7
+
+# 选择列(使用索引)
+df[, 1]  # 选择第一列
+# 输出:
+# [1] 1 2 3
+
+# 选择列(使用列名)
+df$A  # 选择名为 "A" 的列
+# 输出:
+# [1] 1 2 3
+
+df[["A"]]  # 选择名为 "A" 的列
+# 输出:
+# [1] 1 2 3
+
+df[[1]]  # 选择第一列
+# 输出:
+# [1] 1 2 3
+

+

希望这样解答了您的疑问。如果您还有其他问题,请随时提问。

+ + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/dim()/index.html b/R/base-content/dim()/index.html new file mode 100644 index 00000000..52956618 --- /dev/null +++ b/R/base-content/dim()/index.html @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dim() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Dim()

+ +

dim() 是 R 语言中用于获取或设置对象的维度的函数。它适用于矩阵、数组和数据框等对象。dim() 函数返回一个整数向量,表示对象的维度。如果对象是一维的,则返回一个长度为 1 的向量。 +

dim(x)
+
+ - x:要获取或设置维度的对象。 +1. 获取矩阵的维度: +
mat <- matrix(1:6, nrow = 2, ncol = 3)
+result <- dim(mat)
+print(result)  # 输出:2 3
+
+在这个示例中,我们创建了一个矩阵 `mat`,然后使用 `dim()` 函数获取矩阵的维度。
+
+2. 获取数组的维度: +
arr <- array(1:24, dim = c(2, 3, 4))
+result <- dim(arr)
+print(result)  # 输出:2 3 4
+
+在这个示例中,我们创建了一个三维数组 `arr`,其维度为 2 × 3 × 4。使用 `dim()` 函数获取数组的维度。
+
+3. 获取数据框的维度: +
df <- data.frame(A = 1:3, B = 4:6, C = 7:9)
+result <- dim(df)
+print(result)  # 输出:3 3
+
+在这个示例中,我们创建了一个数据框 `df`,其中包含 3 行和 3 列。使用 `dim()` 函数获取数据框的维度。
+
+4. 设置矩阵的维度: +
mat <- matrix(1:6, nrow = 2, ncol = 3)
+dim(mat) <- c(3, 2)
+print(dim(mat))  # 输出:3 2
+
+
+在这个示例中,我们创建了一个矩阵 `mat`,然后使用 `dim()` 函数设置矩阵的维度为 3 × 2。
+
+dim() 函数在处理矩阵、数组和数据框时非常有用,可以帮助您获取和设置对象的维度,从而更好地理解和操作数据。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/dimnames()/index.html b/R/base-content/dimnames()/index.html new file mode 100644 index 00000000..4e1577c0 --- /dev/null +++ b/R/base-content/dimnames()/index.html @@ -0,0 +1,1511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dimnames() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Dimnames()

+ +

是 R 语言中用于获取或设置矩阵的行名和列名的函数。它可以用于矩阵对象。dimnames() 函数返回一个包含行名和列名的列表。如果对象没有行名或列名,则返回一个空的列表。 +

dimnames(x)
+
+ - x:要获取或设置行名和列名的对象,通常是矩阵、数据框。 +1. 获取矩阵的行名和列名: +
mat <- matrix(1:6, nrow = 2, ncol = 3)
+rownames(mat) <- c("Row1", "Row2")
+colnames(mat) <- c("Col1", "Col2", "Col3")
+result <- dimnames(mat)
+print(result)
+
+在这个示例中,我们首先创建了一个矩阵 `mat`,然后使用 `rownames()` 函数和 `colnames()` 函数分别为矩阵的行和列设置名称。最后,使用 `dimnames()` 函数获取矩阵的行名和列名。
+
+# 输出结果为:
+$Row.names
+[1] "Row1" "Row2"
+$colnames
+[1] "Col1" "Col2" "Col3"
+
+2. 设置矩阵的行名和列名: +
mat <- matrix(1:6, nrow = 2, ncol = 3)
+dimnames(mat) <- list(c("Row1", "Row2"), c("Col1", "Col2", "Col3"))
+print(dimnames(mat))
+
+在这个示例中,我们创建了一个矩阵 `mat`,然后使用 `dimnames()` 函数为矩阵的行和列设置名称。
+
+# 输出结果为:
+$Row.names
+\[1\] "Row1" "Row2"
+$colnames
+\[1\] "Col1" "Col2" "Col3"
+

+

dimnames() 函数在处理矩阵时非常有用,可以帮助您获取和设置矩阵的行名和列名,从而更好地理解和操作数据。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/dnorm()/index.html b/R/base-content/dnorm()/index.html new file mode 100644 index 00000000..f00b91d8 --- /dev/null +++ b/R/base-content/dnorm()/index.html @@ -0,0 +1,1528 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dnorm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Dnorm()

+ +

是 R 语言中的一个内置函数,用于计算正态分布的概率密度函数(PDF)。也就是正态分布函数(概率密度函数) +

dnorm(x, mean = 0, sd = 1)
+

+

参数说明如下:

+
    +
  • x:要计算概率密度函数的数值
  • +
  • mean:正态分布的均值(默认为 0)。
  • +
  • sd:正态分布的标准差(默认为 1)。
  • +
+

下面是一个示例,展示如何使用 dnorm() 函数计算正态分布的概率密度函数:

+
# 计算均值为 0、标准差为 1 的正态分布在 x = 1 处的概率密度函数值
+pdf <- dnorm(1)
+
+# 打印结果
+print(pdf)
+
+

在上述示例中,我们使用 dnorm() 函数计算均值为 0、标准差为 1 的正态分布在 x = 1 处的概率密度函数值,并将结果存储在名为 pdf 的变量中。

+

然后,我们通过打印 pdf 来查看计算得到的概率密度函数值。

+

请注意,dnorm() 函数计算的是正态分布的概率密度函数。如果需要计算其他均值和标准差的正态分布的概率密度函数,可以通过调整 meansd 参数的值来实现。

+

dnorm(0) 为0.3989423?

+

就是对应x值,在密度曲线上的高 +在R语言中,dnorm()函数用于计算正态分布(高斯分布)的概率密度函数值。该函数需要指定一个输入值(或一组输入值)以及正态分布的均值(mean)和标准差(standard deviation)。 +在您提供的具体示例中,dnorm(0, mean = 0, sd = 1)计算的是在均值为0、标准差为1的正态分布中,输入值为0时的概率密度函数值。 +正态分布的概率密度函数是一个钟形曲线,其最高点位于均值处,标准差决定了曲线的宽度。在标准正态分布(均值为0,标准差为1)中,输入值为0时的概率密度函数值是一个常数。 +具体计算过程如下所示: +- dnorm(0, mean = 0, sd = 1)表示在均值为0、标准差为1的正态分布中,计算输入值为0的概率密度函数值。 +- 标准正态分布的概率密度函数值在输入值为0时是一个常数,其值为0.3989423。 +因此,dnorm(0, mean = 0, sd = 1)的结果为0.3989423。这表示在标准正态分布中,输入值为0的概率密度函数值为0.3989423,即0点处的曲线高度为0.3989423

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/droplevels()/index.html b/R/base-content/droplevels()/index.html new file mode 100644 index 00000000..e37301e2 --- /dev/null +++ b/R/base-content/droplevels()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Droplevels() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Droplevels()

+ +

在R语言中,droplevels()函数用于去除因子(factor)对象中没有出现的水平(levels)

+

函数定义: +

droplevels(x, ...)
+

+

参数: +- x:一个因子对象。 +- ...:可选参数,用于指定其他因子对象。

+

示例: +以下是使用droplevels()函数去除因子中没有出现的水平的示例:

+
# 示例因子
+factor_vector <- factor(c("A", "B", "A", "C", "B", "C"))
+
+# 去除因子中没有出现的水平
+cleared_factor <- droplevels(factor_vector)
+
+# 打印处理后的因子
+print(cleared_factor)
+
+

在上述示例中,我们创建了一个示例因子factor_vector,其中包含了一些水平。

+

然后,我们使用droplevels()函数对factor_vector进行处理,去除了因子中没有出现的水平。

+

最后,我们打印出处理后的因子cleared_factor,它将只包含出现过的水平。

+

以下是打印出的内容:

+
[1] A B A C B C
+Levels: A B C
+
+

在上述输出中,我们可以看到cleared_factor去除了因子中没有出现的水平,仅保留了"A"、"B"和"C"这三个水平。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/dt()/index.html b/R/base-content/dt()/index.html new file mode 100644 index 00000000..4c7b741f --- /dev/null +++ b/R/base-content/dt()/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dt() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Dt()

+ +

是 R 语言中的一个内置函数,用于计算 t 分布的概率密度函数(PDF)值。 +

dt(x, df)
+
+参数说明如下: +- x:要计算概率密度函数的数值。 +- df:t 分布的自由度参数。

+

下面是一个示例,展示如何使用 dt() 函数计算 t 分布的概率密度函数值: +

# 计算自由度为 10 的 t 分布在 x = 1 处的概率密度函数值
+pdf <- dt(1, df = 10)
+
+# 打印结果
+print(pdf)
+

+

在上述示例中,我们使用 dt() 函数计算自由度为 10 的 t 分布在 x = 1 处的概率密度函数值,并将结果存储在名为 pdf 的变量中。

+

然后,我们通过打印 pdf 来查看计算得到的概率密度函数值。

+

请注意,dt() 函数计算的是 t 分布的概率密度函数值。概率密度函数描述了随机变量在给定取值处的概率密度。通过调整 df 参数,可以控制 t 分布的自由度。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/duplicated()/index.html b/R/base-content/duplicated()/index.html new file mode 100644 index 00000000..de1b27c7 --- /dev/null +++ b/R/base-content/duplicated()/index.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Duplicated() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Duplicated()

+ +

在 R 语言中,duplicated() 函数是基础的 R 函数,用于标识向量或数据框中的重复元素。这个函数也不属于特定的包,而是 R 语言的基本函数,可以在不导入其他包的情况下直接使用。

+

功能: 标识向量或数据框中的重复元素

+
# 创建一个向量
+vec <- c(1, 2, 3, 1, 2, 4, 5)
+
+# 使用 duplicated() 查找重复元素
+duplicated_elements <- duplicated(vec)
+
+# 打印结果
+print(duplicated_elements)
+
+# 输出:
+[1] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
+
+

定义: +

duplicated(x, incomparables = FALSE, fromLast = FALSE)
+

+

参数介绍: +- x:要检查重复元素的向量或数据框。 +- incomparables:一个逻辑值或向量,指定在比较元素时是否应将某些值视为不可比较的。默认为 FALSE。 +- fromLast:一个逻辑值,指示是否从向量的末尾开始查找重复元素。默认为 FALSE

+

返回值: +返回一个逻辑向量,长度与输入向量相同,其中 TRUE 表示重复元素,FALSE 表示非重复元素。

+

在这个例子中,duplicated(vec) 返回一个逻辑向量,其中 TRUE 表示输入向量 vec 中的重复元素,而 FALSE 表示非重复元素。通过查看输出,可以看到在向量中哪些元素是重复的。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/expand.grid()/index.html b/R/base-content/expand.grid()/index.html new file mode 100644 index 00000000..5496bc35 --- /dev/null +++ b/R/base-content/expand.grid()/index.html @@ -0,0 +1,1510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Expand.grid() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Expand.grid()

+ +

函数用于生成多个向量的笛卡尔积。它接受多个参数,每个参数都代表一个向量,函数会返回一个数据框,其中包含了所有可能的组合。 +

expand.grid(...)
+
+- ...: 一个或多个向量,用于生成其笛卡尔积。每个参数都应该是一个向量对象,可以是数值向量、字符向量、因子向量等。 +
# 示例数据
+vec1 <- c("A", "B", "C")
+vec2 <- c(1, 2)
+vec3 <- c(TRUE, FALSE)
+
+# 生成笛卡尔积
+result <- expand.grid(vec1, vec2, vec3)
+
+# 打印结果
+print(result)
+

+

在上述示例中,我们有三个向量 vec1vec2vec3,分别包含了不同的元素。通过调用 expand.grid() 函数,并将这三个向量作为参数传递给该函数,我们生成了这三个向量的笛卡尔积。结果存储在 result 中,并通过打印语句输出。 +输出结果如下所示: +

  Var1 Var2  Var3
+1    A    1  TRUE
+2    B    1  TRUE
+3    C    1  TRUE
+4    A    2  TRUE
+5    B    2  TRUE
+6    C    2  TRUE
+7    A    1 FALSE
+8    B    1 FALSE
+9    C    1 FALSE
+10   A    2 FALSE
+11   B    2 FALSE
+12   C    2 FALSE
+

+

在输出结果中,每一行代表一个笛卡尔积的组合,列名以 Var 开头,后面跟着对应的参数序号。例如,Var1 列对应 vec1 的元素,Var2 列对应 vec2 的元素,Var3 列对应 vec3 的元素。这样,我们就得到了所有可能的组合。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/factor()/index.html b/R/base-content/factor()/index.html new file mode 100644 index 00000000..efe92826 --- /dev/null +++ b/R/base-content/factor()/index.html @@ -0,0 +1,1543 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Factor() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Factor()

+ +

在R语言中,factor()函数用于将一个向量转换为因子(factor)类型的数据

+

函数定义: +

factor(x, levels, labels = levels, exclude = NA, ordered = is.ordered(x))
+

+

参数: +- x:要转换为因子的向量或数据。

+
    +
  • +

    levels:指定因子的水平(levels)。可以是一个向量,表示因子的水平值,对应于原始向量vector唯一值。或者是一个整数,表示要将x的唯一值作为水平值。

    +
  • +
  • +

    labels:指定因子水平的标签。可以是一个向量,表示每个水平的标签;或者是一个函数,用于计算标签。

    +
  • +
  • +

    exclude:要排除的值,不包括在因子中。默认为NA。

    +
  • +
  • +

    ordered:是否创建有序因子。如果为TRUE,则创建有序因子;如果为FALSE,则创建无序因子。

    +
  • +
+

示例: +以下是使用factor()函数将向量转换为因子的示例:

+
# 示例向量
+vector <- c("A", "B", "A", "C", "B", "C")
+
+# 将向量转换为因子
+factor_vector <- factor(vector)
+
+# 打印因子
+print(factor_vector)
+
+

在上述示例中,我们创建了一个示例向量vector,其中包含了一些字符元素。

+

然后,我们使用factor()函数将vector转换为因子类型的数据。在示例中,我们没有指定levels参数,因此函数会根据vector中的唯一值自动创建因子的水平。

+

最后,我们打印出转换后的因子factor_vector,它将向量的每个元素转换为对应的因子水平。

+

以下是打印出的内容:

+
[1] A B A C B C
+Levels: A B C
+
+

在上述输出中,我们可以看到因子factor_vector的水平为"A"、"B"和"C",对应于原始向量vector唯一值

+

对x轴的数值进行分类

+

将x轴转化为分类变量,汇总时,能在一张图片上显示多个水平的箱线图。 +Pasted image 20240108103712

+

Pasted image 20240108103742

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/factor/index.html b/R/base-content/factor/index.html new file mode 100644 index 00000000..7cdbc941 --- /dev/null +++ b/R/base-content/factor/index.html @@ -0,0 +1,1539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Factor - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Factor

+ +

R语言中的因子(factors)数据类型是一种用于表示分类变量的特殊类型。它可以将字符型的分类变量转化为有序或无序的因子型变量,便于后续的描述、汇总、可视化和建模等操作。

+

创建因子

+

如何理解R中因子(factor)的概念? - 猴子的回答 - 知乎 +https://www.zhihu.com/question/48472404/answer/164790545

+

在R中,可以使用factor()函数来创建因子。该函数的参数包括: +- x:要创建因子的数据向量。 +- levels:指定因子的各水平值,默认为数据向量中的不重复值。 +- labels:设置各水平的名称,与水平一一对应。 +- ordered:设置是否对因子水平进行排序,默认为FALSE表示无序因子,TRUE表示有序因子。

+

以下是一个创建因子的示例: +

sex <- factor(c('f', 'm', 'f', 'f', 'm'), levels = c('f', 'm'), labels = c('female', 'male'), ordered = TRUE) [[2]](https://blog.csdn.net/weixin_46587777/article/details/124985611)
+

+

使用因子

+

创建完因子后,可以对其进行各种操作,例如排序、统计频数和绘图等。因子具有顺序,可以按照设定的顺序进行操作。

+

可以使用levels()函数来访问或修改因子的水平值。该函数可以用于查看因子的水平值或修改水平值的顺序。

+

以下是一个使用因子的示例: +

levels(sex) # 查看因子的水平值
+

+

因子是以整数向量的形式存储的,每个整数对应一个水平值。这样可以在不改变原始数据的情况下规定顺序,并节省存储空间。

+

总结

+

因子是R语言中用于表示分类变量的数据类型。它可以将字符型的分类变量转化为有序或无序的因子型变量,方便后续的操作和分析。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/format()/index.html b/R/base-content/format()/index.html new file mode 100644 index 00000000..e70b1f87 --- /dev/null +++ b/R/base-content/format()/index.html @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Format() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Format()

+ +

在R语言中,format()函数用于格式化数值或日期时间对象的显示方式

+

函数定义: +

format(x, ...)
+

+

参数: +- x:要格式化的数值、日期时间对象或其他可转换为字符的对象。 +- ...:可选参数,用于指定格式化的选项。

+

示例: +以下是使用format()函数格式化数值和日期时间的示例:

+
# 格式化数值
+num <- 12345.6789
+formatted_num <- format(num, digits = 2, scientific = FALSE)
+print(formatted_num)
+
+# 格式化日期时间
+date <- as.Date("2021-09-30")
+formatted_date <- format(date, format = "%Y-%m-%d")
+print(formatted_date)
+
+

在上述示例中,我们首先定义了一个数值num和一个日期date

+

然后,我们使用format()函数对数值num进行格式化,指定了显示2位小数,并关闭科学计数法。格式化后的结果保存在formatted_num中,并打印出来。

+

接着,我们使用format()函数对日期date进行格式化,指定了日期的格式为年-月-日(%Y-%m-%d)。格式化后的结果保存在formatted_date中,并打印出来。

+

以下是打印出的内容:

+
[1] "12345.68"
+[1] "2021-09-30"
+
+

在上述输出中,我们可以看到数值num被格式化为带有两位小数的字符串,而日期date被格式化为"年-月-日"的形式。

+
# 示例因子
+factor_vector <- factor(c("A", "B", "A", "C", "B", "C"))
+
+# 获取因子的水平数量
+num_levels <- nlevels(factor_vector)
+
+# 打印因子的水平数量
+print(num_levels)
+
+### 结果
+[1] 3
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/function()/index.html b/R/base-content/function()/index.html new file mode 100644 index 00000000..636e8638 --- /dev/null +++ b/R/base-content/function()/index.html @@ -0,0 +1,1539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Function() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Function()

+ +

在 R 语言中,"lambda" 通常指的是匿名函数(anonymous function)。匿名函数是一种无需为其定义名称的函数,可以在需要函数的地方直接定义和使用。R 语言中,你可以使用 function() 关键字来创建匿名函数。

+

下面是匿名函数的一些示例:

+
    +
  1. 基本的匿名函数示例:
  2. +
+
# 定义匿名函数并赋值给变量
+add_one <- function(x) x + 1
+
+# 使用匿名函数
+result <- add_one(3)
+print(result)
+
+

输出: +

[1] 4
+

+

在上述示例中,我们使用 function() 关键字定义了一个匿名函数,并将其赋值给变量 add_one。然后,我们可以像调用其他函数一样调用该匿名函数,并传递参数。

+
    +
  1. 直接在函数调用中定义匿名函数:
  2. +
+
# 使用匿名函数作为参数
+result <- sapply(1:5, function(x) x * 2)
+print(result)
+
+

输出: +

[1]  2  4  6  8 10
+

+

在上述示例中,我们在 sapply() 函数的调用中直接定义了匿名函数。该匿名函数将每个元素乘以 2,并返回结果。

+

匿名函数在需要使用一次性函数或将函数作为参数传递给其他函数时非常有用。你可以根据需要在 R 中创建和使用匿名函数,从而增强代码的灵活性和可读性。

+

...接收任意数量的参数

+

在R语言中,当在函数定义中定义多个参数时,可以使用"..."这个符号简写来表示函数可以接受任意数量的参数。

+

例如,如果你想定义一个函数,该函数接受任意数量的参数,并将它们相加,你可以使用以下代码:

+
add_numbers <- function(...) 
+{    sum <- 0    
+     for (num in list(...)) { 
+      sum <- sum + num    
+      } 
+     return(sum)  }
+
+

在这个例子中,"..."表示函数可以接受任意数量的参数,并将它们存储在一个列表中。然后,通过循环遍历这个列表,将所有参数相加并返回结果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/getwd()/index.html b/R/base-content/getwd()/index.html new file mode 100644 index 00000000..6b5cec80 --- /dev/null +++ b/R/base-content/getwd()/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Getwd() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Getwd()

+ +

在R语言中,getwd()函数用于获取当前的工作目录(working directory)。

+

函数定义: +

getwd()
+

+

参数: +getwd()函数没有任何参数。

+

返回值: +getwd()函数返回一个包含当前工作目录路径的字符向量。

+

示例: +以下是使用getwd()函数获取当前工作目录的示例:

+
# 获取当前工作目录
+current_dir <- getwd()
+
+# 打印当前工作目录
+print(current_dir)
+
+

在上述示例中,我们使用getwd()函数获取当前的工作目录,并将其赋值给变量current_dir

+

接下来,我们使用print()函数打印current_dir,即当前工作目录的路径。

+

请注意,getwd()函数的返回值是一个字符向量,因为在某些情况下,工作目录可能包含多个路径。

+

此外,R语言中还有其他与工作目录相关的函数,例如setwd()函数用于设置工作目录,dir()函数用于列出目录中的文件和子目录等。你可以进一步探索这些函数以满足特定的需求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/glm()/index.html b/R/base-content/glm()/index.html new file mode 100644 index 00000000..15534985 --- /dev/null +++ b/R/base-content/glm()/index.html @@ -0,0 +1,1549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Glm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Glm()

+ +

在R语言中,glm()函数是用于拟合广义线性模型的内置函数。

+

Pasted image 20231122105019

+

函数定义: +

glm(formula, data, family = gaussian, subset, weights, na.action,
+    start = NULL, etastart, mustart, offset, control = list(...),
+    model = TRUE, method = "glm.fit", x = FALSE, y = TRUE, contrasts = NULL,
+    ...)
+

+

参数: +- formula:一个公式,指定了广义线性模型的形式。通常包含自变量和因变量的关系。

+
    +
  • +

    data:一个数据框,包含用于构建模型的所有变量。

    +
  • +
  • +

    family:一个描述误差结构和链接函数的对象。默认为高斯分布,即适用于普通线性回归。 +family = binomial 用于逻辑回归

    +
  • +
  • +

    subset:一个逻辑向量或表达式,用于指定用于拟合模型的子集观测。

    +
  • +
  • weights:一个数值向量,用于为每个观测指定权重。
  • +
  • na.action:一个函数,用于处理缺失值。
  • +
  • start:一个数值向量,用于指定模型参数的初始值。
  • +
  • etastart:一个数值向量,用于指定线性预测器的初始值。
  • +
  • mustart:一个数值向量,用于指定条件均值的初始值。
  • +
  • offset:一个数值向量,用于指定线性预测器的偏移量。
  • +
  • control:一个列表,用于指定控制参数。
  • +
  • model:一个逻辑值,表示是否返回拟合的模型对象。默认为TRUE
  • +
  • method:一个字符,表示用于拟合模型的方法。默认为"glm.fit"。
  • +
  • xycontrasts:这些参数在内部使用,通常不需要手动指定。
  • +
  • ...:其他传递给拟合函数的参数。
  • +
+

下面是一个常见用法的示例:

+
# 创建示例数据
+x <- c(1, 2, 3, 4, 5)
+y <- c(0, 0, 0, 1, 1)
+
+# 拟合逻辑回归模型
+model <- glm(y ~ x, family = binomial)
+
+# 打印模型摘要
+summary(model)
+
+

输出: +

Call:
+glm(formula = y ~ x, family = binomial)
+
+Deviance Residuals: 
+       1         2         3         4         5  
+-1.18972  -1.18972  -1.18972   1.23326   1.23326  
+
+Coefficients:
+            Estimate Std. Error z value Pr(>|z|)  
+(Intercept)    4.605      2.699   1.706   0.0878 .
+x             -1.292      0.932  -1.386   0.1650  
+---
+Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 0.1   1
+
+(Dispersion parameter for binomial family taken to be 1)
+
+    Null deviance: 6.8541  on 4  degrees of freedom
+Residual deviance: 5.9843  on 3  degrees of freedom
+AIC: 9.9843
+
+Number of Fisher Scoring iterations: 4
+

+

在上面的示例中,我们首先创建了自变量向量x和因变量向量y作为示例数据。然后,我们使用glm()函数拟合了一个逻辑回归模型,其中因变量y与自变量x之间的关系由公式y ~ x指定,并使用family = binomial指定了二项分布的链接函数。 +将拟合的模型存储在model变量中。 +最后,我们使用summary()函数打印了模型的摘要。摘要包含了拟合系估计、标准误差、z值、p值以及其他统计指标。 +通过使用glm()函数,您可以根据数据和指定的公式拟合广义线性模型,并对拟合的模型进行统计分析。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/head()/index.html b/R/base-content/head()/index.html new file mode 100644 index 00000000..3a971b5d --- /dev/null +++ b/R/base-content/head()/index.html @@ -0,0 +1,1525 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Head() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Head()

+ +

head() 是一个在 R 中常用的函数,用于查看对象的前几行。 +以下是 head() 函数的一般语法: +

head(x, n = 6)
+
+参数说明: +- x: 要查看的对象,例如向量、列表、数据框等。 +- n: 要显示的行数,默认为 6。

+

以下是 head() 函数的示例: +

# 示例1:向量
+x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+
+# 查看向量的前几行,默认显示前6行
+head(x)
+
+# 示例2:数据框
+df <- data.frame(A = 1:10, B = letters[1:10], C = 11:20)
+
+# 查看数据框的前几行,默认显示前6行
+head(df)
+
+# 示例3:指定显示的行数
+head(df, n = 3)
+

+

输出结果为:

+

示例1的输出结果: +

[1] 1 2 3 4 5 6
+

+

示例2的输出结果: +

   A B  C
+1  1 a 11
+2  2 b 12
+3  3 c 13
+4  4 d 14
+5  5 e 15
+6  6 f 16
+

+

示例3的输出结果: +

  A B  C
+1 1 a 11
+2 2 b 12
+3 3 c 13
+

+

在示例1中,我们创建了一个向量 x,然后使用 head() 函数查看了该向量的前几行,默认显示前6行。

+

在示例2中,我们创建了一个数据框 df,然后使用 head() 函数查看了该数据框的前几行,默认显示前6行。

+

在示例3中,我们使用 head() 函数指定了要显示的行数为3,因此只显示了数据框的前3行。

+

总结来说,head() 函数用于查看对象的前几行,默认显示前6行。你可以使用该函数查看向量、数据框等对象的部分数据。

+

希望这个解释对你有帮助!如果你还有其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/hist()/index.html b/R/base-content/hist()/index.html new file mode 100644 index 00000000..f8d8d807 --- /dev/null +++ b/R/base-content/hist()/index.html @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Hist() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Hist()

+ +

在R语言中,hist()函数用于创建直方图,它将数据分成若干个等宽的区间,并计算每个区间中数据的频数或频率。 +函数定义: +

hist(x, breaks = "Sturges", freq = TRUE, probability = FALSE,
+     density = NULL, angle = 45, col = NULL, border = NULL,
+     main = paste("Histogram of", xname),
+     xlim = range(breaks), ylim = NULL, xlab = xname, ylab,
+     axes = TRUE, plot = TRUE, labels = TRUE, ...)
+
+参数: +- x:要绘制直方图的数据向量或数据框的列。 +- breaks:可选参数,用于指定区间的计算方法。默认为"Sturges",表示使用Sturges公式计算区间。还可以选择其他方法,如"Scott"、"FD"、"sqrt"等,或者直接指定一个整数来表示区间的数量。 +- freq:可选参数,逻辑值,表示是否绘制频数直方图。默认为TRUE,表示绘制频数直方图。如果设置为FALSE,则绘制概率密度直方图。 +- probability:可选参数,逻辑值,表示是否绘制概率密度直方图。默认为FALSE。如果设置为TRUE,则绘制概率密度直方图,总面积将标准化为1。 +- density:可选参数,用于指定密度估计方法。如果设置为NULL(默认),则不进行密度估计。可以选择其他方法,如"kernel"。 +- angle:可选参数,用于指定直方图的填充角度(以度为单位)。默认为45度。 +- col:可选参数,用于指定直方图的填充颜色。 +- border:可选参数,用于指定直方图的边框颜色。 +- main:可选参数,用于指定直方图的标题。 +- xlim:可选参数,用于指定x轴的范围。 +- ylim:可选参数,用于指定y轴的范围。 +- xlab:可选参数,用于指定x轴的标签。 +- ylab:可选参数,用于指定y轴的标签。 +- axes:可选参数,逻辑值,表示是否绘制坐标轴。默认为TRUE。 +- plot:可选参数,逻辑值,表示是否绘制直方图。默认为TRUE。如果设置为FALSE,则只计算直方图并返回结果。 +- labels:可选参数,逻辑值,表示是否在直方图上显示标签。默认为TRUE

+

示例: +

# 示例:创建直方图
+data <- c(1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 5)
+
+# 创建频数直方图
+hist(data, main = "Histogram of Data", xlab = "Value", ylab = "Frequency")
+
+# 创建概率密度直方图
+hist(data, freq = FALSE, main = "Histogram of Data", xlab = "Value", ylab = "Density")
+

+

在示例中,我们首先创建了一个名为data的向量,其中包含一些数据。接下来,我们使用hist()函数创建直方图。

+

第一个例子中,我们使用默认参数创建了一个频数直方图。通过指定mainxlabylab参数,我们设置了直方图的标题、x轴标签和y轴标签。

+

第二个例子中,我们通过将freq参数设置为FALSE,创建了一个概率密度直方图。这将计算每个区间中数据的概率密度,并将直方图的高度标准化为总面积为1。同样,我们使用mainxlabylab参数来设置直方图的标题、x轴标签和y轴标签。

+

请注意,示例中的数据是一个简单的向量,但hist()函数也可以用于处理数据框的列。您可以根据需要调整参数来满足您的要求,如设置边框颜色、密度估计方法等。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/interval()/index.html b/R/base-content/interval()/index.html new file mode 100644 index 00000000..41a94630 --- /dev/null +++ b/R/base-content/interval()/index.html @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Interval() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Interval()

+ +

在R语言中,interval()函数用于创建和操作数值的区间对象

+

函数定义: +

interval(start, end, closed = "left")
+

+

参数: +- start:区间的起始值。 +- end:区间的结束值。 +- closed:可选参数,指定区间的闭合方式。可选值为"left"(默认,左闭右开)、"right"(右闭左开)、"both"(两端闭合)和"neither"(两端开放)。

+

示例: +以下是使用interval()函数创建和操作区间对象的示例:

+
# 创建区间对象
+int1 <- interval(0, 5)
+int2 <- interval(3, 7, closed = "right")
+
+# 操作区间对象
+overlap <- int_overlap(int1, int2)
+union <- int_union(int1, int2)
+intersection <- int_intersection(int1, int2)
+
+# 打印结果
+print(overlap)
+print(union)
+print(intersection)
+
+

在上述示例中,我们首先使用interval()函数创建了两个区间对象int1int2

+

然后,我们使用int_overlap()函数计算了int1int2之间的重叠部分,并将结果保存在overlap中。

+

接着,我们使用int_union()函数计算了int1int2的并集,并将结果保存在union中。

+

最后,我们使用int_intersection()函数计算了int1int2的交集,并将结果保存在intersection中。

+

以下是打印出的内容:

+
[1] 3 4 5
+[1] 0 1 2 3 4 5 6 7
+[1] 3 4 5
+
+

在上述输出中,我们可以看到重叠部分包含了区间3到5,并集包含了区间0到7,交集包含了区间3到5。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/is.infinite()/index.html b/R/base-content/is.infinite()/index.html new file mode 100644 index 00000000..2dd0328b --- /dev/null +++ b/R/base-content/is.infinite()/index.html @@ -0,0 +1,1509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Is.infinite() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Is.infinite()

+ +

在R语言中,is.infinite()函数用于检测一个数值是否为无穷大(infinite)。 +函数定义: +

is.infinite(x)
+
+参数: +- x:要检测是否为无穷大的数值。 +示例: +以下是一些使用is.infinite()函数检测数值是否为无穷大的示例: +
# 示例1:检测无穷大
+x <- Inf
+result <- is.infinite(x)
+print(result)
+# 输出: TRUE
+
+# 示例2:检测非无穷大
+y <- 10
+result <- is.infinite(y)
+print(result)
+# 输出: FALSE
+
+# 示例3:检测向量中的数值是否为无穷大
+nums <- c(1, Inf, -Inf, 5)
+result <- sapply(nums, is.infinite)
+print(result)
+# 输出: FALSE  TRUE  TRUE FALSE
+

+

在上述示例中,我们展示了使用is.infinite()函数检测数值是否为无穷大的不同情况。

+

在示例1中,我们创建了一个无穷大的数值x,然后使用is.infinite()函数检测它是否为无穷大。函数返回TRUE,表示数值为无穷大。

+

在示例2中,我们创建了一个非无穷大的数值y,然后使用is.infinite()函数检测它是否为无穷大。函数返回FALSE,表示数值不是无穷大。

+

在示例3中,我们创建了一个数值向量nums,其中包含了一些有限数值和无穷大数值。我们使用sapply()函数和is.infinite()函数来检测向量中的每个数值是否为无穷大。函数返回一个布尔向量,表示每个数值是否为无穷大。在这个例子中,只有第二个和第三个数值为无穷大,所以返回TRUE,其他数值不是无穷大,返回FALSE

+

通过使用is.infinite()函数,我们可以方便地检测一个数值是否为无穷大,在数值计算和逻辑判断中进行相应的处理。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/is.logical()/index.html b/R/base-content/is.logical()/index.html new file mode 100644 index 00000000..0f33ee20 --- /dev/null +++ b/R/base-content/is.logical()/index.html @@ -0,0 +1,1553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Is.logical() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Is.logical()

+ +

在R语言中,is.logical() 函数是基础的R函数,用于检查对象是否为逻辑型(logical)的。以下是关于 is.logical() 函数的基本信息:

+

is.logical 函数概述:

+

功能: 检查对象是否为逻辑型。

+

所属包: 由于是基础的R函数,因此无需加载任何特定包。

+

定义: +

is.logical(x)
+

+

参数介绍:

+
    +
  • x 要检查的对象。
  • +
+

示例:

+
# 创建一个逻辑型向量
+logical_vector <- c(TRUE, FALSE, TRUE, FALSE)
+
+# 检查向量是否为逻辑型
+result <- is.logical(logical_vector)
+
+# 显示结果
+print(result)
+
+

输出:

+

在上述示例中,is.logical() 函数被用于检查一个逻辑型向量是否为逻辑型。输出结果将是:

+
[1] TRUE
+
+

这表示逻辑型向量确实是逻辑型的。如果你对其他对象使用该函数,输出将根据对象的类型而变化,可能是 TRUEFALSE

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/is.na()/index.html b/R/base-content/is.na()/index.html new file mode 100644 index 00000000..1593a133 --- /dev/null +++ b/R/base-content/is.na()/index.html @@ -0,0 +1,1510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Is.na() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Is.na()

+ +

is.na() 是一个在 R 语言中用于检查缺失值的函数。它返回一个逻辑向量,指示每个元素是否为缺失值。 +

is.na(x)
+

+
    +
  • x: 指定要检查的对象,可以是一个向量、矩阵、数据框或其他 R 对象。
  • +
+

下面是一些示例,展示如何使用 is.na() 函数: +1. 检查向量中的缺失值: +

x <- c(1, 2, NA, 4, NA)
+is.na(x)
+
+输出结果: +
[1] FALSE FALSE  TRUE FALSE  TRUE
+

+

在这个示例中,我们创建了一个包含缺失值的向量 x,然后使用 is.na() 函数检查每个元素是否为缺失值。返回的逻辑向量显示了每个元素的缺失值情况。

+
    +
  1. 检查数据框中的缺失值: +
    df <- data.frame(
    +  x = c(1, 2, NA),
    +  y = c("a", NA, "c")
    +)
    +is.na(df)
    +
    +输出结果: +
          x     y
    +[1,] FALSE FALSE
    +[2,] FALSE  TRUE
    +[3,]  TRUE FALSE
    +
    +在这个示例中,我们创建了一个包含缺失值的数据框 df,然后使用 is.na() 函数检查数据框中的每个元素是否为缺失值。返回的逻辑矩阵显示了每个元素的缺失值情况。
  2. +
+

通过使用 is.na() 函数,你可以在 R 中方便地检测和处理缺失值,以满足数据分析和处理的需求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/is.nan()/index.html b/R/base-content/is.nan()/index.html new file mode 100644 index 00000000..48194336 --- /dev/null +++ b/R/base-content/is.nan()/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Is.nan() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Is.nan()

+ +

是 R 语言中的函数,用于检查给定的值是否为 NaN(不是一个数字)。返回一个逻辑值,如果给定的值是 NaN,则返回 TRUE;否则,返回 FALSE。 +

is.nan(x)
+
+ - x:要检查的值。 +1. 检查单个值是否为 NaN: +
result <- is.nan(NaN)
+print(result)  # 输出:TRUE
+```
+
+在这个示例中,我们使用 `is.nan()` 函数检查 `NaN` 值,函数返回 `TRUE`。
+
+2. 检查向量中的多个值是否为 NaN: +
values <- c(1, NaN, 3, NaN, NA)
+result <- is.nan(values)
+print(result)  # 输出:FALSE  TRUE FALSE  TRUE FALSE
+```
+
+在这个示例中,我们创建了一个包含多个值的向量 `values`,其中包含了 `NaN`、`NA` 和其他数字。使用 `is.nan()` 函数检查向量中的每个值是否为 `NaN`,函数返回一个逻辑型向量,指示每个值是否为 `NaN`。
+

+

is.nan() 函数在处理数值计算和数据处理时非常有用,可以用于检查结果是否为 NaN,以进行错误处理或条件判断。需要注意的是,is.nan() 函数只用于检查 NaN,不适用于检查其他特殊值(如 NAInf)。对于其他特殊值的检查,可以使用相关的函数(如 is.na()is.infinite())。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/is.null()/index.html b/R/base-content/is.null()/index.html new file mode 100644 index 00000000..bfe98641 --- /dev/null +++ b/R/base-content/is.null()/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Is.null() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Is.null()

+ +

在R语言中,is.null()函数用于检测一个对象是否为空(NULL)。 +函数定义: +

is.null(x)
+
+参数: +- x:要检测是否为空的对象。 +示例: +以下是一些使用is.null()函数检测对象是否为空的示例: +
# 示例1:检测空对象
+x <- NULL
+result <- is.null(x)
+print(result)
+# 输出: TRUE
+
+# 示例2:检测非空对象
+y <- 10
+result <- is.null(y)
+print(result)
+# 输出: FALSE
+
+# 示例3:检测函数返回值是否为空
+my_function <- function() {
+  # 函数体
+}
+result <- is.null(my_function())
+print(result)
+# 输出: TRUE
+
+# 示例4:检测列表中的元素是否为空
+my_list <- list(a = NULL, b = 20, c = "Hello")
+result <- sapply(my_list, is.null)
+print(result)
+# 输出:  TRUE FALSE FALSE
+

+

在上述示例中,我们展示了使用is.null()函数检测对象是否为空的不同情况。

+

在示例1中,我们创建了一个空对象x,然后使用is.null()函数检测它是否为空。函数返回TRUE,表示对象为空。

+

在示例2中,我们创建了一个非空对象y,然后使用is.null()函数检测它是否为空。函数返回FALSE,表示对象不为空。

+

在示例3中,我们定义了一个函数my_function(),函数体为空。然后,我们调用函数,并使用is.null()函数检测函数返回值是否为空。由于函数体为空,函数返回空对象NULL,因此is.null()函数返回TRUE

+

在示例4中,我们创建了一个列表my_list,其中包含三个元素。我们使用sapply()函数和is.null()函数来检测列表中每个元素是否为空。函数返回一个布尔向量,表示每个元素是否为空。在这个例子中,第一个元素为NULL,所以返回TRUE,其他元素不为空,返回FALSE

+

通过使用is.null()函数,我们可以方便地检测一个对象是否为空,以进行相应的逻辑处理和条件判断。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/is.numeric()/index.html b/R/base-content/is.numeric()/index.html new file mode 100644 index 00000000..d3028fa8 --- /dev/null +++ b/R/base-content/is.numeric()/index.html @@ -0,0 +1,1526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Is.numeric() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Is.numeric()

+ +

函数是R中的一个内置函数,用于检查给定对象是否为数值型(numeric)。is.numeric()函数用于检查一个对象是否为数值型(numeric)。它返回一个逻辑值,如果对象是数值型,则返回TRUE;否则返回FALSE。 +注意,is.numeric()函数对于整数(integer)也会返回TRUE,因为在R中整数被视为数值型。

+

函数语法: +

is.numeric(x)
+
+参数x代表要检查的对象,可以是任何R语言中的数据类型,包括向量、矩阵、数据框等。

+

函数示例:

+

示例1:检查对象是否为数值型

+
# 检查向量是否为数值型
+x <- c(1, 2, 3)
+is.numeric(x)
+# 输出: TRUE
+
+# 检查整数是否为数值型
+y <- 5L # L表示整数
+is.numeric(y)
+# 输出: TRUE
+
+# 检查字符向量是否为数值型
+z <- c("a", "b", "c")
+is.numeric(z)
+# 输出: FALSE
+
+

示例2:在数据框中检查列是否为数值型

+
# 创建一个数据框
+data <- data.frame(
+  name = c("Alice", "Bob", "Charlie"),
+  age = c(25, 30, 35),
+  salary = c(50000, 60000, 70000)
+)
+
+# 检查age列是否为数值型
+is.numeric(data$age)
+# 输出: TRUE
+
+# 检查name列是否为数值型
+is.numeric(data$name)
+# 输出: FALSE
+
+

示例3:检查一个矩阵是否为数值型

+
# 创建一个矩阵
+mat <- matrix(1:9, nrow = 3, ncol = 3)
+
+# 检查矩阵是否为数值型
+is.numeric(mat)
+# 输出: TRUE
+
+

通过调用is.numeric()函数,我们可以方便地检查对象是否为数值型,以便进行相应的数据处理和处理。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/ks.test()/index.html b/R/base-content/ks.test()/index.html new file mode 100644 index 00000000..8d9484d3 --- /dev/null +++ b/R/base-content/ks.test()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Ks.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Ks.test()

+ +

在 R 语言中,ks.test() 函数用于执行 Kolmogorov-Smirnov 检验,用于比较观测数据与理论分布之间的差异。Kolmogorov-Smirnov 检验常用于检验两个样本是否来自同一连续分布,或者检验观测数据与某个理论分布是否拟合良好。下面是对 ks.test() 函数的参数进行详细介绍和举例:

+

函数语法: +

ks.test(x, y, alternative = c("two.sided", "less", "greater"), exact = NULL, ...)
+

+

参数说明: +- x:一个数据向量或者一个数据矩阵,表示观测数据。 +- y:可选参数,一个字符字符串或函数,表示理论分布的名称或函数。如果提供了 y,则会将观测数据与 y 所表示的理论分布进行比较;如果未提供 y,则默认比较观测数据与标准均匀分布。 +- alternative:用于指定备择假设的类型。可选值为 "two.sided"(双侧检验,默认值)、"less"(左侧检验)和 "greater"(右侧检验)。 +- exact:一个逻辑值或者一个正整数,用于指定是否应该进行精确计算。默认情况下,根据样本量的大小选择适当的近似方法进行计算。 +- ...:其他参数,用于传递给 ks.test() 函数的选项。

+

返回值: +函数返回一个包含 Kolmogorov-Smirnov 检验结果的对象,其中包括统计量、p 值等。

+

示例: +下面是一个使用 ks.test() 函数进行 Kolmogorov-Smirnov 检验的示例:

+
# 生成一个服从正态分布的观测数据
+set.seed(123)
+x <- rnorm(100)
+
+# 使用 ks.test() 进行 Kolmogorov-Smirnov 检验
+result <- ks.test(x, "pnorm")
+
+# 打印 Kolmogorov-Smirnov 检验结果
+print(result)
+
+

在上述示例中,我们首先使用 rnorm() 函数生成一个服从正态分布的观测数据向量 x。然后,我们使用 ks.test() 函数对观测数据 x 进行 Kolmogorov-Smirnov 检验,比较观测数据与标准正态分布进行拟合。最后,我们打印出 Kolmogorov-Smirnov 检验的结果。

+

请注意,ks.test() 函数还可以用于比较观测数据与其他理论分布,例如指数分布、均匀分布等。你可以根据实际需要传递不同的参数来执行相应的 Kolmogorov-Smirnov 检验,并根据检验结果进行数据分析和解释。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/lambda/index.html b/R/base-content/lambda/index.html new file mode 100644 index 00000000..08689b75 --- /dev/null +++ b/R/base-content/lambda/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Lambda - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Lambda

+ +

lambda函数

+

在R语言中,Lambda函数的概念并不像Python那样直接提供内置的lambda关键字。然而,R语言提供了类似的功能,可以使用匿名函数来实现类似的效果。 +在R语言中,可以使用function()函数来创建匿名函数,其语法如下: +

function(arg1, arg2, ...) { expression }
+
+其中,arg1, arg2, ...是函数的参数列表,可以包含零个或多个参数,用逗号分隔。expression是一个单行的表达式,表示匿名函数要执行的操作,并返回表达式的结果。 +以下是一个示例,展示了如何使用匿名函数(类似于Lambda函数)计算两个数的和: +
add <- function(x, y) { x + y }
+result <- add(5, 3)
+print(result)  # 输出: 8
+
+在上述示例中,function(x, y) { x + y }定义了一个接受两个参数 xy 的匿名函数,它将这两个参数相加并返回结果。使用add变量保存这个匿名函数,并通过add(5, 3)进行调用,得到结果8。 +尽管在R语言中没有直接的lambda关键字,但通过使用function()函数,可以实现类似的匿名函数功能,达到类似Lambda函数的效果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/lapply()/index.html b/R/base-content/lapply()/index.html new file mode 100644 index 00000000..f1f05ceb --- /dev/null +++ b/R/base-content/lapply()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Lapply() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Lapply()

+ +

lapply() 是R语言中的一个函数,用于对列表(list)的每个元素应用指定的函数。这个函数返回一个列表,其中包含应用了指定函数的每个元素的结果。

+

语法如下:

+
lapply(X, FUN, ...)
+
+
    +
  • X:要应用函数的列表(或其他可迭代对象)。
  • +
  • FUN:要应用于每个列表元素的函数。
  • +
  • ...:用于传递给函数 FUN 的其他参数。
  • +
+

下面是一个简单的例子,演示了 lapply() 的基本用法:

+
# 创建一个列表
+my_list <- list(a = 1:5, b = 6:10, c = 11:15)
+
+# 定义一个函数,计算每个向量的平均值
+calculate_mean <- function(x) {
+  return(mean(x))
+}
+
+# 使用lapply应用函数
+result <- lapply(my_list, calculate_mean)
+
+# 结果是一个列表,包含每个向量的平均值
+print(result)
+
+

在这个例子中,lapply()calculate_mean 函数应用于 my_list 中的每个向量,返回一个包含每个向量平均值的列表。

+

lapply() 通常用于对列表的每个元素执行相同的操作,而不需要修改原始列表的结构。如果需要更灵活的操作,并且可能修改列表结构,则可能需要使用 sapply()mapply() 这样的函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/last()/index.html b/R/base-content/last()/index.html new file mode 100644 index 00000000..038c051d --- /dev/null +++ b/R/base-content/last()/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Last() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Last()

+ +

在 R 中,last() 函数用于返回向量、列表或数据框的最后一个元素或行。 +以下是 last() 函数的一般语法: +

last(x, n = 1)
+
+参数说明: +- x:要提取最后元素的向量、列表或数据框。 +- n:要返回的元素或行数,默认为 1,表示返回最后一个元素或行。如果设置为大于 1 的整数,则返回最后 n 个元素或行。 +下面是一些示例,演示如何使用 last() 函数: +
# 示例1:向量
+x <- c(3, 1, 4, 1, 5, 9)
+
+# 提取向量的最后一个元素
+last_element <- last(x)
+print(last_element)
+
+# 示例2:列表
+my_list <- list(a = 1, b = 2, c = 3, d = 4)
+
+# 提取列表的最后一个元素
+last_element <- last(my_list)
+print(last_element)
+
+# 示例3:数据框
+my_df <- data.frame(x = c(1, 2, 3), y = c("a", "b", "c"))
+
+# 提取数据框的最后一行
+last_row <- last(my_df)
+print(last_row)
+

+

输出结果为:

+
[1] 9
+
+$a
+[1] 4
+
+  x y
+3 3 c
+
+

在上述示例中,我们使用了不同类型的数据结构。首先,我们创建了一个向量 x,然后使用 last() 函数提取了向量的最后一个元素,并将结果存储在 last_element 中。接下来,我们创建了一个列表 my_list,使用 last() 函数提取了列表的最后一个元素,并将结果存储在 last_element 中。最后,我们创建了一个数据框 my_df,使用 last() 函数提取了数据框的最后一行,并将结果存储在 last_row 中。 +总结来说,last() 函数用于提取向量、列表或数据框的最后一个元素或行。你可以根据需要调整参数来获取最后一个元素或多个元素。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/length()/index.html b/R/base-content/length()/index.html new file mode 100644 index 00000000..1e50e50c --- /dev/null +++ b/R/base-content/length()/index.html @@ -0,0 +1,1562 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Length() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Length()

+ +

在R语言中,length()函数用于获取对象的长度,即对象中元素的个数。 +

length(object)
+
+- object:要计算长度的对象,可以是向量、列表、矩阵、数据框等。

+
    +
  1. +

    获取向量的长度: +

    my_vector <- c(1, 2, 3, 4, 5)
    +length(my_vector)
    +
    +输出结果为 5,表示向量 my_vector 中有 5 个元素。

    +
  2. +
  3. +

    获取列表的长度: +

    my_list <- list(a = 1, b = 2, c = 3)
    +length(my_list)
    +
    +输出结果为 3,表示列表 my_list 中有 3 个元素。

    +
  4. +
  5. +

    获取矩阵的长度: +

    my_matrix <- matrix(1:6, nrow = 2)
    +length(my_matrix)
    +
    +输出结果为 6,表示矩阵 my_matrix 中有 6 个元素。

    +
  6. +
  7. +

    获取数据框的长度(行数): +

    my_df <- data.frame(a = 1:3, b = c("x", "y", "z"))
    +length(my_df)
    +
    +输出结果为 3,表示数据框 my_df 中有 3 行。

    +
  8. +
+

length()函数对于确定对象的大小和维度非常有用。它适用于各种类型的对象,并且可以帮助您在处理数据时获取有关对象结构的信息。

+

NA值(缺失值)影响,sum(is.na())

+

当使用length()函数计算一个向量的长度时,如果向量中包含缺失值(NA),则该缺失值将被计算在内。 +下面是一个示例来说明这一点: +

# 创建一个包含缺失值的向量
+vec <- c(1, 2, NA, 4, NA)
+
+# 计算向量的长度
+len <- length(vec)
+
+# 输出结果
+print(len)
+
+输出结果为: +
[1] 5
+

+

在上述示例中,向量vec包含了两个缺失值(NA)。然而,使用length()函数计算向量的长度时,缺失值会被视为有效值,并被计算在内,因此向量的长度为5。 +如果你想忽略缺失值,只计算有效值的数量,可以使用sum(!is.na(vec))来计算非缺失值的个数。例如: +

# 计算非缺失值的个数
+valid_len <- sum(!is.na(vec))
+
+# 输出结果
+print(valid_len)
+
+输出结果为: +
[1] 3
+
+在上述示例中,使用sum(!is.na(vec))计算了向量vec中非缺失值的个数,结果为3。这样可以排除缺失值,只计算有效值的数量。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/levels()/index.html b/R/base-content/levels()/index.html new file mode 100644 index 00000000..1b369483 --- /dev/null +++ b/R/base-content/levels()/index.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Levels() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Levels()

+ +

在R语言中,levels()函数用于获取因子(factor)对象的水平(levels)

+

函数定义: +

levels(x)
+

+

参数: +- x:一个因子对象。

+

示例: +以下是使用levels()函数获取因子的水平的示例:

+
# 示例因子
+factor_vector <- factor(c("A", "B", "A", "C", "B", "C"))
+
+# 获取因子的水平
+factor_levels <- levels(factor_vector)
+
+# 打印因子的水平
+print(factor_levels)
+
+

在上述示例中,我们创建了一个示例因子factor_vector,其中包含了一些水平。

+

然后,我们使用levels()函数获取factor_vector的水平,并将结果保存在factor_levels中。

+

最后,我们打印出factor_levels,它包含了factor_vector的水平。

+

以下是打印出的内容:

+
[1] "A" "B" "C"
+
+

在上述输出中,我们可以看到factor_vector的水平为"A"、"B"和"C"。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/leveneTest()/index.html b/R/base-content/leveneTest()/index.html new file mode 100644 index 00000000..50ad444b --- /dev/null +++ b/R/base-content/leveneTest()/index.html @@ -0,0 +1,1571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + leveneTest() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

leveneTest()

+ +

leveneTest函数概述:

+

功能: leveneTest()函数用于执行Levene's test(列文检验),用于检验多个组的方差是否相等。这个检验通常用于方差分析(ANOVA)等统计方法,因为这些方法在假设组内方差相等的情况下更为有效。

+

所属包: leveneTest函数属于car包(Companion to Applied Regression)。

+

定义: +

leveneTest(y, group, center = "median")
+

+

参数介绍:

+
    +
  • +

    y 数值型向量,包含观测值。

    +
  • +
  • +

    group 分组变量,用于指定观测值所属的组别。

    +
  • +
  • +

    center 中心化选项,用于指定如何中心化数据。默认为"median",可选的还有"mean"。

    +
  • +
+

示例:

+
# 安装并加载car包
+install.packages("car")
+library(car)
+
+# 创建两个组的数据(示例数据)
+group1 <- c(23, 25, 28, 30, 32)
+group2 <- c(18, 20, 24, 28, 30)
+
+# 执行Levene's test
+result <- leveneTest(c(group1, group2), group = rep(c("Group1", "Group2"), each = 5), center = "median")
+
+# 显示结果
+print(result)
+
+

输出:

+

示例中的输出结果将包含Levene's test的统计量(W)、自由度(DF1,DF2)和p值(Pr(>W))。具体输出信息将类似于:

+
Levene's Test for Homogeneity of Variance (center = median)
+      Df F value Pr(>F)
+group  1  0.0667 0.7996
+      8
+
+

这个输出提供了Levene's test的统计量(F value)、自由度(DF1,DF2)以及p值(Pr(>F))。在这个示例中,你可以查看p值来判断是否拒绝了组内方差相等的假设。

+ + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/list()/index.html b/R/base-content/list()/index.html new file mode 100644 index 00000000..6e2a6afa --- /dev/null +++ b/R/base-content/list()/index.html @@ -0,0 +1,1578 @@ + + + + + + + + + + + + + + + + + + + + + + + + + List() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

List()

+ +

list() 是 R 语言中用于创建列表(list)的函数。

+

这边的列表跟python中的列表有些差异,是一个个组成成分构建起来的。

+

list(...)
+
+...:列表中的元素,可以是任意数量的对象,例如标量、向量、矩阵、数据框等。

+

示例 1:创建一个简单的列表 +

my_list <- list("apple", 2, TRUE)
+print(my_list)
+

+

输出结果为: +

[[1]]
+[1] "apple"
+
+[[2]]
+[1] 2
+
+[[3]]
+[1] TRUE
+

+

示例 2:创建一个包含向量和矩阵的列表 +

vec <- c(1, 2, 3)
+mat <- matrix(1:6, nrow = 2)
+my_list <- list(vec, mat)
+print(my_list)
+

+

输出结果为: +

[[1]]
+[1] 1 2 3
+
+[[2]]
+     [,1] [,2] [,3]
+[1,]    1    3    5
+[2,]    2    4    6
+

+

示例 3:创建一个嵌套的列表 +

inner_list <- list("x", "y", "z")
+my_list <- list(1, inner_list, 3)
+print(my_list)
+

+

输出结果为: +

[[1]]
+[1] 1
+
+[[2]]
+[[2]][[1]]
+[1] "x"
+
+[[2]][[2]]
+[1] "y"
+
+[[2]][[3]]
+[1] "z"
+
+
+[[3]]
+[1] 3
+

+

非常抱歉给您带来的困扰,我会尽力确保提供正确的代码格式。如果您有其他问题,请随时告诉我。

+

lt$com3的意义

+

是一个表达式中的一部分,它表示对象 lt 中名为 "com3" 的成员或元素。这种表示方式通常用于访问列表、数据框或其他具有命名成员的对象中的特定成员。

+

以下是关于 lt$com3 的解释和示例:

+
    +
  • 假设存在一个名为 lt 的列表对象,其中包含了多个命名的成员。例如:
  • +
+
lt <- list(com1 = "Value 1", com2 = "Value 2", com3 = "Value 3")
+```
+
+这个列表对象 `lt` 包含了三个成员,分别是 `"com1"`、`"com2"` 和 `"com3"`。每个成员都有一个对应的值。
+
+
    +
  • lt$com3 表达式表示通过列表对象 lt 访问名为 "com3" 的成员。在这个示例中,它将返回字符串 "Value 3",即 lt 列表对象中 "com3" 成员的值。
  • +
+
lt$com3
+```
+
+输出结果为 `"Value 3"`。
+
+

使用 $ 符号可以方便地从列表、数据框等对象中获取特定成员的值,只需指定成员的名称即可。这种语法使得代码更加简洁和易读。请注意,$ 符号适用于具有命名成员的对象,而不适用于非命名的向量或矩阵。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/lm()/index.html b/R/base-content/lm()/index.html new file mode 100644 index 00000000..96500bd2 --- /dev/null +++ b/R/base-content/lm()/index.html @@ -0,0 +1,1591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Lm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Lm()

+ +

在R语言中,lm()函数是用于拟合线性回归模型的内置函数

+

函数定义: +

lm(formula, data, subset, weights, na.action,
+   method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE,
+   contrasts = NULL, offset, ...)
+

+

参数: +- formula:一个公式,指定了回归模型的形式。通常包含自变量和因变量的关系。形式是y ~ x,可以直接用data中的列标题,如

+
一元回归:column1~column2
+
+多元回归:column1~column2+column3+...
+
+
    +
  • +

    data:一个数据框,包含用于构建模型的所有变量

    +
  • +
  • +

    subset:一个逻辑向量或表达式,用于指定用于拟合模型的子集观测。

    +
  • +
  • +

    weights:一个数值向量,用于为每个观测指定权重

    +
  • +
  • +

    na.action:一个函数,用于处理缺失值

    +
  • +
  • +

    method:一个字符,表示用于拟合模型的方法。默认为"qr",表示使用QR分解方法。

    +
  • +
  • +

    model:一个逻辑值,表示是否返回拟合的模型对象。默认为TRUE

    +
  • +
  • +

    xyqrsingular.ok:这些参数在内部使用,通常不需要手动指定。

    +
  • +
  • +

    contrasts:一个列表,用于指定变量的对比方式。

    +
  • +
  • +

    offset:一个数值向量,用于指定线性预测器的偏移量。

    +
  • +
  • +

    ...:其他传递给拟合函数的参数。

    +
  • +
+
# 创建示例数据
+x <- c(1, 2, 3, 4, 5)
+y <- c(2, 4, 6, 8, 10)
+
+# 拟合线性回归模型
+model <- lm(y ~ x)
+
+# 打印模型摘要
+summary(model)
+
+

输出: +

Call:
+lm(formula = y ~ x)
+
+Residuals:
+     1      2      3      4      5 
+-5e-16  0e+00  0e+00  0e+00  0e+00 
+
+Coefficients:
+Estimate Std. Error   t value Pr(>|t|)    
+(Intercept)  1.332e-15  1.014e-15  1.314e+00    0.268    
+x            2.000e+00  1.157e-16  1.729e+16   <2e-16 ***
+---
+Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 0.1   1
+
+Residual standard error: 8.659e-16 on 3 degrees of freedom
+Multiple R-squared:      1, Adjusted R-squared:      1 
+F-statistic: 2.988e+32 on 1 and 3 DF,  p-value: < 2.2e-16
+

+

在上面的示例中,我们首先创建了自变量向量x和因变量向量y作为示例数据。然后,我们使用lm()函数拟合了一个线性回归模型,其中因变量y与自变量x之间的关系由公式y ~ x指定。将拟合的模型存储在model变量中。 +最后,我们使用summary()函数打印了模型的摘要。摘要包含了拟合系数估计、标准误差、t值、p值以及其他统计指标。 +通过使用lm()函数,您可以根据数据和指定的公式拟合线性回归模型,并对拟合的模型进行统计分析。

+

y ~ x或column1~column2

+

使用lm()函数进行线性回归时,可以使用公式语法指定自变量和因变量y~x。 +在公式中,y ~ x表示因变量y与自变量x之间的关系。 +当提供data参数时,R会自动在data中查找与公式中的变量名匹配的列向量。 +数据集的变量名就需要为x、y +如果在data中找不到与公式中变量名相匹配的列,R会发出错误提示

+

更复杂的公式: +1. 多项式回归:如果你想拟合一个多项式回归模型,你可以使用 ^ 符号指定多项式的次数。例如,lm(y ~ x^2) 会拟合一个二次多项式模型。 +2. 交互项和交互项:使用 : 符号来添加交互项。例如,lm(y ~ x1:x2) 会创建一个 x1 和 x2 的交互项。 +3. 交互项和交互项的交互项:使用 # 符号来创建更高阶的交互项。例如,lm(y ~ x1#x2) 会创建一个 x1 和 x2 的二阶交互项。 +4. 虚拟变量(也称为哑变量):如果你想在模型中包含分类变量,并想将它们转化为虚拟变量,你可以使用 as.factor() 函数或者在公式中使用 - 符号。例如,lm(y ~ factor(x) + z) 或 lm(y ~ x - z)。 +5. 非线性模型:虽然 lm() 函数主要用于线性模型,但你可以通过添加非线性函数来创建非线性模型。例如,lm(y ~ poly(x, 2, raw=TRUE)) 会创建一个包含 x 的二次多项式的非线性模型。 +6. 基于函数的预测变量:你也可以使用自定义函数来转换预测变量。例如,lm(y ~ log(x)) 会创建一个以 x 的对数为预测变量的模型。 +7. 混合效应模型:如果你想拟合一个混合效应模型(也称为随机效应模型),你可以使用 lme() 或 lmer() 函数,这两个函数比 lm() 提供了更多的灵活性。 +8. 广义线性模型(GLM):这是更一般的线性模型形式,允许因变量的分布除了正态分布外还有其他的分布形式,例如二项分布、泊松分布等。可以使用 glm() 函数来拟合这些模型。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/matrix()/index.html b/R/base-content/matrix()/index.html new file mode 100644 index 00000000..2ef514a9 --- /dev/null +++ b/R/base-content/matrix()/index.html @@ -0,0 +1,1534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Matrix() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Matrix()

+ +

是用于创建矩阵(Matrix)的函数。矩阵是一个二维的数据结构,由行和列组成,其中每个元素都具有相同的数据类型matrix() 函数根据给定的参数创建一个矩阵,并返回该矩阵对象。 +

matrix(data, nrow, ncol, byrow, dimnames)
+

+
    +
  • +

    data:要填充到矩阵中的数据。可以是向量或二维数组

    +
  • +
  • +

    nrow:矩阵的行数。

    +
  • +
  • +

    ncol:矩阵的列数。

    +
  • +
  • +

    byrow:(可选)一个逻辑值,指示是否按行填充数据。默认为 FALSE按列填充

    +
  • +
  • +

    dimnames:(可选)一个包含行名和列名的列表

    +
  • +
  • +

    创建矩阵: +

    mat <- matrix(data = 1:6, nrow = 2, ncol = 3)
    +print(mat)
    +
    +在这个示例中,我们使用 `matrix()` 函数创建一个矩阵,数据由 1  6 组成,行数为 2,列数为 3。
    +
    +# 输出结果为:
    +     [,1] [,2] [,3]
    +[1,]    1    3    5
    +[2,]    2    4    6
    +

    +
  • +
  • 按行填充数据: + ```R + mat <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE) + print(mat)
  • +
+

在这个示例中,我们使用 matrix() 函数创建一个矩阵,数据由 1 到 6 组成,行数为 2,列数为 3,并按行填充数据。

+

# 输出结果为: + [,1] [,2] [,3] + [1,] 1 2 3 + [2,] 4 5 6

+

``` +3. 添加行名和列名: +

mat <- matrix(data = 1:6, nrow = 2, ncol = 3,
+              dimnames = list(c("Row1", "Row2"), c("Col1", "Col2", "Col3")))
+print(mat)
+
+在这个示例中,我们使用 `matrix()` 函数创建一个矩阵,数据由 1  6 组成,行数为 2,列数为 3,并为行和列添加名称。
+
+# 输出结果为:
+    Col1 Col2 Col3
+Row1    1    3    5
+Row2    2    4    6
+

+

matrix() 函数在创建矩阵时非常有用,可以根据提供的数据、行数、列数和其他参数来生成所需的矩阵。您可以使用 matrix() 函数创建数值矩阵、字符型矩阵或其他类型的矩阵,还可以选择按行或按列填充数据,并为行和列添加名称。这些功能使得 matrix() 函数成为处理二维数据结构的强大工具。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/mean()/index.html b/R/base-content/mean()/index.html new file mode 100644 index 00000000..852ed827 --- /dev/null +++ b/R/base-content/mean()/index.html @@ -0,0 +1,1524 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Mean() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Mean()

+ +

mean()函数用于计算数值向量的平均值。它是R语言中的基本统计函数之一。 +

mean(x, trim = 0, na.rm = FALSE)
+

+
    +
  • +

    x:表示要计算平均值的数值向量。

    +
  • +
  • +

    trim:一个介于0和1之间的可选参数,用于指定要修剪的数据的比例。默认值为0,表示不进行修剪。

    +
  • +
  • +

    na.rm:一个逻辑值,表示是否在计算平均值时忽略缺失值(NA)。默认为FALSE,即不忽略缺失值;如果设置为TRUE,则在计算平均值时会忽略缺失值。

    +
  • +
  • +

    计算向量的平均值: +

    x <- c(1, 3, 5, 7, 9)
    +mean(x)
    +
    +输出示例: +
    [1] 5
    +
    +在这个示例中,我们计算了向量x的平均值,结果为5。

    +
  • +
  • +

    忽略缺失值的平均值计算: +

    y <- c(1, 2, NA, 4, 5)
    +mean(y, na.rm = TRUE)
    +
    +输出示例: +
    [1] 3
    +
    +在这个示例中,我们使用了na.rm = TRUE参数,表示在计算平均值时忽略缺失值。结果中的NA被忽略,计算的平均值为3。

    +
  • +
  • +

    进行修剪的平均值计算: +

    z <- c(1, 2, 3, 4, 5)
    +mean(z, trim = 0.2)
    +
    +输出示例: +
    [1] 3
    +
    +在这个示例中,我们使用了trim = 0.2参数,表示对数据进行修剪,去掉最低和最高的20%。计算的平均值为3。

    +
  • +
+

这些示例展示了mean()函数的一些常见用法。您可以根据需要使用mean()函数来计算数值向量的平均值,并进行缺失值处理或数据修剪。

+

希望这些示例能帮助您理解mean()函数的用法。如果您有任何其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/merge()/index.html b/R/base-content/merge()/index.html new file mode 100644 index 00000000..07532352 --- /dev/null +++ b/R/base-content/merge()/index.html @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Merge() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Merge()

+ +

在R语言中,merge()函数用于合并两个或多个数据框(data frame)或数据集(data set)。

+

函数定义: +

merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by,
+      all = FALSE, all.x = all, all.y = all,
+      sort = TRUE, suffixes = c(".x", ".y"),
+      incomparables = NULL, ...)
+

+

参数: +以下是merge()函数中常用的参数: +- x:要合并的第一个数据框或数据集。 +- y:要合并的第二个数据框或数据集。 +- by:指定用于合并的变量(列) 的名称或位置。默认情况下,它是xy中共有的列名。 +- by.x:指定x数据框中用于合并的变量(列)的名称或位置。默认值为by。 +- by.y:指定y数据框中用于合并的变量(列)的名称或位置。默认值为by。 +- all:逻辑值,指定是否包括所有的观测值。如果为FALSE(默认值),则只包括在xy中共有的观测值。如果为TRUE,则包括所有观测值,缺失值用NA填充。 +- all.x:逻辑值,指定是否包括x中的所有观测值。如果为FALSE(默认值),则只包括在xy中共有的观测值。如果为TRUE,则包括x中的所有观测值,缺失值用NA填充。 +- all.y:逻辑值,指定是否包括y中的所有观测值。如果为FALSE(默认值),则只包括在xy中共有的观测值。如果为TRUE,则包括y中的所有观测值,缺失值用NA填充。 +- sort:逻辑值,指定是否对合并后的数据框进行排序。如果为TRUE(默认值),则按照合并的列进行排序;如果为FALSE,则保持合并前的观测值顺序不变。 +- suffixes:用于在合并时处理重复列名的后缀。默认情况下,通过在xy中重复的列名后添加.x.y后缀来区分它们。

+
    +
  • +

    incomparables:指定在合并时如何处理不可比较的值。

    +
  • +
  • +

    ...:其他可选参数,用于传递给底层的合并函数。

    +
  • +
+

示例: +以下是使用merge()函数合并两个数据框的示例:

+
# 创建两个数据框
+df1 <- data.frame(ID = c(1, 2, 3), Name = c("John", "Alice", "Bob"))
+df2 <- data.frame(ID = c(2, 3, 4), Age = c(25, 30, 35))
+
+# 合并数据框
+merged_df <- merge(df1, df2, by = "ID")
+
+# 打印合并后的数据框
+print(merged_df)
+
+

在上述示例中,我们首先创建了两个数据框df1df2,分别包含ID和Name列,以及ID和Age列。

+

然后,我们使用merge()函数将两个数据框按照ID列进行合并。由于ID列在两个数据框中都存在,因此我们不需要显式指定by参数。

+

最后,我们打印合并后的数据框merged_df,它包含了合并前两个数据框中共有的ID列,并将Name和Age列合并在一起。

+

请注意,上述示例仅演示了基本用法,更多详细的参数和选项可以参考R语言的官方文档或使用?merge命令查看函数的帮助文档。

+

与join的区别

+

在R语言中,*_join()函数和merge()函数都用于合并数据集,但它们的用法和行为有一些区别。

+

*_join()函数是dplyr包中的函数(如left_join()inner_join()right_join()full_join()等),而merge()函数是基础的R函数。

+

下面是*_join()函数和merge()函数的一些区别:

+
    +
  1. 语法和用法:
  2. +
  3. *_join()函数:这些函数的语法形式为x_join(x, y, by = ..., ...),其中xy表示要合并的数据集,by表示用于匹配的变量。
  4. +
  5. +

    merge()函数:该函数的语法形式为merge(x, y, by = ..., ...),其中xy表示要合并的数据集,by表示用于匹配的变量。

    +
  6. +
  7. +

    匹配方式:

    +
  8. +
  9. *_join()函数:这些函数默认使用基于变量的内连接(inner join),也可以根据需要指定其他类型的连接,如左连接(left join)、右连接(right join)和全连接(full join)。
  10. +
  11. +

    merge()函数:该函数默认使用基于变量的内连接(inner join),也可以根据需要指定其他类型的连接,如左连接(left join)、右连接(right join)和外连接(outer join)。

    +
  12. +
  13. +

    数据集类型:

    +
  14. +
  15. *_join()函数:这些函数可以直接操作dplyr包中的数据框(tibble)对象,也可以操作其他类型的数据对象,如数据框(data.frame)。
  16. +
  17. +

    merge()函数:该函数可以操作基本的R数据对象,如数据框(data.frame)。

    +
  18. +
  19. +

    默认行为:

    +
  20. +
  21. *_join()函数:这些函数在合并过程中会保留匹配的列,并根据需要添加前缀以区分来自不同数据集的变量。
  22. +
  23. merge()函数:该函数在合并过程中默认不保留匹配的列,并且不添加前缀。
  24. +
+

需要注意的是,*_join()函数是dplyr包中的功能强大的函数,提供了更直观、易用和一致的语法,尤其适合在数据分析和数据处理中使用。而merge()函数是R的基础函数,适用于基本的数据合并操作。

+

总的来说,*_join()函数和merge()函数在语法和用法上有所差异,并且*_join()函数提供了更丰富的连接选项和更方便的操作。

+

如果您有任何进一步的问题,请随时提问!

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/mode()\344\274\227\346\225\260/index.html" "b/R/base-content/mode()\344\274\227\346\225\260/index.html" new file mode 100644 index 00000000..ac4a7fcd --- /dev/null +++ "b/R/base-content/mode()\344\274\227\346\225\260/index.html" @@ -0,0 +1,1600 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Mode()众数 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Mode()众数

+ +

在 R 语言中,没有内置函数直接计算众数(mode),因为众数不像均值或中位数那样是基本的统计量。众数是数据集中出现次数最多的值。但是,你可以用几种方法来计算众数。

+

单个众数的情况

+

一种简单的方法是使用 table() 函数来构建频率表(因子类型???),然后使用 which.max() 函数找到最大值对应的索引,像这样: +1,推荐 +

names(which.max(table(data_q1$viewers))
+

+
d <- c(4,5,3,1,6,7,8,9,11,12,32,1,3,4,5,5)
+
+table(d) # 生成频率表,带有向量名和对应频率值
+which.max(table(d)) # 上面是名称5,下面最大频率对应的索引值4
+names(which.max(table(d))) # 取名称
+
+names(table(d))
+
+

Pasted image 20231226164828

+
d <- c(2,1,3,4,5,6,7,8,9,0,11,12,32,1,3,4)
+
+table(d) # 生成频率表,带有向量名和对应频率值
+which.max(table(d)) # 上面是名称1,下面最大频率对应的索引值2
+names(which.max(table(d))) 
+
+names(table(d))
+
+

Pasted image 20231226131407

+

2, +

# 定义一个计算众数的函数
+Mode <- function(x) {
+  ux <- unique(x)
+  ux[which.max(tabulate(match(x, ux)))]
+}
+
+# 创建一个示例向量
+x <- c(1, 2, 2, 3, 3, 3, 4, 4, 4, 4)
+
+# 调用自定义的众数函数
+mode_value <- Mode(x)
+print(mode_value)
+

+

如果你有 dplyr 包安装,也可以使用 dplyr 的功能来计算众数,例如:

+
library(dplyr)
+
+# 使用 dplyr 计算众数
+mode_value <- x %>%
+  as.data.frame() %>%
+  group_by(value = x) %>%
+  summarise(count = n()) %>%
+  arrange(desc(count)) %>%
+  slice(1) %>%
+  pull(value)
+
+print(mode_value)
+
+

请注意,如果数据中有多个众数(也就是说,有多个值拥有相同的最高频率),上述两种方法都只会返回其中一个。如果你想要返回所有众数,需要对函数进行修改,以便它能够处理这种情况。

+

多个众数的情况

+

在存在多个众数的情况下,你可以通过编写一个自定义的 R 函数来找出所有的众数。这个函数将使用 table() 函数来创建一个频率表,并找出所有出现频率最高的值。这里有一个简单的函数定义示例:

+
Mode <- function(x) {
+  freq_table <- table(x)
+  mode_values <- names(freq_table[freq_table == max(freq_table)])
+  as.numeric(mode_values)
+}
+
+# 创建一个含有多个众数的向量
+x <- c(1, 1, 2, 2, 3, 3, 4)
+
+# 调用自定义的众数函数
+mode_values <- Mode(x)
+print(mode_values)
+
+## 输出
+# [1, 2, 3]
+
+

在这个函数中:

+
    +
  1. table(x) 计算向量 x 中每个值的出现频率。
  2. +
  3. freq_table == max(freq_table) 找出所有出现频率等于最大频率的值。
  4. +
  5. names() 获取这些频率值的名称,这些名称实际上就是向量 x 中的值。
  6. +
  7. as.numeric() 将结果转换为数值类型,因为 table() 函数的结果会返回因子类型的名称。
  8. +
+

当你运行这个函数时,它会返回向量中所有的众数。如果有多个值出现频率相同且都是最高的,那么这些值都将被返回。

+

或直接在df上进行操作:

+
# the function for computing mode
+mode <- df_bbt %>% 
+  group_by(Viewers..millions.) %>%
+  summarise(count = n()) %>% 
+  slice_max(count, with_ties = TRUE)
+
+# the mean, median, and mode
+cat(paste0("the mean of viewers:", round(mean(df_bbt$Viewers..millions.),2), "\n",
+          "the median of viewers:", median(df_bbt$Viewers..millions.), "\n"))
+cat("the mode of viewers:", mode$Viewers..millions.)
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/na.omit()/index.html b/R/base-content/na.omit()/index.html new file mode 100644 index 00000000..33297e5f --- /dev/null +++ b/R/base-content/na.omit()/index.html @@ -0,0 +1,1522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Na.omit() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Na.omit()

+ +

在R语言中,na.omit()函数用于删除包含缺失值(NA)的观测行。它返回一个新的数据框或向量,其中不包含任何缺失值。 +

na.omit(object)
+
+其中,object是要处理的数据对象,可以是数据框、矩阵或向量。 +- 对于数据框和矩阵: + - na.omit()函数将删除包含任何缺失值的观测行,并返回一个新的数据框或矩阵,其中不包含缺失值。 + - 缺失值可以是NANaN。 + - 如果数据框或矩阵中的某一列(变量)包含缺失值,那么该列中对应的观测行将被删除。

+
```R
+# 创建一个包含缺失值的数据框
+df <- data.frame(A = c(1, 2, NA, 4), B = c(NA, 2, 3, 4))
+
+# 删除包含缺失值的观测行
+new_df <- na.omit(df)
+
+# 打印新的数据框
+print(new_df)
+```
+
+

输出:

+
     A B
+   2 2 2
+   4 4 4
+
+
    +
  • 对于向量:
  • +
  • na.omit()函数将删除向量中的任何缺失值,并返回一个新的向量,其中不包含缺失值。
  • +
  • +

    缺失值可以是NANaN

    +
    # 创建一个包含缺失值的向量
    +vec <- c(1, 2, NA, 4, NaN)
    +
    +# 删除缺失值
    +new_vec <- na.omit(vec)
    +
    +# 打印新的向量
    +print(new_vec)
    +
    +

    输出:

    +
    [1] 1 2 4
    +
    +
  • +
+

总结起来,na.omit()函数用于删除包含缺失值的观测行或向量元素,以便进行数据清洗和分析。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/names()/index.html b/R/base-content/names()/index.html new file mode 100644 index 00000000..2161c7ac --- /dev/null +++ b/R/base-content/names()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Names() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Names()

+ +

是一个函数,用于获取或设置对象的名称(names)。names() 函数用于获取或设置对象的名称。如果对象具有名称,该函数将返回一个字符型向量,其中包含对象的名称。如果对象没有名称,则返回 NULL。 +

names(object)
+
+ - object:要获取或设置名称的对象。

+
    +
  1. 获取对象的名称: +
    fruits <- c("apple", "banana", "orange")
    +names(fruits) <- c("A", "B", "C")
    +result <- names(fruits)
    +print(result)  # 输出:"A" "B" "C"
    +
    +在这个示例中,我们首先使用 `c()` 函数创建了一个字符型向量 `fruits`,然后使用 `names()` 函数为向量的每个元素分配了名称。最后,使用 `names()` 函数获取向量 `fruits` 的名称。
    +
  2. +
  3. 设置对象的名称: +
    nums <- c(1, 2, 3)
    +names(nums) <- c("one", "two", "three")
    +print(nums)  # 输出:1 2 3
    +
    +在这个示例中,我们首先使用 `c()` 函数创建了一个数值向量 `nums`,然后使用 `names()` 函数为向量的每个元素分配了名称。
    +
  4. +
  5. 移除对象的名称: +
    fruits <- c("apple", "banana", "orange")
    +names(fruits) <- NULL
    +result <- names(fruits)
    +print(result)  # 输出:NULL
    +
    +在这个示例中,我们使用 `names()` 函数将向量 `fruits` 的名称设置为 `NULL`,从而移除了向量的名称。
    +
    +names() 函数在处理对象的名称时非常有用。可以使用 names() 函数获取对象的名称,也可以使用 names() 函数为对象分配名称或移除名称。这对于对数据进行标记、索引和引用等操作非常有帮助。
  6. +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/ncol()/index.html b/R/base-content/ncol()/index.html new file mode 100644 index 00000000..f34fb697 --- /dev/null +++ b/R/base-content/ncol()/index.html @@ -0,0 +1,1499 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Ncol() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Ncol()

+ +

ncol() 是 R 语言中的一个函数,用于获取矩阵或数据框的列数。ncol() 函数返回指定对象的列数。 +

ncol(x)
+
+- x:要获取列数的对象,可以是矩阵或数据框。

+

示例 1:获取矩阵的列数 +

mat <- matrix(1:6, nrow = 2, ncol = 3)
+num_cols <- ncol(mat)
+print(num_cols)
+
+输出结果为: +
[1] 3
+

+

示例 2:获取数据框的列数 +

df <- data.frame(A = 1:3, B = 4:6, C = 7:9)
+num_cols <- ncol(df)
+print(num_cols)
+
+输出结果为: +
[1] 3
+

+

非常抱歉给您带来的困扰,我会尽力确保提供正确的代码格式。如果您有其他问题,请随时告诉我。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/nlevels()/index.html b/R/base-content/nlevels()/index.html new file mode 100644 index 00000000..ceb101fc --- /dev/null +++ b/R/base-content/nlevels()/index.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Nlevels() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Nlevels()

+ +

在R语言中,nlevels()函数用于获取因子(factor)对象的水平数量

+

函数定义: +

nlevels(x)
+

+

参数: +- x:一个因子对象。

+

示例: +以下是使用nlevels()函数获取因子水平数量的示例:

+
# 示例因子
+factor_vector <- factor(c("A", "B", "A", "C", "B", "C"))
+
+# 获取因子的水平数量
+num_levels <- nlevels(factor_vector)
+
+# 打印因子的水平数量
+print(num_levels)
+
+

在上述示例中,我们创建了一个示例因子factor_vector,其中包含了一些水平。

+

然后,我们使用nlevels()函数获取factor_vector的水平数量,并将结果保存在num_levels中。

+

最后,我们打印出num_levels,它表示了factor_vector的水平数量。

+

以下是打印出的内容:

+
[1] 3
+
+

在上述输出中,我们可以看到factor_vector共有3个水平。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/nrow()/index.html b/R/base-content/nrow()/index.html new file mode 100644 index 00000000..46faacc4 --- /dev/null +++ b/R/base-content/nrow()/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Nrow() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Nrow()

+ +

在 R 语言中,nrow() 函数用于获取数据框(df)的观测数量(行数)。下面是参数的详细解释和举例: +

nrow(df)
+
+参数: +- x:要计算观测数量的对象,通常是数据框(df)或矩阵。 +示例: +
# 创建一个示例数据框
+df <- data.frame(
+  x = c(1, 2, 3),
+  y = c("a", "b", "c")
+)
+
+# 获取数据框的观测数量
+num_obs <- nrow(df)
+print(num_obs)
+

+

在上述示例中,我们创建了一个示例数据框 df,其中包含了两列变量 xy。然后,我们使用 nrow() 函数获取数据框 df 的观测数量,并将结果存储在变量 num_obs 中。最后,我们打印输出结果。

+

输出结果为: +

[1] 3
+

+

这表示数据框 df 中有 3 个观测。

+

nrow() 函数还可以用于其他对象,例如矩阵。以下是一个示例:

+
# 创建一个示例矩阵
+mat <- matrix(1:9, nrow = 3, ncol = 3)
+
+# 获取矩阵的观测数量
+num_obs <- nrow(mat)
+print(num_obs)
+
+

在上述示例中,我们创建了一个示例矩阵 mat,其中包含了 3 行和 3 列的元素。然后,我们使用 nrow() 函数获取矩阵 mat 的观测数量,并将结果存储在变量 num_obs 中。最后,我们打印输出结果。

+

输出结果为: +

[1] 3
+

+

这表示矩阵 mat 中有 3 个观测(即行数)。

+

总结起来,nrow() 函数用于获取数据框或矩阵的观测数量(行数)。它是一个方便的函数,用于确定数据对象的大小。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/optim()/index.html b/R/base-content/optim()/index.html new file mode 100644 index 00000000..249566b7 --- /dev/null +++ b/R/base-content/optim()/index.html @@ -0,0 +1,1599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Optim() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Optim()

+ +

在R语言中,optim()函数是一个用于最优化问题的内置函数,它可以寻找给定目标函数的最小值或最大值

+

函数定义: +

optim(par, fn, ..., method = "Nelder-Mead", lower = -Inf, upper = Inf, control = list(), hessian = FALSE)
+

+

参数: +- par:一个数值向量,表示目标函数的参数的初始值

+
    +
  • fn:一个函数,表示要最小化或最大化的目标函数。该函数的第一个参数应是参数向量。cost函数,习惯性用一个向量来替代多元
  • +
+
fr <- function(x) {   ## Rosenbrock Banana function
+    x1 <- x[1]
+    x2 <- x[2]
+    100 * (x2 - x1 * x1)^2 + (1 - x1)^2
+}
+
+
    +
  • ...:传递给目标函数fn的其他参数。
  • +
  • method:一个字符,表示要使用的优化算法的名称。默认为"Nelder-Mead",表示使用Nelder-Mead算法。
  • +
  • lower:一个数值向量,表示参数的下界。默认为负无穷
  • +
  • upper:一个数值向量,表示参数的上界。默认为正无穷
  • +
  • control:一个列表,用于指定优化算法的控制参数
  • +
  • hessian:一个逻辑值,表示是否计算目标函数的海森矩阵。默认为FALSE,即不计算。
  • +
+

输出结果包含以下信息: +- $par:找到的最优参数向量。 +- $value:目标函数在最优参数处的值。 +- $counts:优化过程中函数和梯度的计算次数。 +- $convergence:指示算法是否收敛的标志。 +如果优化算法成功收敛到停止条件,convergence的值为0,表示收敛。 +如果优化算法未能收敛到停止条件,convergence的值为1,表示未收敛。 +- $message:如果有任何警告或错误,将包含相关信息。

+

下面是一个常见用法的示例: +

# 定义目标函数
+rosenbrock <- function(x) {
+  sum(100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2)
+}
+
+# 使用optim函数寻找目标函数的最小值
+result <- optim(c(0, 0), rosenbrock)
+
+print(result)
+
+输出: +
$par
+[1] 1 1
+
+$value
+[1] 1.413587e-25
+
+$counts
+function gradient 
+     103       NA 
+
+$convergence
+[1] 0
+
+$message
+NULL
+

+

在上面的示例中,我们首先定义了一个目标函数rosenbrock,该函数是一个著名的Rosenbrock函数。然后,我们使用optim()函数来寻找目标函数的最小值。我们将初始参数向量设置为(0, 0),并将目标函数设置为rosenbrock。最后,将结果存储在result变量中。

+

par参数

+

在R中,optim()函数的par参数可以接受不仅仅是向量形式,还可以是矩阵或列表等其他形式的参数。 +1. 向量形式:向量是optim()函数中最常见的参数形式。例如,par = c(0, 0)表示初始参数为长度为2的向量。 +2. 矩阵形式:如果你的优化问题涉及到多个参数向量,你可以使用矩阵形式的par参数。每个参数向量将成为矩阵的一列。例如,par = matrix(c(0, 0, 1, 1), ncol = 2)表示初始参数为两个2维向量。 +3. 列表形式:列表是一种灵活的数据结构,可以包含多个参数向量以及其他相关的信息。你可以将一个列表作为par参数传递给optim()函数。例如: +

params <- list(param1 = c(0, 0), param2 = c(1, 1))
+result <- optim(par = params, fn = objective_function, method = "BFGS")
+
+在这个例子中,params是一个包含两个参数向量的列表。optim()函数将通过适当的方法对每个参数向量进行优化。 +总而言之,optim()函数中的par参数可以接受向量、矩阵和列表等不同形式的参数,可以根据你的具体情况选择最合适的形式。记得根据所选形式和优化问题的要求来调整目标函数和其他参数。

+

method参数

+

optim()函数中的method参数用于指定优化算法的方法。下面是几种常用的方法及其简要介绍和示例:

+
    +
  1. "Nelder-Mead"(默认):单纯形法(Nelder-Mead algorithm)是一种无导数优化方法,适用于目标函数不可导或不方便求导的情况。示例: +
    result <- optim(par = c(0, 0), fn = objective_function, method = "Nelder-Mead")
    +
  2. +
  3. "BFGS":拟牛顿法(Broyden-Fletcher-Goldfarb-Shanno algorithm)是一种使用函数值和梯度信息来逼近最优解的优化方法。示例: +
    result <- optim(par = c(0, 0), fn = objective_function, method = "BFGS")
    +
  4. +
  5. "L-BFGS-B":限制性拟牛顿法(Limited-memory Broyden-Fletcher-Goldfarb-Shanno algorithm with box constraints)是一种拟牛顿法的变种,适用于带有边界约束的问题。示例: +
    result <- optim(par = c(0, 0), fn = objective_function, method = "L-BFGS-B")
    +
  6. +
  7. "CG":共轭梯度法(Conjugate Gradient algorithm)是一种无约束优化方法,适用于目标函数是二次型的情况。示例: +
    result <- optim(par = c(0, 0), fn = objective_function, method = "CG")
    +
  8. +
  9. "SANN":模拟退火算法(Simulated Annealing algorithm)是一种随机搜索算法,通过模拟退火过程寻找全局最优解。示例: +
    result <- optim(par = c(0, 0), fn = objective_function, method = "SANN")
    +
  10. +
+

这些只是一些常见的优化方法示例,optim()函数还支持其他方法,如"CG"(共轭梯度法)、"Nelder-Mead"(单纯形法)、"SANN"(模拟退火算法)等。可以通过查阅R的帮助文档(?optim)来获取更多详细信息和示例,了解各个方法的适用范围和使用方式。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/options()/index.html b/R/base-content/options()/index.html new file mode 100644 index 00000000..e7aa7524 --- /dev/null +++ b/R/base-content/options()/index.html @@ -0,0 +1,1550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Options() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Options()

+ +

在R语言中,options()函数用于设置和查询全局选项。它允许你修改R解释器的行为,以适应特定的需求。options()函数可以接受多个参数,每个参数用于设置不同的选项。

+

下面是options()函数的常用参数及其详细介绍和示例:

+
    +
  1. warn:控制警告信息的显示。
  2. +
  3. 可选值为0、1或2,分别表示不显示警告、显示警告(默认)和将警告视为错误。
  4. +
  5. +

    示例:

    +
    # 不显示警告
    +options(warn = 0)
    +
    +# 显示警告(默认)
    +options(warn = 1)
    +
    +# 将警告视为错误
    +options(warn = 2)
    +
    +
  6. +
  7. +

    digits:设置浮点数的显示精度

    +
  8. +
  9. 可选值为一个非负整数,表示要显示的小数位数(默认为7)。
  10. +
  11. +

    示例:

    +
    # 设置小数位数为3
    +options(digits = 3)
    +
    +
  12. +
  13. +

    max.print:设置要打印的输出的最大行数。

    +
  14. +
  15. 可选值为一个非负整数,表示要打印的最大行数(默认为1000)。
  16. +
  17. +

    示例:

    +
    # 设置最大打印行数为500
    +options(max.print = 500)
    +
    +
  18. +
  19. +

    scipen:控制科学计数法的显示。

    +
  20. +
  21. 可选值为一个非负整数,表示在显示中使用科学计数法的阈值(默认为0)。
  22. +
  23. +

    示例:

    +
    # 阈值为2时,大于等于1e2的数使用科学计数法
    +options(scipen = 2)
    +
    +
  24. +
  25. +

    stringsAsFactors:控制字符向量的转换行为。

    +
  26. +
  27. 可选值为TRUEFALSE,表示是否将字符向量转换为因子(默认为TRUE)。
  28. +
  29. +

    示例:

    +
    # 不将字符向量转换为因子
    +options(stringsAsFactors = FALSE)
    +
    +
  30. +
  31. +

    ...:其他选项参数。

    +
  32. +
  33. 可以使用其他选项参数来设置或查询其他全局选项。
  34. +
  35. +

    示例:

    +
    # 设置图形设备为PNG格式
    +options(device = "png")
    +
    +# 查询默认的绘图设备
    +options("device")
    +
    +
  36. +
+

这些是options()函数的常见参数和示例。你可以使用options()函数来设置和查询其他全局选项,具体的选项列表和说明可以在R的官方文档中找到。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/order()/index.html b/R/base-content/order()/index.html new file mode 100644 index 00000000..8737b45d --- /dev/null +++ b/R/base-content/order()/index.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Order() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Order()

+ +

在R语言中,order()函数用于确定向量的排序顺序。它返回一个排列的索引向量,该向量指示原始向量按照升序排列的顺序。 +函数定义: +

order(..., na.last = TRUE, decreasing = FALSE)
+
+参数: +- ...:一个或多个要排序的向量。 +- na.last:一个逻辑值,指示缺失值(NA)在排序结果中是否应放在最后。默认为TRUE,即将缺失值放在最后。 +- decreasing:一个逻辑值,指示是否按照降序进行排序。默认为FALSE,即按照升序排序。 +
# 创建一个向量
+values <- c(10, 5, 20, NA, 12)
+
+# 确定排序顺序
+sorted_index <- order(values)
+
+print(sorted_index)
+

+

在上面的示例中,我们创建了一个包含数值和缺失值(NA)的向量values。 +然后,我们使用order()函数确定了values向量的排序顺序。函数返回一个排列的索引向量,它指示原始向量按照升序排列的顺序。 +在这个示例中,values向量按照升序排序,结果如下: +

[1] 2 1 5 3 4 # 这个结果有问题吧?
+

+

这意味着原始向量中的第2个元素是最小的,第1个元素是第二小的,依此类推。 +您可以使用sorted_index向量来重新排列原始向量,或者根据需要访问排序后的元素。 +order()函数还可以接受多个向量作为参数,以进行多列排序。在这种情况下,函数将根据指定的列依次进行排序,并返回按照这些列排序的索引向量。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/order(x)/index.html b/R/base-content/order(x)/index.html new file mode 100644 index 00000000..8c21df4e --- /dev/null +++ b/R/base-content/order(x)/index.html @@ -0,0 +1,1534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Order(x) - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Order(x)

+ +

当使用 order() 函数在 R 中对向量进行排序时,可以使用以下参数进行控制: +

order(x, decreasing = FALSE, na.last = NA)
+
+参数说明: +- x: 要排序的向量、数组、数据框或矩阵。 +- na.last: 一个逻辑值,用于指定如何处理缺失值(NA)。默认为 NA,表示将缺失值放在排序的末尾。如果设置为 TRUE,则将缺失值放在排序的末尾;如果设置为 FALSE,则将缺失值放在排序的开头。 +- decreasing: 一个逻辑值,用于指定排序的顺序。默认为 FALSE,表示按照从小到大的顺序排序。如果设置为 TRUE,则按照从大到小的顺序排序。

+

以下是使用 order() 函数进行排序的示例:

+
# 示例1:单个向量排序
+x <- c(3, 1, 4, 1, 5, 9)
+
+# 按照从小到大的顺序排序
+sorted_index <- order(x)
+sorted_vector <- x[sorted_index]
+print(sorted_vector)
+
+# 示例2:联合排序
+x <- c(3, 1, 4, 1, 5, 9)
+y <- c("c", "a", "d", "a", "e", "i")
+
+# 按照 x 的顺序对 y 进行排序
+sorted_index <- order(x)
+sorted_y <- y[sorted_index]
+print(sorted_y)
+
+

输出结果为:

+
[1] 1 1 3 4 5 9
+
+[1] "a" "a" "c" "d" "e" "i"
+
+

在上述示例中,我们使用了 order() 函数进行排序。在示例1中,我们提供了单个向量 x,并按照从小到大的顺序对其进行排序。我们使用排序后的索引向量 sorted_index 对原始向量 x 进行重新排列,并将结果存储在 sorted_vector 中。

+

在示例2中,我们提供了两个向量 xy,并按照向量 x 的顺序对向量 y 进行排序。通过使用排序后的索引向量 sorted_index,我们将向量 y 重新排列成按照向量 x 的顺序,并将结果存储在 sorted_y 中。

+

总结来说,order() 函数用于获取排序后的索引向量,可以根据需要进行单个向量或联合排序。你可以使用 na.last 参数来控制缺失值的处理方式,使用 decreasing 参数来控制排序的顺序。

+

除了向量,order() 函数还可以用于对矩阵的行或列进行排序,并返回相应的索引。下面是一个示例:

+
# 创建一个矩阵
+mat <- matrix(c(5, 2, 3, 1, 4, 6), nrow = 2)
+
+# 获取按行排序的索引
+row_index <- apply(mat, 1, order)
+print(row_index)
+
+# 获取按列排序的索引
+col_index <- apply(mat, 2, order)
+print(col_index)
+
+

输出结果为:

+
     [,1] [,2]
+[1,]    2    1
+[2,]    1    2
+
+     [,1] [,2]
+[1,]    2    1
+[2,]    1    2
+[3,]    3    3
+
+

在上面的示例中,我们首先创建了一个矩阵 mat。然后,我们使用 apply() 函数将 order() 应用于矩阵的行和列。通过设置 MARGIN 参数为 1,我们获取按行排序的索引,并将结果存储在 row_index 中。通过设置 MARGIN 参数为 2,我们获取按列排序的索引,并将结果存储在 col_index 中。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/par()/index.html b/R/base-content/par()/index.html new file mode 100644 index 00000000..520db56f --- /dev/null +++ b/R/base-content/par()/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Par() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Par()

+ +

在 R 语言中,par() 函数用于设置图形参数,控制绘图的外观、布局和行为。它可以用来修改图形设备的各种属性,例如图形尺寸、边距、坐标轴、标签等。下面是对 par() 函数的参数进行详细介绍和举例:

+

par()函数主要用于设置基本的R内置图形参数,例如绘图窗口的尺寸、坐标轴的标签和刻度、边距等。它对于基于基本绘图函数(如plot()、hist()等)创建的图形起作用。

+

函数语法: +

par(...)
+

+

参数说明: +par() 函数的参数非常多,下面列举一些常用的参数: +- mfrow:一个表示图形布局的数值向量,用于指定图形设备中子图的行数和列数。例如 par(mfrow = c(2, 2)) 表示将图形设备划分为 2 行 2 列,一共可以绘制 4 个子图。 +- mar:一个表示边距的数值向量,用于指定图形设备的四个边界边距(下、左、上、右)。例如 par(mar = c(5, 4, 4, 2)) 表示设置下边距为 5,左边距为 4,上边距为 4,右边距为 2。 +- oma:一个表示外边距的数值向量,用于指定图形设备的四个外边距(下、左、上、右)。例如 par(oma = c(0, 0, 2, 0)) 表示设置下外边距为 0,左外边距为 0,上外边距为 2,右外边距为 0。 +- pty:一个字符值,用于指定绘图区域的宽高比。例如 par(pty = "s") 表示保持绘图区域的宽高比为 1:1。 +- xlabylab:字符值,用于设置 x 轴和 y 轴的标签。例如 par(xlab = "X轴", ylab = "Y轴") 表示设置 x 轴的标签为 "X轴",y 轴的标签为 "Y轴"。

+

示例: +下面是使用 par() 函数设置图形参数的示例:

+
# 创建一个示例数据
+x <- 1:10
+y <- x^2
+
+# 创建一个 2x2 的图形布局
+par(mfrow = c(2, 2))
+
+# 绘制第一个子图
+plot(x, y, main = "图1")
+
+# 绘制第二个子图
+plot(x, y, main = "图2", col = "red")
+
+# 绘制第三个子图
+plot(x, y, main = "图3", pch = 3)
+
+# 绘制第四个子图
+plot(x, y, main = "图4", lty = 2)
+
+

在上述示例中,我们首先创建了一个示例数据,包括一个数值向量 x 和一个根据 x 计算的平方向量 y。然后,我们使用 par() 函数将图形设备划分为 2 行 2 列的布局。接下来,我们用 plot() 函数绘制了四个子图,每个子图都有不同的参数设置,例如标题、颜色、点形状、线型等。

+

你可以根据需要使用 par() 函数来修改图形的各种参数,以满足你的绘图需求。查阅官方文档或使用 ?par 命令可以获取更多关于 par() 函数参数的详细信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/paste()/index.html b/R/base-content/paste()/index.html new file mode 100644 index 00000000..4216a284 --- /dev/null +++ b/R/base-content/paste()/index.html @@ -0,0 +1,1561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Paste() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Paste()

+ +

在R语言中,paste()函数用于将多个对象(字符串、数字等)连接成一个字符串。这个函数是R的基础函数之一,不需要额外安装包。

+

paste函数概述:

+

功能: paste()函数用于将多个对象连接成一个字符串。

+

所属包: 无需安装额外的包,paste()是R的基础函数。

+

定义: +

paste(..., sep = " ", collapse = NULL)
+

+

参数介绍:

+
    +
  • +

    ... 要连接的对象,可以是字符串、数字等。

    +
  • +
  • +

    sep 用于在连接对象之间插入的分隔符,默认为一个空格。

    +
  • +
  • +

    collapse 用于在连接结果之间插入的分隔符。如果指定了collapse,则sep参数将被忽略。

    +
  • +
+

示例:

+
# 使用paste函数连接字符串
+string1 <- "Hello"
+string2 <- "World"
+
+result <- paste(string1, string2, sep = ", ")
+
+# 显示连接后的字符串
+print(result)
+
+

输出:

+

在上述示例中,paste()函数将两个字符串连接起来,并使用逗号和空格作为分隔符。通过print(result)输出:

+
[1] "Hello, World"
+
+

这样,两个字符串被成功连接成一个新的字符串。根据需要,你可以调整sep参数来定义不同的分隔符。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/pchisq()/index.html b/R/base-content/pchisq()/index.html new file mode 100644 index 00000000..b90fa0c7 --- /dev/null +++ b/R/base-content/pchisq()/index.html @@ -0,0 +1,1496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Pchisq() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Pchisq()

+ +

是 R 语言中用于计算卡方分布累积分布函数(Cumulative Distribution Function,CDF)的函数。卡方分布是一种常用的概率分布,特别用于统计推断和假设检验。 +pchisq() 函数的语法如下: +

pchisq(q, df, lower.tail = TRUE, log.p = FALSE)
+
+参数说明: +- q:要计算累积分布的值或一组值。 +- df:卡方分布的自由度(degrees of freedom)。 +- lower.tail:一个逻辑值,指定是计算低尾部分(小于等于 q 的概率)还是高尾部分(大于 q 的概率)。默认为 TRUE,表示计算低尾部分。 +- log.p:一个逻辑值,指定是否返回对数概率值。默认为 FALSE,表示返回概率值。

+

函数功能:计算卡方分布在给定自由度下的累积分布函数值或对数概率值。

+

下面是一个示例,演示如何使用 pchisq() 函数计算卡方分布的累积分布: +

# 计算自由度为3的卡方分布在 x=2 处的累积分布
+cdf_value <- pchisq(2, df = 3)
+print(cdf_value)
+
+在上述示例中,我们使用 pchisq(2, df = 3) 计算自由度为 3 的卡方分布在 x=2 处的累积分布,并将结果存储在 cdf_value 变量中。print() 函数用于打印累积分布的值。

+

需要注意的是,pchisq() 函数计算的是卡方分布的累积分布值,即给定自由度下小于等于某个特定取值的累积概率。累积分布函数可以用于计算置信区间、假设检验等统计推断中的概率值。

+

希望这个例子能够帮助您理解 pchisq() 函数的用法和功能。如果您有任何其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/pf()/index.html b/R/base-content/pf()/index.html new file mode 100644 index 00000000..37465248 --- /dev/null +++ b/R/base-content/pf()/index.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Pf() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Pf()

+ +

在R语言中,pf()函数用于计算F分布的累积分布函数(CDF)或反函数(quantile)。 +函数定义: +

pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)
+
+参数: +- q:F分布的临界值。 +- df1:分子自由度。 +- df2:分母自由度。 +- ncp:非心参数(可选),在非标准F分布中使用。 +- lower.tail:可选参数,逻辑值,表示是否计算累积分布函数的下尾概率。默认为TRUE,表示计算下尾概率。如果设置为FALSE,则计算上尾概率。 +- log.p:可选参数,逻辑值,表示是否返回对数概率。默认为FALSE,表示返回概率。 +示例: +
# 示例:计算F分布的累积分布函数和反函数
+# 计算F分布累积分布函数
+p_value <- pf(q = 2.5, df1 = 3, df2 = 6)
+print(p_value)
+
+# 计算F分布反函数
+quantile_value <- qf(p = 0.95, df1 = 3, df2 = 6)
+print(quantile_value)
+

+

在示例中,我们首先使用pf()函数计算F分布的累积分布函数。我们指定了临界值q为2.5,分子自由度df1为3,分母自由度df2为6。通过将结果存储在p_value中,并打印出来,我们可以得到F分布累积分布函数的值。

+

接下来,我们使用qf()函数计算F分布的反函数,即给定概率值,计算对应的临界值。我们指定了概率值p为0.95,分子自由度df1为3,分母自由度df2为6。通过将结果存储在quantile_value中,并打印出来,我们可以得到F分布的反函数值。

+

请注意,F分布是用于统计推断中的假设检验和方差分析等问题。您可以根据具体需求调整参数来计算F分布的累积分布函数或反函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/pie()/index.html b/R/base-content/pie()/index.html new file mode 100644 index 00000000..aaae98fd --- /dev/null +++ b/R/base-content/pie()/index.html @@ -0,0 +1,1511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Pie() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Pie()

+ +

在R语言中,pie()函数是用于绘制饼图的基本函数之一。它可以根据指定的数值生成相应比例的扇形,并可通过参数进行进一步的自定义。 +函数定义: +

pie(x, labels = names(x), clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL, main = NULL)
+
+参数: +- x:一个数值向量,表示每个扇形的大小。 +- labels:一个字符向量,表示每个扇形的标签。默认为names(x),即使用x向量的元素名作为标签。 +- cex:调整标签大小。 +- clockwise:一个逻辑值,控制饼图绘制的方向。默认为FALSE,即逆时针方向。 +- init.angle:一个数值,表示饼图的初始角度。默认为0度(或90度,如果clockwiseTRUE)。 +- density:一个数值向量,表示扇形的填充密度。默认为NULL,即无填充。 +- angle:一个数值,表示标签的倾斜角度。默认为45度。 +- col:一个颜色向量,表示扇形的填充颜色。 +- border:一个颜色向量,表示扇形的边界颜色。 +- main:一个字符,表示饼图的标题。

+

ratio <- c(24.2, 21.9, 7.6, 5.2,4.3,3.2,2.6,2.6,1.8,1.8,24.8)
+disease <- c("Heart disease", "Cancer","injuries", "CPD",
+             "Stroke",'Type2 diabetes',"AD","Suicide",
+             "IP","Chronic liver disease","Other")
+
+pie(ratio, labels=disease,
+    radius = 1.0,clockwise=T,
+    main = "Male individuals")
+
+Pasted image 20231017144628

+

在上面的示例中,我们首先创建了一个包含数值和类别的向量。然后,我们使用pie()函数根据这些数值绘制了相应比例的饼图。

+

在这个示例中,values向量表示每个扇形的大小,categories向量表示每个扇形的标签。通过设置labels参数为categories,我们将类别名称作为标签显示在饼图中。main参数用于设置饼图的标题。

+

通过使用适当的参数配置,您可以根据需要自定义饼图的外观、标签、颜色等元素。

+

需要注意的是,pie()函数是基本的饼图绘制函数,它提供了一些简单的自定义选项。如果您需要更高级的自定义和更多选项,可以考虑使用专门的绘图包,如ggplot2

+

pie(decoration_count$sum_decoration, paste(decoration_count$decoration, label_decoration, "%"), radius = 1.0, clockwise=T, main = "房屋装修情况", cex = 0.8)
+
+paste()将装修标签和百分比标签和%号连接在一起 +Pasted image 20231019080018

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/pnorm()/index.html b/R/base-content/pnorm()/index.html new file mode 100644 index 00000000..ed6db6af --- /dev/null +++ b/R/base-content/pnorm()/index.html @@ -0,0 +1,1533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Pnorm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Pnorm()

+ +

是 R 语言中的一个内置函数,用于计算正态分布的累积分布函数(CDF)。也就是概率密度函数 +pnorm() 函数的语法如下: +

pnorm(x, mean = 0, sd = 1, lower.tail = TRUE)
+

+

参数说明如下: +- x:要计算累积分布函数的数值。**

+
    +
  • +

    mean:正态分布的均值(默认为 0)。

    +
  • +
  • +

    sd:正态分布的标准差(默认为 1)。

    +
  • +
  • +

    lower.tail:一个逻辑值,表示是否计算累积分布函数的下尾概率(默认为 TRUE)。如果为 TRUE,将计算 P(X ≤ x);如果为 FALSE,将计算 P(X > x),反着来的。

    +
  • +
+

lower.tail = TRUE时,表示计算累积分布函数的值,即计算从负无穷到给定分位数的概率。

+

lower.tail = FALSE时,表示计算分位数,即计算给定概率下的分位数,对应的尾部概率为从给定分位数到正无穷的概率。 +Pasted image 20230924114211 +下面是一个示例,展示如何使用 pnorm() 函数计算正态分布的累积分布函数:

+
# 计算标准正态分布在 x = 1 处的累积分布函数值
+cdf <- pnorm(1)
+
+# 打印结果
+print(cdf)
+
+

在上述示例中,我们使用 pnorm() 函数计算标准正态分布在 x = 1 处的累积分布函数值,并将结果存储在名为 cdf 的变量中。

+

然后,我们通过打印 cdf 来查看计算得到的累积分布函数值。

+

请注意,pnorm() 函数计算的是标准正态分布的累积分布函数。如果需要计算其他均值和标准差的正态分布的累积分布函数,可以通过调整 meansd 参数的值来实现。

+

离群点

+

μ加减3sigm,超出外的数据称为离群点。 +Pasted image 20230924112707

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/predict()/index.html b/R/base-content/predict()/index.html new file mode 100644 index 00000000..06bab09b --- /dev/null +++ b/R/base-content/predict()/index.html @@ -0,0 +1,1510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Predict() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Predict()

+ +

内置函数。在 R 语言中,predict() 函数通常用于从已经拟合的统计模型中生成预测值。这个函数的可用性取决于所使用的具体模型,因为不同的模型有不同的 predict() 方法。

+

功能: 从拟合的统计模型中生成预测值。

+
# 使用 lm() 拟合线性回归模型
+model <- lm(mpg ~ hp + wt, data = mtcars)
+
+# 创建新的数据框进行预测
+new_data <- data.frame(hp = c(110, 150), wt = c(2.8, 3.5))
+
+# 使用 predict() 进行预测
+predictions <- predict(model, newdata = new_data)
+
+# 打印预测值
+print(predictions)
+
+# 输出
+       1        2 
+26.64153 18.16133 
+
+

定义: +

predict(object, newdata = NULL, ...)
+

+

参数介绍: +- object:已经拟合的模型对象。

+
    +
  • +

    newdata:一个数据框,包含模型中使用的预测变量的新值。对于某些模型,newdata 是可选的,而对于其他模型可能是必需的。

    +
  • +
  • +

    ...:其他可选的参数,具体取决于模型。

    +
  • +
+

在这个例子中,我们使用了 lm() 函数拟合了一个线性回归模型 (model)。然后,我们创建了一个新的数据框 (new_data),其中包含模型中使用的预测变量的新值。最后,我们使用 predict() 函数生成了对应于新数据的预测值 (predictions)。这是一个简单的例子,实际上,predict() 函数的使用方式会因模型类型的不同而有所变化。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/print()/index.html b/R/base-content/print()/index.html new file mode 100644 index 00000000..a0d9a890 --- /dev/null +++ b/R/base-content/print()/index.html @@ -0,0 +1,1495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Print() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Print()

+ +

当您在R中执行类似于数据框的操作并希望查看更多行时,可能会遇到"Use print(n = ...) to see more rows"的提示。这是R环境的默认行为,它限制了输出的行数,以避免在交互式环境中显示过多的数据。您可以通过设置print()函数的n参数来更改此设置。

+

以下是一些解决方案:

+
    +
  1. 使用print()函数的n参数:您可以通过在print()函数中设置n参数的值来显示更多的行。例如,要显示前20行,您可以使用print(n = 20)
  2. +
+
# 示例代码
+my_data <- # Your data frame here
+print(my_data, n = 20)  # 显示前20行
+
+
    +
  1. 使用options()函数更改默认设置:您可以使用options()函数更改R环境中的默认行为。通过设置options()函数的max.print参数为较大的值,您可以更改默认的打印行数限制。例如,options(max.print = 1000)将允许显示最多1000行。
  2. +
+
# 示例代码
+options(max.print = 1000)  # 设置最大显示行数为1000
+my_data <- # Your data frame here
+print(my_data)  # 显示更多的行
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/print()\343\200\201printf()\343\200\201sprintf()/index.html" "b/R/base-content/print()\343\200\201printf()\343\200\201sprintf()/index.html" new file mode 100644 index 00000000..41b301da --- /dev/null +++ "b/R/base-content/print()\343\200\201printf()\343\200\201sprintf()/index.html" @@ -0,0 +1,1546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Print()、printf()、sprintf() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Print()、printf()、sprintf()

+ +

在R语言中,print()、printf()和sprintf()是三个不同的函数,用于输出结果或对象的值。

+
    +
  • print()函数用于在控制台上打印结果或对象的值。它是R中最常用的输出函数之一,通常可以省略,因为当输入对象时,它会自动打印结果。例如:
  • +
+
x <- 10
+print(x)  # 打印 x 的值
+
+
    +
  • printf()函数用于格式化输出结果。它可以在控制台上打印格式化的结果。printf()函数类似于C语言中的printf()函数,可以使用格式控制字符串来指定输出格式,如字符串、整数、浮点数等。例如:
  • +
+
x <- 10
+printf("The value of x is %d", x)  # 打印格式化的结果
+
+
    +
  • sprintf()函数用于将格式化的结果保存为一个字符串。它可以将格式化的结果赋值给一个变量,以便进一步处理或输出。sprintf()函数类似于C语言中的sprintf()函数。例如:
  • +
+
x <- 10
+result <- sprintf("The value of x is %d", x)  # 将格式化的结果保存为一个字符串
+print(result)  # 打印结果
+
+

总结来说,print()函数用于打印结果或对象的值,printf()函数用于格式化输出结果,而sprintf()函数用于将格式化的结果保存为一个字符串。

+

百分号怎么加\%

+

在R中,你可以使用百分号的转义序列来显示百分号。以下是修正后的代码:

+
# 假设 z_α2 已经定义
+z_α2 <- 25/20
+
+# 计算 p
+p <- 1 - round(2 * pnorm(z_α2, lower.tail = FALSE), 4)
+
+# 使用转义序列显示百分号
+sprintf("The confidence level: %s%%", p)
+
+

在这个例子中,%s%% 是一个转义序列,其中 %s 表示字符串的位置,%% 表示一个百分号。这样,sprintf 函数会将 p 的值插入到字符串中,并在百分号之后显示百分号。

+

\%\%在字符串中必须这么表达,以及多个输出变量时!

+

在字符中表示百分号也得这么加,否则报错,如95\%\% +

sprintf("The 95%% confidence intervals for the mean age:[%.2f, %.2f]", age_low_limit, age_up_limit)
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/prop.table()/index.html b/R/base-content/prop.table()/index.html new file mode 100644 index 00000000..fbc2b676 --- /dev/null +++ b/R/base-content/prop.table()/index.html @@ -0,0 +1,1505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Prop.table() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Prop.table()

+ +

在 R 语言中,prop.table() 函数用于计算给定表格或数组中每个元素的相对频率(相对于整个表格或数组的总和)。这个函数是 R 的基础函数,无需加载额外的包。它可以将元素值转换为相对频率或概率

+

以下是 prop.table() 函数的基本信息:

+

所属包: 无需加载包,是 R 的基础函数。

+

定义: +

prop.table(table, margin = NULL)
+

+

参数介绍: +- table:要计算相对频率的表格或数组。 +- margin:可选,一个整数向量,指定在哪个维度上计算相对频率。默认为 NULL,表示计算整个表格或数组的相对频率。

+

功能: +计算给定表格或数组中每个元素的相对频率。

+

举例: +

# 创建一个简单的数据表
+data <- c("A", "B", "A", "C", "B", "A", "C", "A")
+
+# 使用 prop.table() 计算相对频率
+freq_table <- prop.table(table(data))
+
+# 打印结果
+print(freq_table)
+

+

输出: +

data
+   A    B    C 
+0.375 0.250 0.375 
+

+

在这个例子中,prop.table() 函数被用于计算字符串向量 data 中每个元素的相对频率。输出是一个包含相对频率的表格,表示在整个数据中每个元素的相对出现频率。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/pt()/index.html b/R/base-content/pt()/index.html new file mode 100644 index 00000000..dec0ce69 --- /dev/null +++ b/R/base-content/pt()/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Pt() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Pt()

+ +

是 R 语言中的一个内置函数,用于计算 t 分布的累积分布函数(CDF)值。 +

pt(q, df)
+
+参数说明如下: +- q:要计算累积分布函数的数值。 +- df:t 分布的自由度参数。

+

下面是一个示例,展示如何使用 pt() 函数计算 t 分布的累积分布函数值:

+
# 计算自由度为 10 的 t 分布在 q = 1 处的累积分布函数值
+cdf <- pt(1, df = 10)
+
+# 打印结果
+print(cdf)
+
+

在上述示例中,我们使用 pt() 函数计算自由度为 10 的 t 分布在 q = 1 处的累积分布函数值,并将结果存储在名为 cdf 的变量中。

+

然后,我们通过打印 cdf 来查看计算得到的累积分布函数值。

+

请注意,pt() 函数计算的是 t 分布的累积分布函数值。累积分布函数给出了随机变量取值小于或等于给定值的概率。通过调整 df 参数,可以控制 t 分布的自由度。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/qchisq()/index.html b/R/base-content/qchisq()/index.html new file mode 100644 index 00000000..4d6ecd59 --- /dev/null +++ b/R/base-content/qchisq()/index.html @@ -0,0 +1,1496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Qchisq() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Qchisq()

+ +

是R语言中用于计算卡方分布的分位数(Quantile) 的函数。卡方分布是一种常用的概率分布,通常用于统计推断和假设检验。 +qchisq()函数的语法如下: +

qchisq(p, df, lower.tail = TRUE, log.p = FALSE)
+
+参数说明: +- p:要计算分位数的概率值或一组概率值。 +- df:卡方分布的自由度(degrees of freedom)。 +- lower.tail:默认下总是计算左边。一个逻辑值,指定是计算低尾部分(小于等于 p 的分位数)还是高尾部分大于 p 的分位数)。默认为 TRUE,表示计算低尾部分。 +- log.p:一个逻辑值,指定输入的概率值是否为对数概率值。默认为 FALSE,表示输入为概率值。

+

函数功能:计算给定卡方分布自由度下的分位数,即给定概率下的取值。

+

下面是一个示例,演示如何使用qchisq()函数计算卡方分布的分位数: +

# 计算自由度为5的卡方分布在概率0.95处的分位数
+quantile_value <- qchisq(0.95, df = 5)
+print(quantile_value)
+
+在上述示例中,我们使用qchisq(0.95, df = 5)计算自由度为5的卡方分布在概率0.95处的分位数,并将结果存储在quantile_value变量中。print()函数用于打印分位数的值。

+

需要注意的是,qchisq()函数计算的是给定概率下的分位数,即落在该概率下的随机变量取值。分位数可以用于构建置信区间、计算假设检验的临界值等。

+

希望这个例子能够帮助您理解qchisq()函数的用法和功能。如果您有任何其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/qf()/index.html b/R/base-content/qf()/index.html new file mode 100644 index 00000000..9c2ff3b7 --- /dev/null +++ b/R/base-content/qf()/index.html @@ -0,0 +1,1496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Qf() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Qf()

+ +

在R语言中,qf()函数用于计算F分布的反函数,即给定概率值,计算对应的临界值。 +函数定义: +

qf(p, df1, df2, lower.tail = TRUE, log.p = FALSE)
+
+参数: +- p:概率值,取值范围在0和1之间。 +- df1:分子自由度。 +- df2:分母自由度。 +- lower.tail:可选参数,逻辑值,表示是否计算累积分布函数的下尾概率。默认为TRUE,表示计算下尾概率。如果设置为FALSE,则计算上尾概率。 +- log.p:可选参数,逻辑值,表示概率值是否以对数形式给出。默认为FALSE,表示概率值以原始形式给出。 +示例: +
# 示例:计算F分布的反函数
+# 计算F分布反函数
+quantile_value <- qf(p = 0.95, df1 = 3, df2 = 6)
+print(quantile_value)
+

+

在示例中,我们使用qf()函数计算F分布的反函数。我们指定了概率值p为0.95,分子自由度df1为3,分母自由度df2为6。通过将结果存储在quantile_value中,并打印出来,我们可以得到F分布的反函数值。

+

请注意,F分布是用于统计推断中的假设检验和方差分析等问题。您可以根据具体需求调整参数来计算F分布的反函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/qnorm()/index.html b/R/base-content/qnorm()/index.html new file mode 100644 index 00000000..a8e4ea7d --- /dev/null +++ b/R/base-content/qnorm()/index.html @@ -0,0 +1,1503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Qnorm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Qnorm()

+ +

是 R 语言中的一个内置函数,用于计算正态分布的分位数(quantile)。 +

qnorm(p, mean = 0, sd = 1, lower.tail = TRUE)
+
+参数说明如下: +- p:要计算分位数的概率值,取值范围为 [0, 1],都是取左侧的累计概率值。

+

qnorm(0.9) +Pasted image 20230924114507

+
    +
  • +

    mean:正态分布的均值(默认为 0)。

    +
  • +
  • +

    sd:正态分布的标准差(默认为 1)。 +下面是一个示例,展示如何使用 qnorm() 函数计算正态分布的分位数: +

    # 计算均值为 0、标准差为 1 的正态分布的第 0.8 分位数
    +quantile <- qnorm(0.8)
    +
    +# 打印结果
    +print(quantile)
    +

    +
  • +
+

在上述示例中,我们使用 qnorm() 函数计算均值为 0、标准差为 1 的正态分布的第 0.8 分位数(即累积分布函数为 0.8 对应的数值),并将结果存储在名为 quantile 的变量中。

+

然后,我们通过打印 quantile 来查看计算得到的分位数。

+

请注意,qnorm() 函数计算的是正态分布的分位数,即给定概率值 p,它返回对应的数值,使得正态分布的累积分布函数等于 p。如果需要计算其他均值和标准差的正态分布的分位数,可以通过调整 meansd 参数的值来实现。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/qqline()/index.html b/R/base-content/qqline()/index.html new file mode 100644 index 00000000..c7b2d93a --- /dev/null +++ b/R/base-content/qqline()/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Qqline() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Qqline()

+ +

在R语言中,qqline()函数用于在QQ图上添加一条参考线,以帮助判断数据是否符合正态分布。

+

函数定义: +

qqline(y, datax = FALSE, distribution = qnorm, probs = c(0.25, 0.75),
+       qtype = 7, ...)
+

+

参数: +- y:一个向量,表示QQ图上的数据。 +- datax:一个逻辑值,指示在QQ图上使用数据的位置(默认为FALSE,使用顺序排列的数据点的位置)。 +- distribution:一个函数,用于指定参考分布的累积分布函数(默认为qnorm(),即标准正态分布)。 +- probs:一个包含两个分位数的向量,用于指定参考线的位置(默认为c(0.25, 0.75),即上下四分位数)。 +- qtype:一个整数,用于指定分位数的计算方法(默认为7,即类型7分位数)。 +- ...:其他可选参数,用于控制参考线的外观,如颜色、线型等。

+

示例: +以下是使用qqline()函数在QQ图上添加参考线的示例:

+
# 创建示例样本数据
+data <- rnorm(100)
+
+# 绘制QQ图
+qqnorm(data)
+
+# 添加参考线
+qqline(data)
+
+

在上述示例中,我们首先使用rnorm()函数生成了一个包含100个服从标准正态分布的随机数的示例样本数据。

+

然后,我们使用qqnorm()函数对样本数据进行绘制,得到QQ图。

+

最后,我们使用qqline()函数在QQ图上添加参考线,默认使用标准正态分布的上下四分位数作为参考线的位置。

+

添加参考线后,我们可以更直观地比较样本数据的分位数与参考分布的分位数之间的关系。

+

输出结果是一个带有参考线的QQ图。参考线是一条直线,与QQ图的点相比较,可以帮助判断数据是否符合正态分布。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/qqnorm()/index.html b/R/base-content/qqnorm()/index.html new file mode 100644 index 00000000..1106532e --- /dev/null +++ b/R/base-content/qqnorm()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Qqnorm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Qqnorm()

+ +

在R语言中,qqnorm()函数用于绘制一个样本的正态概率图(QQ图,Quantile-Quantile Plot)

+

用于评估数据是否符合正态分布的图形方法。它对比了观测值的分位数与正态分布的分位数之间的关系,可以帮助我们判断数据是否近似服从正态分布。

+

Pasted image 20231116141335

+

函数定义: +

qqnorm(y, ...)
+

+

参数: +- y:一个向量,表示要绘制QQ图的样本数据。 +- ...:其他可选参数,用于控制图形的外观,如颜色、标记符号等。

+

示例: +以下是使用qqnorm()函数绘制样本数据的QQ图的示例:

+
# 创建示例样本数据
+data <- rnorm(100)
+
+# 绘制QQ图
+qqnorm(data)
+
+

在上述示例中,我们首先使用rnorm()函数生成了一个包含100个服从标准正态分布的随机数的示例样本数据。

+

然后,我们使用qqnorm()函数对样本数据进行绘制,不指定其他参数。

+

这将绘制一个QQ图,显示样本数据的分位数和标准正态分布的分位数之间的比较关系。

+

根据样本数据和标准正态分布之间的相似性,我们可以判断样本数据是否近似服从正态分布。

+

输出结果是一个QQ图,其中点位于一条直线上,表示样本数据近似服从正态分布。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/qt()/index.html b/R/base-content/qt()/index.html new file mode 100644 index 00000000..e7a7ffdc --- /dev/null +++ b/R/base-content/qt()/index.html @@ -0,0 +1,1515 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Qt() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Qt()

+ +

在R语言中,qt()函数用于计算学生t分布的分位数或累积分布函数的值。

+

函数定义: +

qt(p, df, lower.tail = TRUE, log.p = FALSE)
+

+

参数: +- p:一个数值或向量,表示累积分布函数的概率值。

+
    +
  • +

    df:自由度,一个数值或向量。

    +
  • +
  • +

    lower.tail:可选参数,一个逻辑值。默认为TRUE,表示计算分位数。

    +
  • +
+

lower.tail = TRUE时,表示计算累积分布函数的值,即计算从负无穷到给定分位数的概率。

+

lower.tail = FALSE时,表示计算分位数,即计算给定概率下的分位数,对应的尾部概率为从给定分位数到正无穷的概率。

+
    +
  • log.p:可选参数,一个逻辑值,表示概率值是否为对数形式。默认为FALSE,表示概率值为原始值。
  • +
+

返回值: +函数返回一个包含学生t分布的分位数或累积分布函数值的数值或向量。

+

示例: +以下是使用qt()函数计算学生t分布的分位数的示例:

+
# 计算t分布的分位数
+quantile <- qt(0.95, df = 20)
+
+# 打印结果
+print(quantile)
+
+

在上述示例中,我们使用qt()函数计算了学生t分布的分位数,其中要求计算的分位数概率是0.95,自由度为20。

+

计算结果保存在quantile中。

+

最后,我们打印出分位数的结果。

+

以下是打印出的内容:

+
[1] 1.724718
+
+

在上述输出中,我们可以看到计算得到的学生t分布的分位数为1.724718。

+

需要注意的是,如果要计算累积分布函数的值,可以将lower.tail参数设置为FALSE,并提供相应的概率值作为p参数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/quantile()/index.html b/R/base-content/quantile()/index.html new file mode 100644 index 00000000..4eaffd9d --- /dev/null +++ b/R/base-content/quantile()/index.html @@ -0,0 +1,1592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Quantile() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Quantile()

+ +

quantile() 函数用于计算数据集的分位数。下面是 quantile() 函数的参数及其详细说明: +

quantile(x, probs, type, na.rm=FALSE)
+
+- x: 要计算分位数的向量、数组、数据框或矩阵

+
    +
  • +

    probs: 一个介于 0 到 1 之间的数值向量,表示要计算的分位数。默认为中位数(0.5)。0.75计算上四分位数

    +
  • +
  • +

    type: 分位数计算的类型

    +
  • +
  • +

    na.rm: 一个逻辑值,表示是否在计算分位数时忽略缺失值。默认为 FALSE,即不忽略缺失值。

    +
  • +
+

下面是一个示例,演示如何使用 quantile() 函数: +

# 创建一个向量
+x <- c(1, 2, 3, 4, 5, NA, 6, 7, 8, 9, 10)
+
+# 计算中位数(默认分位数)
+median <- quantile(x)
+print(median)
+
+# 计算第 25% 和第 75% 的分位数
+quartiles <- quantile(x, probs = c(0.25, 0.75))
+print(quartiles)
+
+# 使用 Type 1 算法计算第 90% 的分位数,忽略缺失值
+quantile_90th <- quantile(x, probs = 0.9, type = "1", na.rm = TRUE)
+print(quantile_90th)
+

+

输出结果为:

+
50% 
+  5 
+
+25% 75% 
+2.75 8.25 
+
+90% 
+  9 
+
+

在上述示例中,我们创建了一个包含整数和缺失值的向量 x。首先,我们使用默认参数计算了中位数。然后,通过设置 probs 参数为 0.25 和 0.75,计算了第 25% 和第 75% 的分位数。最后,我们使用 Type 1 算法计算了第 90% 的分位数,并通过设置 na.rm 参数为 TRUE 忽略了缺失值。

+

sqe()函数的应用

+

quantile() 函数中使用 seq() 函数可以帮助生成一组等间隔的概率值,用于计算对应的分位数。seq() 函数用于创建一个序列,可以指定起始值、终止值、步长和其他参数来控制序列的生成。

+

quantile() 函数中,probs 参数用于指定要计算的分位数的概率值。当我们希望计算一组等间隔的分位数时,可以使用 seq() 函数生成这些概率值。

+

下面是一个示例,展示如何使用 seq() 函数和 quantile() 函数一起计算等间隔的分位数:

+
# 创建示例向量
+x <- c(1, 2, 3, 4, 5)
+
+# 使用 seq() 函数生成等间隔的概率值
+probs <- seq(0, 1, by = 0.25)
+
+# 计算对应的分位数
+quantiles <- quantile(x, probs)
+print(quantiles)
+
+

在上述示例中,我们创建了一个包含数值的向量 x。然后,使用 seq() 函数生成了一个等间隔的概率值向量 probs,其中起始值为0,终止值为1,步长为0.25。最后,使用 quantile() 函数根据生成的概率值计算相应的分位数。

+

在这个示例中,生成的概率值为 {0, 0.25, 0.5, 0.75, 1},分别对应于最小值、第一四分位数、中位数、第三四分位数和最大值。通过使用 seq() 函数,我们可以方便地生成一组等间隔的概率值,以便计算相应的分位数。

+

请注意,seq() 函数还有其他参数可以使用,例如 length.out(生成的序列的长度)和 along.with(根据另一个对象的长度生成序列),你可以根据需要查阅 R 的文档来进一步了解。

+

type参数的详细讲解

+

在 R 语言中,quantile() 函数用于计算数值型向量或数据框中变量的分位数。type 参数是用来指定在计算分位数时所使用的算法。R 中共有九种不同的算法,即 type 参数可以取从 1 到 9 的值,这些算法在处理有限的样本数据时定义了不同的分位数。

+

这些类型的定义基于不同统计学家的分位数计算方法。这些方法在处理样本中的分位数(特别是在样本边界上)时有所不同。每种类型都有其特定的用例和优点,具体选择哪种类型取决于你的数据和你的统计需求。

+

这里简要概述每种类型:

+
    +
  • Type 1: 这种类型的分位数基于连续分布的最小化方法。它是 R&S(R软件和S语言)的默认方法,适用于连续分布
  • +
  • Type 2: 类似于类型 1,但适用于离散分布
  • +
  • Type 3: 类似于类型 2,但在样本中存在多个相同数据点时使用不同的赋值方法。
  • +
  • Type 4: 这种方法会平均两个最接近的实际观测值。
  • +
  • Type 5: 类似于类型 4,但在计算分位数时更关注样本的顺序统计量。
  • +
  • Type 6: 这种类型是基于统计软件包 SAS 使用的方法。
  • +
  • Type 7: 类型 7 是 Microsoft Excel 使用的方法。
  • +
  • Type 8: 类型 8 和类型 9 都是基于分位数定义的线性插值方法,其中类型 8 是基于海德法则(Hyndman and Fan, 1996)。
  • +
  • Type 9: 类型 9 也是基于海德法则,但在确定分位数位置时使用不同的公式。
  • +
+

使用 type 参数的一个例子是:

+
# 创建一个数值向量
+x <- c(1, 3, 5, 7, 9)
+
+# 计算第一个四分位数(25%)
+quantile(x, probs = 0.25, type = 5)
+
+

在使用 quantile() 函数时,如果你不确定哪种类型最适合你的数据,可以尝试不同的类型并比较结果。有些情况下,不同的类型会给出相同的结果,特别是在大样本量下。

+

详细的数学定义和理论背景可以在 R 语言的官方文档中找到,或者在统计学的参考书籍中查阅相应的分位数定义方法。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/range()/index.html b/R/base-content/range()/index.html new file mode 100644 index 00000000..e4e2a599 --- /dev/null +++ b/R/base-content/range()/index.html @@ -0,0 +1,1499 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Range() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Range()

+ +

是R中的一个函数,用于计算向量或数值型对象的范围。它返回一个包含最小值和最大值的长度为2的向量。 +千万要跟python中的range()函数相区分。

+

range(..., na.rm = FALSE, finite = TRUE)
+
+- ...:要计算范围的向量或数值型对象。 +- na.rm:一个逻辑值,用于确定是否忽略缺失值。如果设置为TRUE,则在计算范围时将忽略缺失值;如果设置为FALSE(默认值),则缺失值将导致结果为缺失值。 +- finite: 一个逻辑值,指示是否限制计算的范围只包括有限值。如果设置为TRUE(默认值),则在计算范围时会排除无穷大和无穷小的值;如果设置为FALSE,则包括无穷大和无穷小的值。 +下面是一个使用range()函数的示例: +
x <- c(3, 6, 2, 8, 5)
+
+value_range <- range(x)
+
+print(value_range)
+
+输出: +
[1] 2 8
+

+

在上述示例中,我们有一个数值型向量x。使用range()函数,我们计算了x中数值的范围。 +在结果向量value_range中,第一个元素表示x中的最小值,即2;第二个元素表示x中的最大值,即8。 +range()函数对于了解数据的取值范围和边界非常有用。 +希望这个解释对您有帮助。如果您还有其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rank()/index.html b/R/base-content/rank()/index.html new file mode 100644 index 00000000..e900ad96 --- /dev/null +++ b/R/base-content/rank()/index.html @@ -0,0 +1,1540 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rank() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rank()

+ +

是R中的一个函数,用于计算向量元素的排名。它返回一个新的向量,其中每个元素表示原始向量中对应元素的排名。以下是rank()函数的详细介绍和示例: +

rank(x, na.last = "keep", ties.method = "average")
+
+- x:要计算排名的向量。 +- na.last:确定如何处理缺失值。如果设置为"keep"(默认值),则缺失值将保留其原始位置,不参与排名。如果设置为"last",则将缺失值放在最后进行排名。如果设置为"first",则将缺失值放在最前面进行排名。 +- ties.method:确定如何处理并列的值。可选的方法有"average"(默认值)表示取平均排名,"min"表示取最小排名,"max"表示取最大排名,"first"表示按出现顺序排列。

+

下面是一个使用rank()函数的示例:

+
x <- c(3, 6, 2, 8, 5)
+
+ranking <- rank(x)
+
+print(ranking)
+
+

输出:

+
[1] 2 4 1 5 3
+
+

在上述示例中,我们有一个向量x,包含了一些数值。使用rank()函数,我们计算了x中元素的排名。

+

在结果向量ranking中,每个元素表示原始向量x中对应元素的排名。例如,2在x中是第1个最小的数值,因此在ranking中排名为1。6在x中是第2个最大的数值,因此在ranking中排名为4。依此类推。

+

rank()函数可用于确定向量元素的相对位置和排名关系,对于进行排序和比较操作非常有用。

+

间接获得从大到小排排序向量

+

在默认情况下,rank() 函数按照元素的大小从小到大进行排名。较小的值具有较小的排名,较大的值具有较大的排名。

+

但是,如果你希望按照元素的大小从大到小进行排名,可以通过对向量进行取反操作来实现。然后再使用 rank() 函数计算排名。

+

以下是一个示例:

+
# 示例:按照元素的大小从大到小进行排名
+x <- c(5, 3, 8, 2, 6)
+
+# 对向量取反
+x_reversed <- -x
+
+# 计算从大到小的排名
+rank_reverse <- rank(x_reversed)
+
+# 输出结果
+print(rank_reverse)
+
+

输出结果为:

+
[1] 2 4 1 5 3
+
+

在示例中,我们有一个向量 x,包含了一些数字。我们首先对向量取反,得到 x_reversed。然后使用 rank() 函数计算 x_reversed 的排名,即按照元素的大小从大到小进行排名。

+

希望这个解释对你有帮助!如果你还有其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rbind()/index.html b/R/base-content/rbind()/index.html new file mode 100644 index 00000000..cbddcd64 --- /dev/null +++ b/R/base-content/rbind()/index.html @@ -0,0 +1,1527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rbind() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + + + + + + +

Rbind()

+ +

是一个内置函数,用于按行合并(行绑定)两个或多个数据框(data frame)。它将多个数据框按照行的顺序进行合并,生成一个新的数据框。要使用 rbind()函数合并数据框,数据框之间的列数和列名必须匹配。如果存在列数或列名不匹配的情况,将会产生错误。

+
rbind(..., deparse.level = 1)
+
+

... 是要合并的数据框(至少两个),可以使用逗号分隔多个数据框。

+

deparse.level 参数用于控制结果中的行名(rownames)。

+
# 示例数据框
+df1 <- data.frame(A = 1:3, B = letters[1:3])
+df2 <- data.frame(A = 4:6, B = letters[4:6])
+
+# 使用 rbind() 函数合并数据框
+result <- rbind(df1, df2)
+
+# 打印结果
+print(result)
+
+

在上述示例中,我们有两个数据框 df1df2,每个数据框包含两列(A 和 B)。通过调用 rbind() 函数并传递数据框 df1df2 作为参数,我们将它们按行合并为一个新的数据框。结果存储在 result 中,并通过打印语句输出。

+
输出结果如下所示:
+  A B
+1 1 a
+2 2 b
+3 3 c
+4 4 d
+5 5 e
+6 6 f
+
+

在输出结果中,我们可以看到两个数据框按照行的顺序合并,生成了一个新的数据框。原始数据框的列结构被保持不变。

+

用df[i, 1]进行逐行赋值,从而实现列元素的逐步添加

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rchisq()/index.html b/R/base-content/rchisq()/index.html new file mode 100644 index 00000000..9f40a33f --- /dev/null +++ b/R/base-content/rchisq()/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rchisq() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rchisq()

+ +

是R语言中用于生成卡方分布随机变量的函数。卡方分布是统计学中常用的概率分布之一,常用于假设检验和构建置信区间。 +rchisq()函数的语法如下: +

rchisq(n, df)
+
+参数说明: +- n:生成的随机变量的数量。 +- df:卡方分布的自由度(degrees of freedom)。

+

下面是一个示例,演示如何使用rchisq()函数生成卡方分布的随机变量: +

# 生成一个服从自由度为5的卡方分布的随机变量
+random_var <- rchisq(1, df = 5)
+print(random_var)
+
+在上述示例中,我们使用rchisq(1, df = 5)生成一个服从自由度为5的卡方分布的随机变量,并将其存储在random_var变量中。print()函数用于打印随机变量的值。

+

请注意,rchisq()函数生成的随机变量的取值范围为非负实数。卡方分布的自由度参数(df)决定了分布的形状,当自由度较大时,卡方分布逐渐接近正态分布。

+

需要注意的是,生成的随机变量是根据卡方分布的概率密度函数进行随机抽样得到的,因此生成的随机变量的分布特性与指定的自由度参数相关。

+

希望这个例子能够帮助您理解rchisq()函数的用法和功能。如果您有任何其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/relevel()/index.html b/R/base-content/relevel()/index.html new file mode 100644 index 00000000..5779a49a --- /dev/null +++ b/R/base-content/relevel()/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Relevel() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Relevel()

+ +

在R语言中,relevel()函数用于重新指定因子(factor)对象的参考水平(reference level)。

+

重新指定factor对象的水平顺序

+

函数定义: +

relevel(x, ref, ...)
+

+

参数: +- x:一个因子对象。 +- ref:要指定为参考水平的水平值。 +- ...:可选参数,用于指定其他因子对象。

+

示例: +以下是使用relevel()函数重新指定因子参考水平的示例:

+
# 示例因子
+factor_vector <- factor(c("A", "B", "A", "C", "B", "C"))
+
+# 重新指定参考水平
+releveled_factor <- relevel(factor_vector, ref = "B")
+
+# 打印重新指定参考水平后的因子
+print(releveled_factor)
+
+

在上述示例中,我们创建了一个示例因子factor_vector,其中包含了一些水平。

+

然后,我们使用relevel()函数对factor_vector进行处理,将"B"指定为参考水平。

+

最后,我们打印出重新指定参考水平后的因子releveled_factor

+

以下是打印出的内容:

+
[1] A B A C B C
+Levels: A C B
+
+

在上述输出中,我们可以看到releveled_factor重新指定了参考水平,将原本的"B"水平移动到了最后。现在,水平的顺序为"A"、"C"和"B"。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/reorder()/index.html b/R/base-content/reorder()/index.html new file mode 100644 index 00000000..163f54c1 --- /dev/null +++ b/R/base-content/reorder()/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Reorder() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Reorder()

+ +

在R语言中,reorder()函数用于重新排序一个因子变量(或字符向量),以便根据另一个变量的值进行排序。它返回一个重新排序后的因子变量。 +函数定义: +

reorder(x, ..., fun = mean)
+
+参数: +- x:一个因子变量(或字符向量),需要重新排序。 +- ...:其他参数,用于指定用于排序的其他变量。 +- fun:一个函数,用于指定如何计算排序变量的排序值。默认为mean,表示使用平均值进行排序。

+
# 创建一个数据框
+data <- data.frame(
+  category = c("A", "B", "C", "D"),
+  value = c(10, 20, 15, 25)
+)
+
+# 使用reorder()函数重新排序因子变量
+data$category <- reorder(data$category, data$value)
+
+print(data)
+
+

在上面的示例中,我们创建了一个包含分类变量category和数值变量value的数据框。 +然后,我们使用reorder()函数重新排序了category因子变量,根据value变量的值进行排序。 +在这个示例中,reorder()函数默认使用mean函数计算排序值,即根据每个category值对应的value的平均值进行排序。 +打印输出的结果如下: +

  category value
+1        A    10
+2        C    15
+3        B    20
+4        D    25
+
+可以看到,category变量被重新排序,按照value变量的值从小到大进行排序。 +reorder()函数对于创建基于其他变量排序的图表非常有用,例如基于某个指标值的堆叠条形图或线图。 +您可以根据需要使用其他函数来计算排序值,并修改...参数以指定其他用于排序的变量。

+

也能实现df数据的重复排布 +

property_name$property_region <- reorder(property_name$property_region , property_name$sum_property )
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rep()/index.html b/R/base-content/rep()/index.html new file mode 100644 index 00000000..fd79b3df --- /dev/null +++ b/R/base-content/rep()/index.html @@ -0,0 +1,1527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rep() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rep()

+ +

是一个函数,用于创建重复的值或向量。 +

rep(x, times = 1, each = 1, length.out = NA)
+

+
    +
  • x:要重复的值或向量。
  • +
  • times:(可选)重复 x次数,可以是一个非负整数或向量。
  • +
  • each:(可选)每个元素重复的次数,可以是一个非负整数或向量。
  • +
  • length.out:(可选)生成的结果向量的长度,可以是一个非负整数。
  • +
+

rep() 函数根据指定的参数生成重复的值或向量,并返回一个新的向量。

+
    +
  1. +

    重复单个值: +

       result <- rep(5, times = 3)
    +   print(result)  # 输出:5 5 5
    +

    +
  2. +
  3. +

    重复向量元素: +

    values <- c(1, 2, 3)
    +result <- rep(values, times = c(2,2,3))
    +print(result)  # 输出:1 1 3 2 3 3 3
    +

    +
  4. +
+

可以指定向量具体元素重复的次数。

+
    +
  1. +

    指定每个元素的重复次数: +

    values <- c(1, 2, 3)
    +result <- rep(values, each = 2)
    +print(result)  # 输出:1 1 2 2 3 3
    +

    +
  2. +
  3. +

    指定生成结果向量的长度: +

    values <- c(1, 2, 3)
    +result <- rep(values, length.out = 6)
    +print(result)  # 输出:1 2 3 1 2 3
    +

    +
  4. +
+

5.time和each同用 +先each再time +

   values <- c(1, 2, 3)
+   result <- rep(values, times = 3, each = 2)
+   print(result) # 输出:1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 
+

+

rep() 函数在创建重复值或向量时非常有用,可以根据不同的参数设置生成不同模式的重复数据。可以根据需要灵活地使用 timeseachlength.out 参数来控制重复的方式和输出结果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rev()/index.html b/R/base-content/rev()/index.html new file mode 100644 index 00000000..a698b044 --- /dev/null +++ b/R/base-content/rev()/index.html @@ -0,0 +1,1525 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rev() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rev()

+ +

在 R 中,rev() 函数用于反转向量、列表或字符向量的顺序。 +以下是 rev() 函数的一般语法: +

rev(x)
+
+参数说明: +- x:要反转顺序的向量、列表或字符向量。 +下面是一些示例,演示如何使用 rev() 函数: +
# 示例1:向量
+x <- c(3, 1, 4, 1, 5, 9)
+
+# 反转向量的顺序
+reversed_vector <- rev(x)
+print(reversed_vector)
+
+# 示例2:列表
+my_list <- list(a = 1, b = 2, c = 3, d = 4)
+
+# 反转列表的顺序
+reversed_list <- rev(my_list)
+print(reversed_list)
+
+# 示例3:字符向量
+x <- c("apple", "banana", "cherry")
+
+# 反转字符向量的顺序
+reversed_vector <- rev(x)
+print(reversed_vector)
+

+

输出结果为: +

[1] 9 5 1 4 1 3
+
+[[1]]
+[1] 4
+
+[[2]]
+[1] 3
+
+[[3]]
+[1] 2
+
+[[4]]
+[1] 1
+
+[1] "cherry" "banana" "apple"
+

+

在上述示例中,我们使用了不同类型的数据结构。首先,我们创建了一个向量 x,然后使用 rev() 函数反转了向量的顺序,并将结果存储在 reversed_vector 中。接下来,我们创建了一个列表 my_list,使用 rev() 函数反转了列表的顺序,并将结果存储在 reversed_list 中。最后,我们创建了一个字符向量 x,使用 rev() 函数反转了字符向量的顺序,并将结果存储在 reversed_vector 中。

+

总结来说,rev() 函数用于反转向量、列表或字符向量的顺序。通过应用该函数,你可以轻松地改变数据对象的顺序。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rm()/index.html b/R/base-content/rm()/index.html new file mode 100644 index 00000000..bda4e2bf --- /dev/null +++ b/R/base-content/rm()/index.html @@ -0,0 +1,1531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rm()

+ +

在R语言中,rm()函数是一个内置函数,用于删除对象。 +函数定义: +

rm(list = ls(), envir = as.environment(pos = 1), inherits = FALSE)
+
+参数: +- list:要删除的对象的名称或名称的向量。默认为当前环境中的所有对象,使用ls()函数获取对象列表。

+
    +
  • +

    envir:要删除对象的环境。默认为当前环境,使用as.environment(pos = 1)获取当前环境。

    +
  • +
  • +

    inherits:一个逻辑值,表示是否删除继承自指定对象的对象。默认为FALSE,即只删除指定的对象。

    +
  • +
  • +

    删除单个对象: +

    # 创建一个对象
    +x <- 10
    +
    +# 删除对象
    +rm(x)
    +
    +# 尝试访问已删除的对象
    +print(x)
    +
    +输出: +
    Error: object 'x' not found
    +
    +在上面的示例中,我们首先创建了一个名为x的对象,并将其赋值为10。然后,我们使用rm()函数删除了对象x。最后,我们尝试访问已删除的对象x,会收到一个错误消息,提示找不到对象。

    +
  • +
  • +

    删除多个对象: +

    # 创建多个对象
    +x <- 10
    +y <- 20
    +z <- 30
    +
    +# 删除多个对象
    +rm(list = c("x", "y"))
    +
    +# 尝试访问已删除的对象
    +print(x)
    +print(y)
    +print(z)
    +
    +输出: +
    Error: object 'x' not found
    +Error: object 'y' not found
    +[1] 30
    +
    +在上面的示例中,我们创建了三个对象xyz,并给它们分别赋值。然后,我们使用rm()函数删除了对象xy。最后,我们尝试访问已删除的对象xy,会收到两个错误消息,但仍可以访问未删除的对象z

    +
  • +
+

通过使用rm()函数,您可以删除单个或多个对象。可以使用list参数指定要删除的对象名称,也可以使用envir参数指定要删除对象的环境。默认情况下,只删除指定的对象,不删除继承自指定对象的对象。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rnorm()/index.html b/R/base-content/rnorm()/index.html new file mode 100644 index 00000000..99174d86 --- /dev/null +++ b/R/base-content/rnorm()/index.html @@ -0,0 +1,1497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rnorm() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rnorm()

+ +

是 R 语言中的一个随机数生成函数,用于生成符合正态分布(也称为高斯分布)的随机数。它的语法如下:

+
rnorm(n, mean = 0, sd = 1)
+
+

参数说明如下:

+
    +
  • n:生成随机数的个数。
  • +
  • mean:正态分布的均值(默认为 0)。
  • +
  • sd:正态分布的标准差(默认为 1)。
  • +
+

下面是一个示例,展示如何使用 rnorm() 函数生成符合正态分布的随机数:

+
# 生成 100 个均值为 0、标准差为 1 的随机数
+random_numbers <- rnorm(100)
+
+# 打印前 10 个随机数
+print(random_numbers[1:10])
+
+

在上述示例中,我们使用 rnorm() 函数生成了 100 个符合均值为 0、标准差为 1 的随机数,并将结果存储在名为 random_numbers 的变量中。

+

然后,我们通过打印 random_numbers 的前 10 个元素来查看生成的随机数。

+

你可以根据需要调整 nmeansd 参数的值,以生成不同均值和标准差的随机数。请注意,生成的随机数将遵循正态分布的特性,即大部分随机数会集中在均值附近,而离均值越远,随机数出现的概率越低。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/round()/index.html b/R/base-content/round()/index.html new file mode 100644 index 00000000..baf78d46 --- /dev/null +++ b/R/base-content/round()/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Round() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Round()

+ +

在R语言中,round()函数用于对数值进行四舍五入。

+

R中默认全局变量digits=2,所以一般都是最优保留2位小数,不足两位就保留到对应位数?

+

函数定义: +

round(x, digits = 0)
+

+

参数: +- x:要进行四舍五入的数值。 +- digits:可选参数,指定保留的小数位数,默认为0,表示不保留小数位。

+

示例: +以下是使用round()函数对数值进行四舍五入的示例:

+
# 四舍五入到整数
+num1 <- 3.6
+rounded_num1 <- round(num1)
+print(rounded_num1)
+
+# 四舍五入到指定小数位数
+num2 <- 3.14159
+rounded_num2 <- round(num2, digits = 2)
+print(rounded_num2)
+
+

在上述示例中,我们首先定义了两个数值num1num2

+

然后,我们使用round()函数对num1进行四舍五入,默认不保留小数位。四舍五入后的结果保存在rounded_num1中,并打印出来。

+

接着,我们使用round()函数对num2进行四舍五入,指定保留两位小数。四舍五入后的结果保存在rounded_num2中,并打印出来。

+

以下是打印出的内容:

+
[1] 4
+[1] 3.14
+
+

在上述输出中,我们可以看到num1被四舍五入为整数4,而num2被四舍五入保留两位小数为3.14。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rownames()/index.html b/R/base-content/rownames()/index.html new file mode 100644 index 00000000..9fc61fdb --- /dev/null +++ b/R/base-content/rownames()/index.html @@ -0,0 +1,1519 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rownames() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rownames()

+ +

在R语言中,rownames()是一个内置函数,用于获取或设置对象的行名称。 +函数定义: +

rownames(object)
+
+参数: +- object:要获取或设置行名称的对象,例如矩阵、数据框或向量。

+
    +
  1. 获取对象的行名称: +
    # 创建一个数据框
    +df <- data.frame(A = 1:3, B = 4:6, C = 7:9)
    +
    +# 获取数据框的行名称
    +row_names <- rownames(df)
    +
    +print(row_names)
    +
    +输出: +
    [1] "1" "2" "3"
    +
  2. +
+

在上面的示例中,我们创建了一个名为df的数据框。然后,我们使用rownames()函数获取了数据框df的行名称,并将结果存储在row_names变量中。

+

输出结果显示了数据框的行名称,这里是字符类型的数字。默认情况下,行名称是从1开始的数字索引。

+
    +
  1. 设置对象的行名称: +
    # 创建一个矩阵
    +mat <- matrix(1:6, nrow = 2)
    +
    +# 设置矩阵的行名称
    +rownames(mat) <- c("Row1", "Row2")
    +
    +print(mat)
    +
    +输出: +
         [,1] [,2] [,3]
    +Row1    1    3    5
    +Row2    2    4    6
    +
  2. +
+

在上面的示例中,我们创建了一个2x3的矩阵mat,其中包含1到6的整数。然后,我们使用rownames()函数将矩阵mat的行名称设置为"Row1"和"Row2",通过将这些名称赋值给rownames(mat)来实现。

+

输出结果显示了带有行名称的矩阵。

+

通过使用rownames()函数,您可以获取或设置对象的行名称,无论是矩阵、数据框还是其他对象。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/rt()/index.html b/R/base-content/rt()/index.html new file mode 100644 index 00000000..805cbcd9 --- /dev/null +++ b/R/base-content/rt()/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rt() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rt()

+ +

是 R 语言中的一个内置函数,用于生成符合 t 分布的随机数。 +

rt(n, df)
+
+参数说明如下: +- n:生成随机数的个数。 +- df:t 分布的自由度参数。 +下面是一个示例,展示如何使用 rt() 函数生成符合 t 分布的随机数:

+
# 生成 100 个自由度为 10 的 t 分布随机数
+random_numbers <- rt(100, df = 10)
+
+# 打印前 10 个随机数
+print(random_numbers[1:10])
+
+

在上述示例中,我们使用 rt() 函数生成了 100 个自由度为 10 的 t 分布随机数,并将结果存储在名为 random_numbers 的变量中。

+

然后,我们通过打印 random_numbers 的前 10 个元素来查看生成的随机数。

+

请注意,t 分布是用于小样本情况下的统计推断的概率分布。通过调整 df 参数,可以控制 t 分布的自由度。自由度越大,t 分布趋近于标准正态分布。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/runif()/index.html b/R/base-content/runif()/index.html new file mode 100644 index 00000000..e6b0cbde --- /dev/null +++ b/R/base-content/runif()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Runif() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Runif()

+ +

在R语言中,runif()函数用于生成指定范围内的均匀分布的随机数。它可以生成单个随机数或一个由多个随机数组成的向量。 +

runif(n, min = 0, max = 1)
+
+- n:表示要生成的随机数的数量。 +- min:表示随机数的最小值(闭区间)。默认为0。 +- max:表示随机数的最大值(开区间)。默认为1。

+

下面是一些示例,演示如何使用runif()函数: +1. 生成一个随机数: +

x <- runif(1)
+x
+
+输出示例: +
[1] 0.8400274
+
+在这个示例中,我们生成了一个介于0和1之间的随机数。

+
    +
  1. +

    生成一个包含多个随机数的向量: +

    y <- runif(5)
    +y
    +
    +输出示例: +
    [1] 0.5303953 0.9787434 0.0660195 0.6296170 0.7471945
    +
    +在这个示例中,我们生成了一个包含5个随机数的向量。

    +
  2. +
  3. +

    生成指定范围的随机数:

    +
  4. +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sample()/index.html b/R/base-content/sample()/index.html new file mode 100644 index 00000000..7858e8d5 --- /dev/null +++ b/R/base-content/sample()/index.html @@ -0,0 +1,1532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sample() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sample()

+ +

在R语言中,sample()函数用于从给定的向量或集合中随机抽样。它可以用于生成随机排列、随机抽取样本等操作。sample()函数的常用参数如下: +

sample()
+
+- x:表示要从中抽样的向量或集合。 +- size:表示要抽取的样本大小,可以是一个正整数。 +- replace:表示是否允许重复抽样,取值为逻辑值(TRUEFALSE)。如果为TRUE,则允许重复抽样;如果为FALSE,则不允许重复抽样。 +- prob:表示每个元素被抽取的概率,可以是一个数字向量,其中每个元素都是非负数,并且总和为1。如果未指定,则默认为均匀分布。 +- ...:表示其他可选参数,例如设置随机数种子set.seed()等。

+

下面是一些sample()函数的示例用法:

+
    +
  1. +

    从向量中随机抽取样本: +

    x <- c("A", "B", "C", "D", "E")
    +sample(x, size = 3)
    +
    +输出示例: +
    [1] "B" "D" "A"
    +
    +在这个示例中,我们从向量x中随机抽取了3个元素。

    +
  2. +
  3. +

    生成随机排列: +

    x <- 1:5
    +sample(x)
    +
    +输出示例: +
    [1] 2 4 1 5 3
    +
    +在这个示例中,我们生成了向量1:5的随机排列。

    +
  4. +
  5. +

    随机抽取样本允许重复: +

    x <- c("A", "B", "C", "D", "E")
    +sample(x, size = 5, replace = TRUE)
    +
    +输出示例: +
    [1] "C" "B" "D" "B" "E"
    +
    +在这个示例中,我们使用replace = TRUE参数允许重复抽样。

    +
  6. +
  7. +

    指定抽样概率: +

    x <- c("A", "B", "C", "D", "E")
    +prob <- c(0.1, 0.2, 0.3, 0.2, 0.2)
    +sample(x, size = 4, prob = prob, replace = TRUE)
    +
    +输出示例: +
    [1] "C" "A" "C" "D"
    +
    +在这个示例中,我们指定了每个元素被抽取的概率,其中"A"的概率为0.1,"B"的概率为0.2,以此类推。

    +
  8. +
+

这些示例展示了sample()函数的一些常见用法。您可以根据自己的需求使用不同的参数组合来实现各种随机抽样操作。

+

希望这些示例能帮助您理解sample()函数的用法。如有需要进一步的解释或有其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sapply()/index.html b/R/base-content/sapply()/index.html new file mode 100644 index 00000000..ddbf38db --- /dev/null +++ b/R/base-content/sapply()/index.html @@ -0,0 +1,1546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sapply() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sapply()

+ +

处理df中的每列数据;

+

在 R 语言中,sapply() 函数用于对向量、列表或数据框的每个元素应用指定的函数,并返回结果向量、列表或数据框。下面是对 sapply() 函数常用参数的详细介绍和举例:

+

函数语法: +

sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
+

+

参数说明: +以下是 sapply() 函数的一些常用参数,具体说明如下: +- X:要应用函数的向量、列表或数据框。 +- FUN:要应用的函数。 +- ...:其他参数,传递给 FUN 函数。 +- simplify:逻辑值,表示是否尝试简化结果。默认为 TRUE,表示尝试将结果简化为向量或矩阵。如果设为 FALSE,则结果将始终为列表。 +- USE.NAMES:逻辑值,表示是否使用 X 的名称作为结果的名称。默认为 TRUE

+

示例: +下面是使用 sapply() 函数应用函数的示例:

+
    +
  1. 应用内置函数:
  2. +
+
# 应用 sum() 函数
+x <- c(1, 2, 3)
+result <- sapply(x, sum)
+
+result
+
+

输出: +

[1] 1 2 3
+

+

在上述示例中,我们使用 sapply() 函数和内置函数 sum() 对向量 x 的每个元素应用求和操作。结果是一个包含每个元素求和结果的向量。

+
    +
  1. 应用自定义函数:
  2. +
+
# 自定义函数
+add_one <- function(x) {
+  x + 1
+}
+
+# 应用自定义函数
+x <- c(1, 2, 3)
+result <- sapply(x, add_one)
+
+result
+
+

输出: +

[1] 2 3 4
+

+

在上述示例中,我们使用 sapply() 函数和自定义的函数 add_one() 对向量 x 的每个元素应用加一操作。结果是一个包含每个元素加一结果的向量。

+
    +
  1. 应用函数到数据框的每列:
  2. +
+
# 创建一个数据框
+data <- data.frame(
+  x = c(1, 2, 3),
+  y = c("a", "b", "c")
+)
+
+# 应用函数到数据框的每列
+result <- sapply(data, unique)
+
+result
+
+

输出: +

$x
+[1] 1 2 3
+
+$y
+[1] "a" "b" "c"
+

+

在上述示例中,我们使用 sapply() 函数将内置函数 unique() 应用于数据框 data 的每一列。结果是一个列表,其中包含每列的唯一值。

+

通过传递适当的参数和函数,你可以使用 sapply() 函数在 R 中对向量、列表或数据框的每个元素应用指定的函数,并获得相应的结果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sd()/index.html b/R/base-content/sd()/index.html new file mode 100644 index 00000000..76397aa2 --- /dev/null +++ b/R/base-content/sd()/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sd() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sd()

+ +

在 R 中,sd() 函数用于计算向量或数据框中数值型变量的标准差。 +以下是 sd() 函数的一般语法: +

sd(x, na.rm = FALSE)
+
+参数说明: +- x: 要计算标准差的向量、列表、数据框或数值型变量。 +- na.rm: 一个逻辑值,用于指定在计算标准差时是否忽略缺失值(NA)。默认为 FALSE,表示不忽略缺失值;如果设置为 TRUE,则在计算标准差时将忽略缺失值。

+

以下是 sd() 函数的示例: +

# 示例1:向量
+x <- c(3, 1, 4, 1, 5, 9)
+
+# 计算向量的标准差
+standard_deviation <- sd(x)
+print(standard_deviation)
+
+# 示例2:数据框
+df <- data.frame(x = c(3, 1, 4, 1, 5, 9), y = c(2, 6, 8, 3, 1, 5))
+
+# 计算数据框中变量 y 的标准差
+standard_deviation <- sd(df$y)
+print(standard_deviation)
+
+# 示例3:带有缺失值的向量
+x <- c(3, 1, NA, 4, 1, 5, 9)
+
+# 忽略缺失值,计算标准差
+standard_deviation <- sd(x, na.rm = TRUE)
+print(standard_deviation)
+

+

输出结果为: +

[1] 2.915476
+
+[1] 2.366432
+
+[1] 2.915476
+

+

在示例1中,我们使用了一个向量 x,并使用 sd() 函数计算了该向量的标准差。 +在示例2中,我们创建了一个包含两个变量的数据框 df,使用 sd() 函数计算了数据框中变量 y 的标准差。 +在示例3中,我们创建了一个包含缺失值的向量 x,通过将 na.rm 参数设置为 TRUE,在计算标准差时忽略了缺失值。 +总结来说,sd() 函数可用于计算向量、数据框或数值型变量的标准差。你可以使用 na.rm 参数来控制是否忽略缺失值。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/seq()/index.html b/R/base-content/seq()/index.html new file mode 100644 index 00000000..85e547d5 --- /dev/null +++ b/R/base-content/seq()/index.html @@ -0,0 +1,1511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Seq() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Seq()

+ +

在 R 语言中,是一个函数,用于创建数值序列seq() 函数根据指定的参数生成一个数值序列,并返回一个由这些值组成的向量。 +

seq(from, to, by, length.out)
+
+ - from:序列的起始值。 + - to:序列的结束值。 + - by:(可选)序列中相邻值之间的步长,2+3=5,步长为3。默认为1 + - length.out:(可选)生成的序列的长度,即元素个数 +后面三个参数不能同时出现,两个参数就能决定序列值 。

+

下面是一些示例: +1. 创建默认步长的序列: +

seq1 <- seq(1, 5)
+print(seq1)  # 输出:1 2 3 4 5
+
+在这个示例中,我们使用 `seq()` 函数创建一个从 1  5 的默认步长为 1 的序列。
+
+2. 创建指定步长的序列: +
seq2 <- seq(0, 10, by = 2)
+print(seq2)  # 输出:0 2 4 6 8 10
+
+在这个示例中,我们使用 `seq()` 函数创建一个从 0  10,步长为 2 的序列。
+
+3. 创建指定长度的序列: +
seq3 <- seq(1, 10, length.out = 5)
+print(seq3)  # 输出:1 3.25 5.5 7.75 10
+```
+在这个示例中,我们使用 `seq()` 函数创建一个从 1  10,并且长度为 5 的序列。生成的序列会根据起始值和结束值之间的距离等间隔地分布。
+
+4,by和length.out一起用 +元素数量为4,步长为3 +
   seq(from = 2,by = 3,length.out = 4)
+   # 输出:  2  5  8 11
+
+seq() 函数在创建数值序列时非常有用,可以根据指定的起始值、结束值、步长或序列长度来生成不同模式的序列。根据需要可以灵活地调整参数来创建所需的数值序列。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/seq_along()/index.html b/R/base-content/seq_along()/index.html new file mode 100644 index 00000000..e775b6fa --- /dev/null +++ b/R/base-content/seq_along()/index.html @@ -0,0 +1,1553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Seq along() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Seq along()

+ +

在R语言中,seq_along() 函数是一个基础的函数,用于生成与输入向量长度相同的整数序列。以下是关于 seq_along() 函数的基本信息:

+

seq_along 函数概述:

+

功能: 生成与输入向量长度相同的整数序列。

+

所属包: seq_along() 函数是R的基础函数,无需加载任何特定包。

+

定义: +

seq_along(along.with)
+

+

参数介绍:

+
    +
  • along.with 一个对象,通常是向量、列表或数据框,用于确定生成的整数序列的长度。
  • +
+

示例:

+
# 使用seq_along生成整数序列
+vector <- c(10, 20, 30, 40, 50)
+
+# 生成与向量长度相同的整数序列
+sequence <- seq_along(vector)
+
+# 显示结果
+print(sequence)
+
+

输出:

+

在上述示例中,seq_along() 函数被用于生成与输入向量 vector 长度相同的整数序列。输出结果将是:

+
[1] 1 2 3 4 5
+
+

这表示成功生成了一个整数序列,该序列的长度与输入向量的长度相同。这个序列通常用于在循环或其他情境中指定位置。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/set_names()/index.html b/R/base-content/set_names()/index.html new file mode 100644 index 00000000..f4674160 --- /dev/null +++ b/R/base-content/set_names()/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Set names() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Set names()

+ +

在R语言中,set_names()函数是用于给向量或列表设置新的名称的函数。它可以为向量或列表中的元素分配新的名称,并返回具有新命名的对象。

+

set_names(x, nm)
+
+- x:表示要设置名称的向量或列表。 +- nm:表示新的名称向量,长度必须与x的长度相同。

+
    +
  1. +

    为向量设置新的名称: +

    x <- c(1, 2, 3, 4, 5)
    +names <- c("A", "B", "C", "D", "E")
    +new_x <- set_names(x, names)
    +new_x
    +
    +输出示例: +
     A  B  C  D  E 
    + 1  2  3  4  5 
    +
    +在这个示例中,我们为向量x设置了新的名称,使用了set_names()函数。新的向量new_x具有相应的新名称。

    +
  2. +
  3. +

    为列表设置新的名称: +

    my_list <- list(a = 1, b = 2, c = 3)
    +new_names <- c("x", "y", "z")
    +new_list <- set_names(my_list, new_names)
    +new_list
    +
    +输出示例: +
    $x
    +[1] 1
    +
    +$y
    +[1] 2
    +
    +$z
    +[1] 3
    +
    +在这个示例中,我们为列表my_list中的元素设置了新的名称,使用了set_names()函数。新的列表new_list具有相应的新名称。

    +
  4. +
+

这些示例展示了set_names()函数的一些常见用法。您可以根据需要使用set_names()函数为向量或列表中的元素分配新的名称。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/setwd()/index.html b/R/base-content/setwd()/index.html new file mode 100644 index 00000000..6ef7b4f6 --- /dev/null +++ b/R/base-content/setwd()/index.html @@ -0,0 +1,1497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Setwd() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Setwd()

+ +

在R语言中,setwd()函数用于设置当前工作目录(working directory)。

+

函数定义: +

setwd(dir)
+

+

参数: +以下是setwd()函数中的参数:

+
    +
  • dir:要设置为当前工作目录的路径。可以是一个字符串,表示目录的路径。
  • +
+

返回值: +setwd()函数没有明确的返回值。它仅用于将指定的路径设置为当前工作目录。

+

示例: +以下是使用setwd()函数设置当前工作目录的示例:

+
# 设置当前工作目录
+setwd("/path/to/directory")
+
+

在上述示例中,我们使用setwd()函数将/path/to/directory设置为当前工作目录。可以将路径替换为你想要设置的实际目录路径。

+

请注意,setwd()函数会更改R的当前工作目录,即后续文件读写等操作将在该目录下进行。这对于管理文件和加载数据非常有用。

+

关于“距离”的部分,setwd()函数与距离计算无关,它主要用于文件系统操作。如果你对距离计算感兴趣,可以考虑使用其他R包中的函数,如dist()用于计算距离矩阵。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/shapiro.test()/index.html b/R/base-content/shapiro.test()/index.html new file mode 100644 index 00000000..707206c8 --- /dev/null +++ b/R/base-content/shapiro.test()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Shapiro.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Shapiro.test()

+ +

在 R 语言中,shapiro.test() 函数用于执行 Shapiro-Wilk 正态性检验。该检验用于验证一个样本是否来自于正态分布。下面是对 shapiro.test() 函数的参数进行详细介绍和举例: +函数语法: +

shapiro.test(x)
+
+参数说明: +- x:一个数据向量,表示要进行正态性检验的样本数据。 +返回值: +函数返回一个包含 Shapiro-Wilk 正态性检验结果的对象,其中包括统计量 W(Shapiro-Wilk 统计量)、p 值等。

+

示例: +下面是一个使用 shapiro.test() 函数进行正态性检验的示例: +

# 生成一个服从正态分布的样本数据
+set.seed(123)
+x <- rnorm(100)
+
+# 使用 shapiro.test() 进行正态性检验
+result <- shapiro.test(x)
+
+# 打印正态性检验结果
+print(result)
+

+

在上述示例中,我们首先使用 rnorm() 函数生成一个服从正态分布的样本数据向量 x。然后,我们使用 shapiro.test() 函数对样本数据 x 进行 Shapiro-Wilk 正态性检验。最后,我们打印出正态性检验的结果。

+

请注意,shapiro.test() 函数主要适用于小样本数据(通常适用于小于 5000 个观测值)。对于大样本数据,正态性检验可能不够敏感。此外,shapiro.test() 函数仅适用于单个样本的正态性检验。如果你想比较两个样本的正态性,可以使用其他方法,如 Q-Q 图或者其他正态性检验方法。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sort()/index.html b/R/base-content/sort()/index.html new file mode 100644 index 00000000..8e2e4c04 --- /dev/null +++ b/R/base-content/sort()/index.html @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sort() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sort()

+ +

在 R 语言中,sort() 函数用于对向量或矩阵进行排序。它可以按升序或降序对元素进行排序。下面是对 sort() 函数的参数进行详细介绍和举例: +函数语法: +

sort(x, decreasing = FALSE, na.last = TRUE, ...)
+
+参数说明: +- x:一个向量或矩阵,表示要进行排序的对象。 +- decreasing:一个逻辑值,用于指定是否按降序排序。默认为 FALSE,表示按升序排序。 +- na.last:一个逻辑值,用于指定是否将缺失值放在排序结果的最后。默认为 TRUE,表示缺失值放在最后。 +- ...:其他参数,用于传递给 sort() 函数的选项。

+

返回值:

+

函数返回一个按指定顺序排序的向量或矩阵。

+

示例:

+

下面是使用 sort() 函数对向量进行排序的示例: +

# 创建一个向量
+x <- c(5, 2, 8, 1, 9)
+
+# 对向量进行升序排序
+sorted_x <- sort(x)
+
+# 打印排序结果
+print(sorted_x)
+
+## 结果
+# [1, 2, 5, 8, 9]
+

+

在上述示例中,我们创建了一个向量 x,其中包含了一些数字。然后,我们使用 sort() 函数对向量 x 进行升序排序,并将排序结果保存到 sorted_x 中。最后,我们打印出排序后的向量。

+

你也可以使用 sort() 函数对矩阵的行或列进行排序。下面是一个对矩阵进行排序的示例:

+
# 创建一个矩阵
+mat <- matrix(c(5, 2, 8, 1, 9, 4), nrow = 2)
+
+# 对矩阵的行进行升序排序
+sorted_mat <- sort(mat, decreasing = FALSE, na.last = TRUE)
+
+# 打印排序结果
+print(sorted_mat)
+
+

在上述示例中,我们创建了一个 2x3 的矩阵 mat。然后,我们使用 sort() 函数对矩阵的行进行升序排序,并将排序结果保存到 sorted_mat 中。最后,我们打印出排序后的矩阵。

+

通过指定 decreasing 参数为 TRUE,可以进行降序排序。如果需要将缺失值放在排序结果的最前面,可以将 na.last 参数设置为 FALSE

+

请注意,sort() 函数在默认情况下会对向量或矩阵进行元素级别的排序。如果你想对矩阵的整行或整列进行排序,可以使用 order() 函数结合索引的方式实现。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sort(x)/index.html b/R/base-content/sort(x)/index.html new file mode 100644 index 00000000..40fd472b --- /dev/null +++ b/R/base-content/sort(x)/index.html @@ -0,0 +1,1546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sort(x) - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sort(x)

+ +

当使用 sort() 函数对向量进行排序时,可以使用以下参数进行控制:

+

sort(x, decreasing = FALSE, na.last = NA, ...)
+
+参数说明: +- x: 要排序的向量、数组、数据框或矩阵。 +- decreasing: 一个逻辑值,用于指定排序的顺序。默认为 FALSE,表示按照从小到大的顺序排序。如果设置为 TRUE,则按照从大到小的顺序排序。 +- na.last: 一个逻辑值,用于指定如何处理缺失值(NA)。默认为 NA,表示将缺失值放在排序的末尾。如果设置为 TRUE,则将缺失值放在排序的末尾;如果设置为 FALSE,则将缺失值放在排序的开头。 +- ...: 其他可选参数,用于进一步控制排序过程。

+

以下是使用 sort() 函数进行从大到小排序的示例:

+
# 示例1:向量
+x <- c(3, 1, 4, 1, 5, 9)
+
+# 从大到小排序
+sorted_vector <- sort(x, decreasing = TRUE)
+
+# 输出排序后的向量
+print(sorted_vector)
+
+

输出结果为:

+
[1] 9 5 4 3 1 1
+
+

在上述示例中,我们使用了向量 x,并通过将 decreasing 参数设置为 TRUE 来实现从大到小的排序。结果是按照从大到小的顺序对向量进行了排序。

+

请注意,sort() 函数还可以用于对数据框、矩阵等其他数据结构进行排序,但在这种情况下,需要指定按照哪一列或行进行排序。如果要对数据框进行排序,请参考 ?sort 获取更多详细的用法和示例。

+

除了向量,sort() 函数还可以用于对矩阵的行或列进行排序,以及对数据框的某一列进行排序。下面是一些示例:

+
# 创建一个矩阵
+mat <- matrix(c(5, 2, 3, 1, 4, 6), nrow = 2)
+
+# 对矩阵的每一行进行排序
+sorted_mat_rows <- apply(mat, 1, sort)
+print(sorted_mat_rows)
+
+# 对矩阵的每一列进行排序
+sorted_mat_cols <- apply(mat, 2, sort)
+print(sorted_mat_cols)
+
+

输出结果为:

+
     [,1] [,2]
+[1,]    2    5
+[2,]    1    6
+
+     [,1] [,2]
+[1,]    1    2
+[2,]    4    5
+[3,]    3    6
+
+

在上面的示例中,我们首先创建了一个矩阵 mat。然后,我们使用 apply() 函数将 sort() 应用于矩阵的行和列。通过设置 MARGIN 参数为 1,我们对矩阵的每一行进行排序,并将结果存储在 sorted_mat_rows 中。通过设置 MARGIN 参数为 2,我们对矩阵的每一列进行排序,并将结果存储在 sorted_mat_cols 中。

+

对于数据框,你可以使用 order() 函数来对某一列进行排序。下面是一个示例: +

# 创建一个数据框
+df <- data.frame(
+  x = c(3, 1, 4, 1, 5, 9, 2, 6),
+  y = c("a", "b", "c", "d", "e", "f", "g", "h")
+)
+
+# 对数据框按照 x 列进行排序
+sorted_df <- df[order(df$x), ]
+print(sorted_df)
+

+

输出结果为:

+
  x y
+2 1 b
+4 1 d
+7 2 g
+1 3 a
+3 4 c
+5 5 e
+8 6 h
+6 9 f
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sprintf()/index.html b/R/base-content/sprintf()/index.html new file mode 100644 index 00000000..979fa929 --- /dev/null +++ b/R/base-content/sprintf()/index.html @@ -0,0 +1,1581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sprintf() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Sprintf()

+ +

在R语言中,sprintf()函数不是dplyr包中的函数,而是R的基础函数之一,用于格式化输出字符串。以下是关于sprintf()函数的一些基本信息:

+

功能: 格式化输出字符串。

+

所属包: sprintf函数属于R的基础函数,无需额外安装包。

+

定义: +

sprintf(fmt, ...)
+

+

参数介绍:

+
    +
  • +

    fmt 格式字符串,定义了输出的格式。

    +
  • +
  • +

    ... 用于替换格式字符串中占位符的值。

    +
  • +
+

%s 字符串

+

%.0f 数值,点后面是保留小数位数

+

示例:

+
# 使用sprintf格式化输出字符串
+result <- sprintf("Hello, %s! Today is %s.", "John", Sys.Date())
+
+# 显示结果
+print(result)
+
+

输出:

+

在上述示例中,sprintf()函数用于格式化输出字符串,将占位符 %s 替换为相应的值。输出结果将是:

+
[1] "Hello, John! Today is 2023-11-17."
+
+

这样,占位符被替换为实际的值,得到了格式化后的字符串。需要注意的是,sprintf()函数在实际应用中经常用于构建复杂的输出格式。

+

百分号怎么加\%

+

在R中,你可以使用百分号的转义序列来显示百分号。以下是修正后的代码:

+
# 假设 z_α2 已经定义
+z_α2 <- 25/20
+
+# 计算 p
+p <- 1 - round(2 * pnorm(z_α2, lower.tail = FALSE), 4)
+
+# 使用转义序列显示百分号
+sprintf("The confidence level: %s%%", p)
+
+

在这个例子中,%s%% 是一个转义序列,其中 %s 表示字符串的位置,%% 表示一个百分号。这样,sprintf 函数会将 p 的值插入到字符串中,并在百分号之后显示百分号。

+

\%\%在字符串中必须这么表达,以及多个输出变量时!

+

在字符中表示百分号也得这么加,否则报错,如95\%\% +

sprintf("The 95%% confidence intervals for the mean age:[%.2f, %.2f]", age_low_limit, age_up_limit)
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/str()/index.html b/R/base-content/str()/index.html new file mode 100644 index 00000000..7952bd26 --- /dev/null +++ b/R/base-content/str()/index.html @@ -0,0 +1,1492 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str()

+ +

不含列表列的数据框显示 +Pasted image 20231012195027

+

含列表列的数据框显示:

+

glimpse() +Pasted image 20240107124937

+

str()会将列表列详细展开 +Pasted image 20240107124942

+
'data.frame':   150 obs. of  5 variables:
+ $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
+ $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
+ $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
+ $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
+ $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/sum()/index.html b/R/base-content/sum()/index.html new file mode 100644 index 00000000..71662f8d --- /dev/null +++ b/R/base-content/sum()/index.html @@ -0,0 +1,1546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sum() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sum()

+ +

在R语言中,sum()函数用于计算数值向量的总和。它接受一个数值向量作为输入,并返回这些值的累加和。 +

sum(x, na.rm = FALSE)
+

+
    +
  • x:表示要计算总和的数值向量。
  • +
  • na.rm:一个逻辑值,表示是否在计算总和时忽略缺失值(NA)。默认为FALSE,即不忽略缺失值;如果设置为TRUE,则在计算总和时会忽略缺失值。
  • +
  • +

    计算向量的总和: +

    x <- c(1, 2, 3, 4, 5)
    +sum(x)
    +
    +输出示例: +
    [1] 15
    +
    +在这个示例中,我们计算了向量x的总和,结果为15。

    +
  • +
  • +

    忽略缺失值的总和计算: +

    y <- c(1, 2, NA, 4, 5)
    +sum(y, na.rm = TRUE)
    +
    +输出示例: +
    [1] 12
    +
    +在这个示例中,我们使用了na.rm = TRUE参数,表示在计算总和时忽略缺失值。结果中的NA被忽略,计算的总和为12。

    +
  • +
  • +

    对矩阵的列进行总和计算: +

    mat <- matrix(1:9, nrow = 3)
    +sum(mat[, 2])
    +
    +输出示例: +
    [1] 12
    +
    +在这个示例中,我们计算了矩阵mat的第二列的总和,结果为12。

    +
  • +
+

这些示例展示了sum()函数的一些常见用法。您可以根据需要使用sum()函数来计算数值向量或矩阵的总和。

+

希望这些示例能帮助您理解sum()函数的用法。如果您有任何其他问题,请随时提问。

+

sum(c(true, false...))技巧

+

n <- 1000000
+x <- runif(n, -1, 1)
+y <- runif(n, -1, 1)
+sum_pi = sum((x^2+y^2)<=1)
+
+通过true为1进行向量元素求和

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/summary()/index.html b/R/base-content/summary()/index.html new file mode 100644 index 00000000..70457bd4 --- /dev/null +++ b/R/base-content/summary()/index.html @@ -0,0 +1,1686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Summary() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Summary()

+ +

描述统计

+

对数据框

+

只是summary() +Pasted image 20231227130146

+

加上pander() +Pasted image 20231227130310

+

在 R 语言中,summary() 函数用于生成对象的摘要统计信息,包括描述性统计、分位数、最小值、最大值以及模型拟合的相关信息(例如线性回归模型的系数、标准误差、t 值和 p 值等) +函数定义: +

summary(object, ...)
+
+参数: +- object:要生成摘要统计信息的对象,如向量、数据框、线性模型等。 +- ...:其他参数,用于传递给底层的summary()方法。

+

summary()函数根据对象的类型生成相应的摘要统计信息

+
    +
  • +

    对于向量,它提供最小值、第一四分位数、中位数、平均值、第三四分位数和最大值。

    +
  • +
  • +

    对于数据框,它提供每个变量的最小值、第一四分位数、中位数、平均值、第三四分位数和最大值,以及因子变量的模式(mode)和频数(count)。

    +
  • +
  • +

    对于线性模型,它提供回归系数的估计值、标准误差、t值和p值,还提供残差的摘要统计信息和模型的拟合度量。

    +
  • +
+

1.对向量进行摘要统计:

+
# 创建一个向量
+x <- c(1, 2, 3, 4, 5)
+
+# 生成摘要统计信息
+summary(x)
+
+

输出: +

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
+   1.00    2.00    3.00    3.00    4.00    5.00 
+

+

2.对数据框进行摘要统计:

+
# 创建一个数据框
+data <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c("A", "B", "C", "D", "E"),
+  z = c(TRUE, FALSE, TRUE, FALSE, TRUE)
+)
+
+# 生成摘要统计信息
+summary(data)
+
+

输出: +

       x          y     z    
+ Min.   :1   A:1   Mode :logical  
+ 1st Qu.:2   B:1   FALSE:2      
+ Median :3   C:1   TRUE :3      
+ Mean   :3   D:1                 
+ 3rd Qu.:4   E:1                 
+ Max.   :5                       
+

+

3.对线性模型进行摘要统计:

+

线性回归:

+

lm(): 用于拟合线性回归模型。 +summary(): 用于获取线性回归模型的摘要统计信息,包括回归系数、显著性检验等结果。

+

示例代码:

+

R + # 假设有一个因变量 y 和一个自变量 x + model <- lm(y ~ x) + summary(model) # 输出线性回归模型的摘要统计信息

+

Pasted image 20231122085319

+
这段输出是针对一个线性回归模型的摘要统计信息。下面解释每个部分的含义:
+
+1. Call: 表示所调用的函数和参数,这里使用了`lm()`函数进行线性回归分析。
+
+2. Residuals: 残差,表示观测值与回归模型的预测值之间的差异。
+
+3. Coefficients: 回归系数,包括截距(Intercept)和自变量的系数(miles)。Estimate列给出了估计的回归系数的值Std. Error列给出了估计值的标准误差t value列给出了回归系数的t统计量Pr(>|t|)列给出了对应的显著性水平的p-value。
+
+在这个例子中,截距的估计值为16.46976,自变量(miles)的估计值为-0.05877。这些估计值的显著性通过t统计量和p-value进行了检验。
+
+4. Signif. codes: 表示显著性水平的符号编码。例如,'***'表示p-value小于0.001'**'表示p-value小于0.01'*'表示p-value小于0.05'.'表示p-value小于0.1,为空表示p-value大于或等于0.1。
+
+5. Residual standard error: 残差标准误差,表示回归模型的残差的标准差。
+
+6. Multiple R-squared: 多重R方,表示回归模型对观测值的解释程度,取值范围在01之间。在这个例子中,多重R方为0.5387,表示回归模型可以解释约53.87%的观测值的变异性。
+
+7. Adjusted R-squared: 调整后的R方,考虑了自变量的数量和样本大小的影响,是对多重R方进行修正后的指标。
+
+8. F-statistic: F统计量,用于检验回归模型整体的显著性。F统计量的值越大,表示回归模型整体越显著。
+
+9. p-value: F统计量对应的p-value,表示对应的显著性水平下,回归模型整体是否显著。
+
+根据给出的回归模型摘要统计信息,可以得出以下结论:
+- 自变量(miles)的系数估计值为-0.05877,说明每增加一单位的miles,价格(price)会减少0.05877单位。
+- 回归模型整体显著,因为F-statistic的值较大且p-value很小(小于0.05)。
+- 多重R方为0.5387,表示回归模型可以解释大约53.87%的价格变异性。
+
+

根据给出的回归模型摘要统计信息,可以得出以下结论:

+
    +
  1. +

    变量之间的关系:在这个例子中,通过线性回归分析发现,自变量(miles)与因变量(price)之间存在显著的负相关关系。每增加一单位的miles,价格(price)会减少0.05877单位。这意味着随着车辆使用里程的增加,车辆的价格往往会降低。

    +
  2. +
  3. +

    模型的显著性:回归模型整体是显著的,因为F-statistic的值较大且对应的p-value非常小(小于0.05)。这表明自变量(miles)对于解释因变量(price)的变异性是显著的。

    +
  4. +
  5. +

    模型的解释力:多重R方为0.5387,表示回归模型可以解释大约53.87%的价格变异性。这意味着模型可以解释观测数据中约53.87%的价格变动,剩余的变动可能由其他未包含在模型中的因素引起。

    +
  6. +
+

逻辑回归:

+

glm(): 用于拟合逻辑回归模型。 +summary(): 用于获取逻辑回归模型的摘要统计信息,包括回归系数、显著性检验等结果。

+

示例代码: +

# 假设有一个二分类因变量 y 和一个自变量 x
+model <- glm(y ~ x, family = binomial)
+summary(model)  # 输出逻辑回归模型的摘要统计信息
+

+

上述函数可以根据具体情况选择适当的函数来进行相关性分析或回归分析,并获取显著性检验的结果。根据您的研究问题和数据类型,选择合适的函数和方法进行分析。

+

关于NA值的处理

+

在R语言中,summary()函数用于生成有关数据的摘要统计信息,但它默认会剔除缺失值(NA) 并计算非缺失观测的统计量。 +如果您希望在计算摘要统计信息时保留NA值,可以使用na.rm = FALSE参数来禁用缺失值的剔除。将na.rm参数设置为FALSE将确保在计算统计量时包括缺失值。 +下面是一个示例,展示如何使用summary()函数,并设置na.rm = FALSE以保留NA值: +

# 创建一个包含NA值的向量
+x <- c(1, 2, NA, 4, 5)
+
+# 使用summary()函数计算摘要统计信息(剔除NA值)
+summary(x)
+# 输出:
+#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
+#   1.000   2.000   4.000   3.000   4.000   5.000
+
+# 使用summary()函数计算摘要统计信息(保留NA值)
+summary(x, na.rm = FALSE)
+# 输出:
+#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
+#   1.000   2.000   4.000   3.000   4.000   5.000   1.000
+
+在上述示例中,我们创建了一个包含NA值的向量x。首先,我们使用summary(x)计算摘要统计信息,并默认剔除了NA值。然后,我们使用summary(x, na.rm = FALSE)再次计算摘要统计信息,但这次保留了NA值。通过设置na.rm = FALSE,我们确保了NA值在计算统计量时被考虑进去,并在输出中显示了NA值的计数(NA's)。

+

请注意,na.rm参数在许多R函数中都可以使用,用于控制对缺失值的处理方式。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/t.test()/index.html b/R/base-content/t.test()/index.html new file mode 100644 index 00000000..874522d3 --- /dev/null +++ b/R/base-content/t.test()/index.html @@ -0,0 +1,1783 @@ + + + + + + + + + + + + + + + + + + + + + + + + + T.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

在R语言中,函数用于执行一个或两个样本的t检验(t-test)。t检验是一种常用的统计方法,用于比较两个样本的均值是否有显著差异。

+

其输出结果具有属性值,用$调用对象属性!

+
t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE, var.equal = FALSE, conf.level = 0.95)
+
+

参数说明:

+
    +
  • +

    x:第一个样本数据,可以是数值向量或数值型的数据框。

    +
  • +
  • +

    y:第二个样本数据,同样可以是数值向量或数值型的数据框。如果只有一个样本,可以省略此参数

    +
  • +
  • +

    alternative:指定检验的双侧("two.sided")、单侧小于("less")还是单侧大于("greater")的假设检验,默认为"two.sided"。

    +
  • +
+

two.sided:双侧检验,备用假设不等于μ0;

+

less:左侧检验,备择假设小于mu(μ0);双样本中指第一个样本的均值是否小于第二个样本的均值;

+

greater:右侧检验,备择假设大于mu(μ0);双样本中指第一个样本的均值是否大于第二个样本的均值;

+
    +
  • +

    mu:要检验的均值差异是否与给定值mu显著差异,默认为0,即检验均值是否相等。 +给定值可以理解为总体均值μ; +两个样本下mu为0,检验均值是否相等?

    +
  • +
  • +

    paired:一个逻辑值,指示是否进行配对样本的t检验,默认为FALSE。如果为TRUE,则表示进行配对样本的t检验。 +是否进行配对t检验(paired t-test),跟双样本t检验不同!

    +
  • +
  • +

    var.equal:一个逻辑值,指示是否假设两个样本的方差相等,默认为FALSE。如果为TRUE,则表示假设方差相等。

    +
  • +
+

TRUE,student's t-test 两个样本满足方差齐性,方差基本一致

+

FALSE,welch's t-test(韦尔奇t检验) 两个样本不满足方差齐性,方差不整奇,方差差异较大

+
    +
  • conf.level:置信水平,默认为0.95,表示计算95%的置信区间
  • +
+

函数功能:根据提供的样本数据执行t检验,并返回检验结果,包括t统计量、p值和置信区间。

+

以下是一个示例,演示如何使用t.test()函数执行t检验: +

# 执行一个样本的t检验
+data <- c(5, 7, 6, 8, 4, 9, 5, 6)
+t.test(data, mu = 6)
+
+# 执行两个独立样本的t检验
+group1 <- c(5, 7, 6, 8, 4)
+group2 <- c(9, 5, 6, 7, 5)
+t.test(group1, group2)
+
+在上述示例中,我们首先使用单个样本数据data执行了一个样本的t检验,检验是否存在与均值6不同的显著差异。然后,我们使用两个独立的样本数据group1group2执行了两个样本的独立t检验,检验两个样本的均值是否有显著差异。

+

通过t.test()函数,我们可以获取关于检验结果的详细信息,如t统计量、p值和置信区间。根据检验结果,我们可以判断样本之间的均值差异是否显著。

+

关于t.test的结果list中的参数选取

+

t.test换回的结果是列表结构! +

One Sample t-test
+
+data:  data_q4$age
+t = 152, df = 409, p-value <2e-16
+alternative hypothesis: true mean is not equal to 0
+95 percent confidence interval:
+ 30 31
+sample estimates:
+mean of x 
+       30
+

+

t.test()函数返回的结果列表的组成内容如下: +1. statistic:统计量的值,例如t值、z值等。 +2. parameter:自由度,即用于计算统计量的参与观测值的数量。 +3. p.value:双侧检验的p值。 +4. conf.int:置信区间的上下限值。 +

t.test(data_q4$age)[4](4)
+# 或
+t.test(data_q4$age)$conf.int
+
+# 输出
+[1] 30 31
+attr(,"conf.level")
+[1] 0.95
+
+5. estimate:估计的均值差或效应大小。 +6. null.value:零假设的均值差或效应大小。 +7. alternative:备择假设的描述。 +8. method:所使用的统计方法的描述。 +9. data.name:数据集的名称。 +注意:不同的t.test()函数可能返回的结果列表的内容会有所差异,具体组成内容可以根据函数的帮助文档进行查看。

+

单样本t检验

+

双边t检验

+

样本是王老师班级的学生成绩,mu是全校总体成绩的均值为137。

+

Pasted image 20231113115136

+

1,从t分布的角度: +t-value:指的是一侧的t值; +p-value:两侧加起来的p值,t=-0.908,对应的qt(-0.908, df=19)为0.1876。

+

Pasted image 20231113114711

+

2,从样本均值分布的角度: +置信度为95%的置信区间: +样本均值x_bar为135.80:为这个样本容量为20的样本的均值;置信区间指的是样本均值分布上的区间!而非总体分布上的区间

+

Pasted image 20231113114952

+

结论

+

1,看t值,对比的是自由度一样的t分布

+

Pasted image 20231113115527

+

2,看p值:为左右两侧的和值

+

Pasted image 20231113122847

+

3,看置信区间是否包含μ0,就是上面的mu值

+

Pasted image 20231113122835

+

单边t检验:右侧假设检验

+

备择假设H_1为μ>μ0

+

Pasted image 20231113125340

+

t-value、p-value、置信区间的参数理解类似双侧。

+

结论

+

1,t值=-0.908<1.729(α对应的t值),拒绝备择假设H_1,假设检验的有效性体现在备择假设(犯错误的概率α)上。H_0的选择具有主观性,更难证伪;

+

2,p值=0.8125>α=0.05,拒绝备择假设;

+

3,置信区间[133.5157, inf),μ0=137,被包含在内,拒绝备择假设H_1。 +跟“接受域”相区分,置信区间是从样本均值分布的角度上看的,取值依托于本次样本均值x_bar和选择的α,此处\(133.5157=\color{red}{\overline{x}-t*\frac s{\sqrt n}}\);接受域也是从样本均值分布的角度上看的,只是依托于μ(总体均值,根据大数定律,也是样本均值分布的均值)和选择的α。

+

(图中只显示了t分布中的t、p值,置信区间的下边界在样本均值分布中的x_bar=135.8的左侧)

+

Pasted image 20231113124341

+

单边t检验:左侧假设性检验

+

备择假设H_1为μ<μ0

+

Pasted image 20231219115135

+
library(tidyverse)
+wang_class=c(136,136,134,136,131,133,142,146,137,140,134,135,136,132,119,132,145,131,140,141)
+t.test(wang_class ,mu=137,alternative="greater")
+
+

结论

+

1,t值=-0.908>-1.729(α对应的t值),拒绝备择假设H_1;

+

2,p值=0.188>α=0.05,拒绝备择假设;

+

3,置信区间(-inf, 138.0843],\(138.0843=\color{red}{\overline{x}+t*\frac s{\sqrt n}}\),μ0=137没被包含在内,接受备择假设H_1。

+

(图中只显示了t分布的t、p值,置信区间的上边界在样本均值分布中的x_bar=135.8的右侧) +Pasted image 20231219122919

+

双样本t检验

+

独立样本t检验

+

双样本双边t检验

+

双样本单边t检验

+

配对样本t检验

+

(数据是d值,实质是单样本假设检验。) +备择假设H_1:后侧大于前测成绩(等价于单样本中x_bar大于0,单样本右侧检验)

+

Pasted image 20231223104422

+

post:后测成绩; +pre:前侧成绩,相当于上面的mu; +paired=TRUE; +greater:备择假设后侧大于前侧成绩; +df=19,算法自动计算。

+

Pasted image 20231223104500

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/table()/index.html b/R/base-content/table()/index.html new file mode 100644 index 00000000..adbd0f37 --- /dev/null +++ b/R/base-content/table()/index.html @@ -0,0 +1,1560 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Table() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Table()

+ +

在R语言中,table()函数用于创建频数表(frequency table),它统计一个向量中每个元素的出现频率。其中每个元素作为表的行名对应的频数作为表的值

+

它接受一个或多个因子作为参数,然后返回一个表格,显示了这些因子的频数统计。

+

功能:该函数用于创建频数表,统计向量或因子中每个元素的频数。

+

函数定义: +

table(...)
+

+

参数: +- ...:一个或多个要统计频数的向量,可以是数值型、字符型、逻辑型或因子型

+

示例: +以下是使用table()函数创建频数表的示例:

+
# 示例向量
+vector <- c("A", "B", "A", "C", "B", "C")
+
+# 创建频数表
+freq_table <- table(vector)
+
+# 打印频数表
+print(freq_table)
+
+

在上述示例中,我们创建了一个示例向量vector,其中包含了一些元素。

+

然后,我们使用table()函数对vector进行统计,创建了一个频数表freq_table

+

最后,我们打印出freq_table,它显示了vector中每个元素的出现频率。

+

以下是打印出的内容:

+
vector
+A B C 
+2 2 2 
+
+

在上述示例中,使用table()函数统计了向量vec中每个元素的频数。向量vec中有3个"A",2个"B"和4个"C"。

+

在上述输出中,我们可以看到"A"、"B"和"C"这三个元素在vector中的出现频率分别为2次。

+

具体来说,table() 函数返回一个包含因子水平之间频数的表格。这可以是一维或多维的,具体取决于传递给函数的因子数量。在一维情况下,它返回一个简单的向量;在多维情况下,返回一个表格。

+

以下是一个简单的例子:

+
# 创建一个因子向量
+gender <- c("Male", "Female", "Male", "Male", "Female", "Female")
+
+# 使用table函数生成频数表
+gender_table <- table(gender)
+
+# 打印结果
+print(gender_table)
+
+

这将输出: +名称是变量名称!!!gender +

gender 
+Female   Male 
+     3      3 
+

+

这表示在 gender 向量中,"Female" 出现了 3 次,"Male" 也出现了 3 次。

+

根据划分的区间统计频率table(cut_width(data_q2$PPG,2,boundary = 10))/50

+
data_q2 <- read_csv(str_c(filepath,"/data/NBAPlayerPts.csv")) 
+a <- table(cut_width(data_q2$PPG,2,boundary = 10))/50
+a
+cumsum(a)
+
+

500

+

Pasted image 20231227090100

+

在R语言中,table' num [1:10(1d)] 0.02 0.08 0.12 0.4 0.16 0.08 0.04 0 0.06 0.04是一个表示向量数据的示例。这里的table是变量名,num表示数据类型为数值型,而[1:10(1d)]表示这个向量的索引范围是从1到10,并且是一维的。 +而后面的0.02 0.08 0.12 0.4 0.16 0.08 0.04 0 0.06 0.04则是向量的具体数值。根据索引范围,这个向量有10个元素,分别是0.02、0.08、0.12、0.4、0.16、0.08、0.04、0、0.06、0.04。 +因此,table' num [1:10(1d)] 0.02 0.08 0.12 0.4 0.16 0.08 0.04 0 0.06 0.04表示一个名为table的数值向量,包含了这10个具体数值。你可以使用这个向量来进行进一步的分析、计算或可视化操作。

+

连续型变量拆分成离散型变量(因子型)。再用table对变量中的离散型数值进行频率统计,形成频率表(因子型)! +Pasted image 20231227090344

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/tibble()/index.html b/R/base-content/tibble()/index.html new file mode 100644 index 00000000..a18ff92a --- /dev/null +++ b/R/base-content/tibble()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Tibble() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Tibble()

+ +

在 R 语言中,tibble() 函数用于创建 Tibble 数据框,它是一个用于数据处理和分析的数据结构,类似于传统的数据框(data.frame),但具有更多的优化和功能。下面是对 tibble() 函数的参数进行详细介绍和举例:

+

函数语法: +

tibble(...)
+

+

参数说明: +- ...:表示变量名和对应的取值,可以是一个或多个。每个变量名可以使用非标准评估(non-standard evaluation)的方式,例如 var_name = value

+

返回值: +函数返回一个 Tibble 数据框。

+

示例: +下面是使用 tibble() 函数创建 Tibble 数据框的示例:

+
# 创建一个 Tibble 数据框
+df <- tibble(
+  var1 = c(1, 2, 3),
+  var2 = c("A", "B", "C"),
+  var3 = TRUE
+)
+
+# 打印 Tibble 数据框
+print(df)
+
+

在上述示例中,我们使用 tibble() 函数创建了一个 Tibble 数据框 df,其中包含了三个变量:var1var2var3var1 是一个数值向量,var2 是一个字符向量,var3 是一个逻辑向量。我们给每个变量指定了对应的取值。最后,我们使用 print() 函数打印出 Tibble 数据框的内容。

+

Tibble 数据框与传统的数据框类似,但具有一些额外的特性,如更好的显示方式、更严格的变量检查、更好的支持管道操作符 %>% 等。你可以使用 tibble() 函数创建自己的 Tibble 数据框,并根据需要添加变量和取值。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/typeof()/index.html b/R/base-content/typeof()/index.html new file mode 100644 index 00000000..7aec575c --- /dev/null +++ b/R/base-content/typeof()/index.html @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Typeof() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Typeof()

+ +

typeof()是一个在R语言中用于确定对象类型的函数。它返回一个代表对象类型的字符串。 +以下是一些常见的R对象类型及其对应的typeof()返回值: +- 数值(Numeric):包括整数和实数。 + - typeof(5) 返回 "double"。 +- 字符串(Character):表示文本或字符数据。 + - typeof("Hello") 返回 "character"。 +- 逻辑值(Logical):表示真或假的值。 + - typeof(TRUE) 返回 "logical"。 +- 复数(Complex):包含实数和虚数部分的复数。 + - typeof(1 + 2i) 返回 "complex"。 +- 列表(List):包含多个元素的对象。 + - typeof(list(1, 2, 3)) 返回 "list"。 +- 函数(Function):表示可调用的代码块。 + - typeof(mean) 返回 "function"。 +- 数据框(Data frame):包含多个变量的表格型数据结构。 + - typeof(data.frame(x = 1:3, y = c("a", "b", "c"))) 返回 "list"。 +- 矩阵(Matrix):具有行和列的二维数组。 + - typeof(matrix(1:4, nrow = 2, ncol = 2)) 返回 "double"。 +- 因子(Factor):表示离散分类变量的对象。 + - typeof(factor(c("A", "B", "A", "C"))) 返回 "integer"。 +- 数组(Array):具有多个维度的数据结构。 + - typeof(array(1:6, dim = c(2, 3))) 返回 "integer"。

+

需要注意的是,typeof()函数返回的是对象的基本类型信息,而不是对象的详细结构或类别。如果想要获取更详细的对象类型信息,可以使用其他函数,如class()str()等。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/unique()/index.html b/R/base-content/unique()/index.html new file mode 100644 index 00000000..97505a7c --- /dev/null +++ b/R/base-content/unique()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Unique() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Unique()

+ +

在 R 语言中,unique() 函数是基础的 R 函数,用于提取向量或因子中的唯一元素。它不属于特定的包,而是 R 语言的基本函数,可以在不导入其他包的情况下直接使用。

+

功能: 提取向量或因子中的唯一元素。

+
# 创建一个向量
+vec <- c(1, 2, 3, 1, 2, 4, 5)
+
+# 使用 unique() 提取唯一元素
+unique_elements <- unique(vec)
+
+# 打印结果
+print(unique_elements)
+
+# 输出:
+[1] 1 2 3 4 5
+
+

定义: +

unique(x, incomparables = FALSE, fromLast = FALSE)
+

+

参数介绍: +- x:要提取唯一元素的向量或因子。 +- incomparables:一个逻辑值或向量,指定在比较元素时是否应将某些值视为不可比较的。默认为 FALSE。 +- fromLast:一个逻辑值,指示是否从向量的末尾开始查找唯一元素。默认为 FALSE

+

在这个例子中,unique(vec) 提取了向量 vec 中的唯一元素,并返回一个只包含这些唯一元素的向量。在结果中,重复的元素被去除,只保留了唯一的元素。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/var()/index.html b/R/base-content/var()/index.html new file mode 100644 index 00000000..757fdd1b --- /dev/null +++ b/R/base-content/var()/index.html @@ -0,0 +1,1520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Var() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Var()

+ +

在 R 中,var() 函数用于计算给定数据集的方差。方差是衡量数据集分散程度的统计指标,它衡量观测值与其平均值之间的差异。 +

var(x, na.rm=FLASE)
+
+- x: 要计算方差的向量、数组、数据框或矩阵。 +- na.rm: 一个逻辑值,指定是否在计算方差时忽略缺失值。默认值为 FALSE,即不忽略缺失值。

+

下面是一个示例,演示如何使用 var() 函数:

+
# 创建一个向量
+x <- c(3, 1, 4, 1, 5, 9, 2, 6)
+
+# 计算向量的方差
+variance <- var(x)
+print(variance)
+
+

输出结果为:

+
[1] 6.6875
+
+

在上述示例中,我们创建了一个包含整数的向量 x。然后,我们使用 var() 函数计算向量 x 的方差,并将结果存储在变量 variance 中。通过打印 variance 的值,我们可以看到向量 x 的方差为 6.6875。

+

除了向量,var() 函数还可以用于计算矩阵的列或数据框的某一列的方差。下面是一些示例:

+
# 创建一个矩阵
+mat <- matrix(c(5, 2, 3, 1, 4, 6), nrow = 2)
+
+# 计算矩阵每列的方差
+var_cols <- apply(mat, 2, var)
+print(var_cols)
+
+# 创建一个数据框
+df <- data.frame(
+  x = c(3, 1, 4, 1, 5, 9, 2, 6),
+  y = c("a", "b", "c", "d", "e", "f", "g", "h")
+)
+
+# 计算数据框列 x 的方差
+var_x <- var(df$x)
+print(var_x)
+
+

输出结果为:

+
[1] 2.5 2.5
+[1] 6.6875
+
+

在上面的示例中,我们首先创建了一个矩阵 mat 和一个数据框 df。然后,我们使用 apply() 函数将 var() 应用于矩阵的列和数据框的列。通过设置 MARGIN 参数为 2,我们计算矩阵每列的方差,并将结果存储在 var_cols 中。通过直接调用 var() 函数,我们计算数据框列 x 的方差,并将结果存储在 var_x 中。

+

总结来说,var() 函数用于计算向量、矩阵的列或数据框的某一列的方差。你可以根据需要调整参数来计算不同数据集的方差。

+

希望这个示例对你有所帮助!如果你有任何其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/var.test()/index.html b/R/base-content/var.test()/index.html new file mode 100644 index 00000000..91fd5114 --- /dev/null +++ b/R/base-content/var.test()/index.html @@ -0,0 +1,1527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Var.test() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Var.test()

+ +

在R语言中,var.test()函数是stats包中的函数,用于执行方差齐性检验。

+

函数定义: +

var.test(x, y, ratio = 1, alternative = "two.sided", ...)
+

+

参数: +- x:第一个数值向量或数据框。

+
    +
  • +

    y:可选参数,第二个数值向量或数据框。

    +
  • +
  • +

    ratio:可选参数,指定xy的方差比例。默认为1,表示方差相等。

    +
  • +
  • +

    alternative:可选参数,指定备择假设。可选值有"two.sided"(默认,双侧)、"less"(单侧小于)和"greater"(单侧大于)。

    +
  • +
  • ...:其他可选参数,用于控制方差齐性检验的计算。
  • +
+

返回值: +函数返回一个包含方差齐性检验的结果的对象,其中包括统计量值、自由度和p值。

+

示例: +以下是使用var.test()函数执行方差齐性检验的示例:

+
# 创建示例数据向量
+group1 <- c(1, 2, 3, 4, 5)
+group2 <- c(2, 4, 6, 8, 10)
+
+# 执行方差齐性检验
+var_test_result <- var.test(group1, group2)
+
+# 查看检验结果
+print(var_test_result)
+
+

在上述示例中,我们首先创建了两个示例数据向量group1group2,分别包含了两个组的数据。

+

然后,我们使用var.test()函数对两个组的方差进行齐性检验。将group1group2作为参数传递给函数。

+

齐性检验的结果保存在var_test_result中。

+

最后,我们打印出检验结果,其中包括统计量值、自由度和p值。

+

以下是打印出的内容示例:

+
    F test to compare two variances
+
+data:  group1 and group2
+F = 0.25, num df = 4, denom df = 4, p-value = 0.7619
+alternative hypothesis: true ratio of variances is not equal to 1
+95 percent confidence interval:
+ 0.02730984 2.27916179
+sample estimates:
+ratio of variances
+          0.25
+
+

在上述输出中,我们可以看到执行方差齐性检验的结果,其中包括F统计量的值、自由度、p值以及置信区间。根据p值的大小,我们可以判断两个组的方差是否显著不同。在本例中,p值为0.7619,大于通常的显著性水平(如0.05),因此无法拒绝原假设,即两个组的方差可以认为是相等的。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/which.max()/index.html b/R/base-content/which.max()/index.html new file mode 100644 index 00000000..d33e20e0 --- /dev/null +++ b/R/base-content/which.max()/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Which.max() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Which.max()

+ +

函数名称:which.max()

+

功能:该函数用于返回向量中的最大值的索引位置

+

所属包:base(R的基本包,无需额外安装)

+

定义:which.max(x)

+

参数介绍: +- x:一个向量,可以是数值型、逻辑型或字符型。

+

举例: +

# 创建一个向量
+vec <- c(2, 5, 3, 8, 1)
+
+# 使用which.max()函数找到最大值的索引位置
+max_index <- which.max(vec)
+
+# 输出最大值的索引位置
+print(max_index)
+

+

输出: +

[1] 4
+
+在上述示例中,向量vec中的最大值是8,它位于索引位置4。因此,which.max()函数返回了4作为最大值的索引位置。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/base-content/~/index.html b/R/base-content/~/index.html new file mode 100644 index 00000000..8dc33cfa --- /dev/null +++ b/R/base-content/~/index.html @@ -0,0 +1,1490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + ~ - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

~

+ +

~ 符号用于创建公式,而 .x 是一个占位符。 +在给定的代码中,~符号是函数式编程中的一个约定,用于定义匿名函数lambda函数

+

在R语言中,~符号用于创建匿名函数,它的作用类似于定义一个函数的简写形式。

+

result <- map(my_list, ~ .x^2) +result <- map(my_list, ~ .x*.x) +它的含义是对列表my_list中的每个元素进行平方操作,将结果存储在result变量中,就不用单独定义一个函数实现类似的简单效果! +

squre1 <- function(x){
+  x^2
+}
+result <- map(my_list, squrel)
+

+

在R语言中,匿名函数(Anonymous Function)是一种没有明确命名的函数,通常用于临时或简单的操作,不需要单独定义一个具名函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/\345\210\227\350\241\250\347\232\204\347\264\242\345\274\225/index.html" "b/R/base-content/\345\210\227\350\241\250\347\232\204\347\264\242\345\274\225/index.html" new file mode 100644 index 00000000..27f14e9c --- /dev/null +++ "b/R/base-content/\345\210\227\350\241\250\347\232\204\347\264\242\345\274\225/index.html" @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 列表的索引 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

列表的索引

+ +

在 R 语言中,可以使用不同的索引方式来访问列表(list)中的元素。以下是几种常用的列表索引方法:

+

跟df很像,想要引用到向量,需要$或list[[]],有时间详细研究下,在purrr包中会涉及列表的内容!如map()函数

+

示例 1:使用索引位置访问列表元素 +

my_list <- list("apple", 2, TRUE)
+element <- my_list[[2]]  # 访问第2个元素
+print(element)
+
+输出结果为: +
[1] 2
+

+

示例 2:使用元素名称访问列表元素 +

my_list <- list(fruit = "apple", number = 2, logical = TRUE)
+element <- my_list$fruit  # 使用元素名称访问元素
+print(element)
+
+输出结果为: +
[1] "apple"
+

+

示例 3:使用逻辑条件选择列表元素 +

my_list <- list("apple", 2, TRUE)
+logical_index <- c(FALSE, TRUE, FALSE)  # 选择第2个元素
+selected_elements <- my_list[logical_index]
+print(selected_elements)
+
+输出结果为: +
[[1]]
+[1] 2
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/\345\220\221\351\207\217\347\232\204\347\264\242\345\274\225/index.html" "b/R/base-content/\345\220\221\351\207\217\347\232\204\347\264\242\345\274\225/index.html" new file mode 100644 index 00000000..0e6fb8d0 --- /dev/null +++ "b/R/base-content/\345\220\221\351\207\217\347\232\204\347\264\242\345\274\225/index.html" @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 向量的索引 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

向量的索引

+ +

在 R 语言中,可以使用索引来访问和操作向量中的元素。索引用于指定要选择的元素位置或范围。 +1. 单个元素索引: + 可以使用方括号 [ ] 来访问向量中的单个元素。索引值指定要选择的元素的位置,从 1 开始计数。 +

fruits <- c("apple", "banana", "orange")
+print(fruits[2])  # 输出:"banana"
+```
+
+在这个示例中,我们使用索引值 `2` 访问向量 `fruits` 中的第二个元素。
+
+2. 多个元素索引: + 可以使用方括号 [ ] 并提供一个索引向量来访问多个元素。索引向量指定要选择的元素的位置。 +
nums <- c(1, 2, 3, 4, 5)
+print(nums[c(2, 4)])  # 输出:2 4
+```
+
+在这个示例中,我们使用索引向量 `c(2, 4)` 访问向量 `nums` 中的第二个和第四个元素。
+
+3. 范围索引: + 可以使用冒号 : 来指定一个范围索引,以选择连续的元素。 +
nums <- c(1, 2, 3, 4, 5)
+print(nums[2:4])  # 输出:2 3 4
+```
+
+在这个示例中,我们使用范围索引 `2:4` 访问向量 `nums` 中的第二到第四个元素。
+
+4. 逻辑向量索引: + 可以使用逻辑向量来选择满足特定条件的元素。 +
nums <- c(1, 2, 3, 4, 5)
+print(nums[nums > 3])  # 输出:4 5
+```
+
+在这个示例中,我们使用逻辑向量 `nums > 3` 作为索引,选择向量 `nums` 中大于 3 的元素。
+
+向量索引在 R 语言中非常有用,它允许您根据需要选择和操作向量中的特定元素。您可以使用单个元素索引、多个元素索引、范围索引或逻辑向量索引来选择满足您需求的元素。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/\346\225\260\346\215\256\346\241\206\347\264\242\345\274\225/index.html" "b/R/base-content/\346\225\260\346\215\256\346\241\206\347\264\242\345\274\225/index.html" new file mode 100644 index 00000000..aea5ba89 --- /dev/null +++ "b/R/base-content/\346\225\260\346\215\256\346\241\206\347\264\242\345\274\225/index.html" @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 数据框索引 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

数据框索引

+ +

在R语言中,数据框是一种常用的数据结构,用于存储和操作二维数据。数据框索引是指对数据框中的行或列进行标识和访问的方法。 +1,位置索引 +行索引返回的是数据框格式,带行名和列名; +列索引返回的是元素向量;

+

2,名称索引 +行索引返回的是数据框格式,带行名和列名; +列索引返回的是元素向量;

+

选取都是数据框,取列都是向量,单方括号取列则全是数据框

+

数据框索引有两种类型:行索引和列索引。 +1. 行索引:行索引用于标识和访问数据框中的特定行。在R中,您可以使用行号或逻辑向量作为行索引。以下是一些示例: +

# 创建数据框
+df <- data.frame(name = c("John", "Jane", "Tom"),
+                 age = c(25, 28, 30),
+                 grade = c("A", "B", "C"))
+
+# 通过行号访问行
+row1 <- df[1, ]  # 获取第一行,列名不写是返回所有列
+row2 <- df[2, ]  # 获取第二行
+
+# 通过逻辑向量访问行
+subset_df <- df[df$age > 25, ]  # 获取年龄大于25的行
+

+

在上面的示例中,我们首先创建了一个数据框df,包含name、age和grade三列。然后,我们使用行号访问了第一行和第二行的数据,并使用逻辑向量访问了年龄大于25的行。

+
    +
  1. 列索引:列索引用于标识和访问数据框中的特定列。在R中,您可以使用列名或列号作为列索引。以下是一些示例: +
    # 创建数据框
    +df <- data.frame(name = c("John", "Jane", "Tom"),
    +                 age = c(25, 28, 30),
    +                 grade = c("A", "B", "C"))
    +
    +# 通过列名访问列
    +col1 <- df$name  # 获取name列
    +col2 <- df$age   # 获取age列
    +
    +# 通过列号访问列
    +col3 <- df[, 3]  # 获取第三列
    +
    +在上面的示例中,我们首先创建了一个数据框df,包含name、age和grade三列。然后,我们使用列名访问了name列和age列,并使用列号访问了第三列。
  2. +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/\347\211\271\346\256\212\345\200\274/index.html" "b/R/base-content/\347\211\271\346\256\212\345\200\274/index.html" new file mode 100644 index 00000000..811b0e0f --- /dev/null +++ "b/R/base-content/\347\211\271\346\256\212\345\200\274/index.html" @@ -0,0 +1,1531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 特殊值 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

特殊值

+ +

在 R 语言中,有一些特殊的值用于表示特定的情况或状态。以下是 R 语言中常见的特殊值: +1. NA:表示缺失值(Missing Values)。在数据中存在缺失值时,通常用 NA 表示。 +is.na(NA)

+
    +
  1. NULL:表示空值(Null Value)。NULL 用于表示对象的空值,即没有值的情况。 +is.null(NULL)
  2. +
+

3.NaN:表示不是一个数字(Not a Number)。当进行数学计算出现无法定义的结果时,如 0/0负数的平方根,用 NaN 表示。 +is.nan(NAN)

+
    +
  1. Inf-Inf:表示正无穷大和负无穷大(Infinity)。当进行数学计算时出现无穷大的结果时,用这些特殊值表示。 +is.infinte()
  2. +
+

NULL值不占空间(只有1bit的标志是否为空);NA占空间(最少有个保存长度的地方)

+

Na和Null的区别

+

在R语言中,NULL和NA都表示缺失值,但在使用和含义上有所不同。

+

NULL:

+
    +
  • NULL表示不存在的对象或者说没有任何值。换句话说,它表示没有值,包括零和空字符串
  • +
  • NULL不占用存储空间。当一个变量被赋值为NULL时,这个变量不再存在。
  • +
  • 当你尝试访问一个NULL对象时,R会给出错误信息
  • +
  • 使用is.null()函数来检测NULL值。
  • +
+

NA:

+
    +
  • NA表示确实或者不可用的值。也就是说,对象存在,但其值未知或不可获取
  • +
  • NA是占用存储空间的,具体的空间大小取决于其数据类型。比如,如果一个数据框中某个变量的值为NA,那么这个变量仍然存在,只是其值未知。
  • +
  • 对于NA值,你可以进行一些操作,例如使用函数来处理NA值,或者在数据集中忽略NA值。
  • +
  • 使用is.na()函数来检测NA值。
  • +
+

总结起来,NULL和NA的主要区别在于NULL表示不存在的对象,而NA表示对象存在但值未知NULL不占用存储空间,而NA是占用存储空间的。在函数识别上,R语言提供了is.null()和is.na()函数分别用于识别NULL值和NA值。在使用上,NULL通常用于表示一个对象完全不存在,而NA则常用于表示数据的缺失。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/base-content/\347\237\251\351\230\265\347\232\204\347\264\242\345\274\225/index.html" "b/R/base-content/\347\237\251\351\230\265\347\232\204\347\264\242\345\274\225/index.html" new file mode 100644 index 00000000..9bb19929 --- /dev/null +++ "b/R/base-content/\347\237\251\351\230\265\347\232\204\347\264\242\345\274\225/index.html" @@ -0,0 +1,1505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 矩阵的索引 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

矩阵的索引

+ +

在 R 语言中,可以使用不同的索引方法来访问矩阵中的元素。主要有以下几种索引方式: +示例 1:使用索引位置访问矩阵元素 +

mat <- matrix(1:9, nrow = 3, ncol = 3)
+element <- mat[2, 3]  # 访问第2行第3列的元素
+print(element)
+
+输出结果为: +
[1] 6
+

+

示例 2:使用逻辑条件选择矩阵元素 +

mat <- matrix(1:9, nrow = 3, ncol = 3)
+logical_index <- mat > 5  # 返回一个逻辑矩阵,对满足条件的元素为 TRUE,否则为 FALSE
+selected_elements <- mat[logical_index]  # 选择满足条件的元素
+print(selected_elements)
+
+输出结果为: +
[1] 6 7 8 9
+

+

示例 3:使用行名和列名访问矩阵元素 +

mat <- matrix(1:9, nrow = 3, ncol = 3, dimnames = list(c("A", "B", "C"), c("X", "Y", "Z")))
+element <- mat["B", "Z"]  # 使用行名和列名访问元素
+print(element)
+
+输出结果为: +
[1] 6
+

+

非常抱歉给您带来的困扰,我会尽力确保提供正确的代码格式。如果您有其他问题,请随时告诉我。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/across()/index.html b/R/dplyr/across()/index.html new file mode 100644 index 00000000..5092a7b6 --- /dev/null +++ b/R/dplyr/across()/index.html @@ -0,0 +1,1616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Across() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Across()

+ +

across() 函数属于 dplyr 包中的一部分,用于在 dplyr 中进行列操作。该函数通常与 mutate()summarize() 等函数一起使用,以同时应用相同的变换或统计函数于多个列。以下是关于 across() 函数的基本信息:

+

可以根据指定的列,对多个列进行操作,例如转换、筛选、重命名等。

+

across 函数概述:

+

功能: 在多个列上应用相同的变换或统计函数。

+

所属包: across() 函数属于 dplyr 包。

+

定义: +

across(.cols, .fns = NULL, .names = NULL, .names_sep = "_", .cols_select = NULL, .vars = NULL, .fn = NULL, .options = NULL)
+

+

参数介绍:

+
    +
  • +

    .cols 指定要应用变换或函数的列。可以使用 select() 中的语法或 tidyselect 中的选择器。

    +
  • +
  • +

    .fns 一个函数列表,包含要应用的变换或统计函数。

    +
  • +
  • +

    .names 生成新列名称的规则。可以使用 {} 中的 .fn 来指定生成名称的方式。默认为NULL,表示使用默认命名规则。

    +
  • +
  • +

    .names_sep 用于连接列名前缀和后缀的分隔符。

    +
  • +
  • +

    .cols_select 选择列的选项,可以使用 all_of()starts_with() 等。

    +
  • +
  • +

    .vars 要匹配的列,可以使用 vars()

    +
  • +
  • +

    .fn 一个函数,用于在选择的列上应用变换。

    +
  • +
  • +

    .options 一个包含选项的列表,用于控制变换行为。

    +
  • +
+

1,生成新的列表 +

# 安装并加载dplyr包
+install.packages("dplyr")
+library(dplyr)
+
+# 创建一个数据框
+data <- data.frame(
+  A = c(1, 2, 3),
+  B = c(4, 5, 6),
+  C = c(7, 8, 9)
+)
+
+# 使用across在多列上应用变换
+result <- data %>%
+  mutate(across(c(A, B), ~ . * 2, .names = "new_{.col}"))
+
+# 显示结果
+print(result)
+

+

输出:

+

在上述示例中,across() 函数用于在列 A 和 B 上应用变换,将每个元素乘以2,并生成新的列。输出结果将是:

+
  A B C new_A new_B 
+1 1 4 7     2     8 
+2 2 5 8     4    10
+3 3 6 9     6    12
+
+

这表示成功在列 A 和 B 上应用了变换,并生成了新的列。

+

2,替换旧列表 +

library(dplyr)
+
+# 创建一个示例数据框
+df <- data.frame(A = c(1, 2, 3),
+                 B = c(4, 5, 6))
+
+# 使用across()函数将A列的值加1,并替换原始列
+df <- df %>% 
+  mutate(across(A, ~ . + 1))
+
+# 打印结果
+print(df)
+

+

输出: +

  A B
+1 2 4
+2 3 5
+3 4 6
+

+

同时修改列属性

+

同时修改为因子类型 +

library(dplyr)
+
+df_ym <- df_ym %>%
+  mutate(across(c(Gender, Broadband.Access., Have.Children.), as.factor))
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/anti_join()/index.html b/R/dplyr/anti_join()/index.html new file mode 100644 index 00000000..d1d735a2 --- /dev/null +++ b/R/dplyr/anti_join()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Anti join() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Anti join()

+ +

是R中的一个函数,用于执行反连接操作,即返回在第一个数据框中存在而在第二个数据框中不存在的行。下面是anti_join()函数的详细介绍和示例: +

anti_join(x, y, by = NULL, ...)
+
+- xy:要连接的两个数据框或数据表。 +- by:指定用于连接的共享变量的名称,可以是一个字符向量或变量名。如果两个数据框中的变量名称相同,则可以省略此参数。 +- ...:其他参数,用于传递给底层的*_join()函数。

+
library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3, 4),
+                  value1 = c("A", "B", "C", "D"))
+
+df2 <- data.frame(ID = c(2, 3, 5, 6),
+                  value2 = c("X", "Y", "Z", "W"))
+
+anti_joined_df <- anti_join(df1, df2, by = "ID")
+
+print(anti_joined_df)
+
+

输出: +

  ID value1
+1  1      A
+4  4      D
+

+

在上述示例中,我们有两个数据框:df1df2。它们都包含一个名为"ID"的共享变量。使用anti_join()函数,我们返回在df1中存在而在df2中不存在的行。 +在结果数据框anti_joined_df中,只有ID为1和4的行在df1中存在,但在df2中不存在,因此这些行被保留。 +anti_join()函数返回的是在第一个数据框中存在而在第二个数据框中不存在的行,即补集操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/arrange()/index.html b/R/dplyr/arrange()/index.html new file mode 100644 index 00000000..b55ef093 --- /dev/null +++ b/R/dplyr/arrange()/index.html @@ -0,0 +1,1536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Arrange() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Arrange()

+ +

是 R 语言中 dplyr 包提供的一个函数,用于对数据框(data frame)中的观测值按照指定的变量进行排序。 +

arrange(.data, ...)
+
+.data 表示要排序的数据框; +... 表示一个或多个要排序的变量。 +arrange() 函数默认使用升序排序(从小到大)。如果需要降序排序,则可以在变量名前加上负号(例如,arrange(df, -Age))。

+
library(dplyr)
+
+# 示例数据框
+df <- data.frame(Name = c("Alice", "Bob", "Charlie"),
+                 Age = c(25, 30, 20),
+                 Salary = c(50000, 60000, 45000))
+
+# 按照 Age 变量进行升序排序
+sorted_df <- arrange(df, Age)
+
+# 打印排序结果
+print(sorted_df)
+
+

在上述示例中,我们有一个数据框 df,包含三个变量(Name、Age 和 Salary)。通过调用 arrange() 函数并传递数据框 df 和要排序的变量 Age 作为参数,我们将数据框按照 Age 变量进行升序排序。排序结果存储在 sorted_df 中,并通过打印语句输出。

+

输出结果如下所示: +

    Name Age Salary
+1 Charlie  20  45000
+2   Alice  25  50000
+3     Bob  30  60000
+

+

除了单个变量,我们也可以指定多个变量进行排序。例如,可以使用 arrange(df, Age, Salary) 对 Age 变量进行升序排序,对于相同 Age 值的观测值,再按照 Salary 变量进行升序排序。

+

具体的参数

+

arrange()函数的...参数中,您可以指定多个列名或表达式来定义排序顺序。这些参数将按照它们在参数列表中的顺序进行排序,从左到右依次应用。 +以下是arrange()函数中...参数的一些详细参数选项: +- 升序排序:默认情况下,arrange()函数将按照升序对指定的列进行排序。例如,arrange(data, age)将按照age列的值进行升序排序。 +- 降序排序:如果您想要按照降序排序,可以在列名前使用desc()函数。例如,arrange(data, desc(age))将按照age列的值进行降序排序。 +- 多级排序:通过在...参数中提供多个列名或表达式,您可以进行多级排序。按照参数的顺序,首先对第一个列进行排序,然后对第二个列进行排序,以此类推。例如,arrange(data, age, salary)将首先按照age列进行排序,然后在相同年龄的情况下,按照salary列进行排序。 +- 表达式排序:您可以在...参数中使用任意表达式来定义排序顺序。例如,您可以使用数学运算、逻辑运算或自定义函数来创建表达式。例如,arrange(data, age + salary)将按照age + salary的结果进行排序。 +- 缺失值处理:默认情况下,arrange()函数将缺失值(NA)放在排序结果的末尾。如果您想要将缺失值放在排序结果的开头,可以在列名后使用desc()函数。例如,arrange(data, desc(age))将按照age列的值进行降序排序,并将缺失值放在开头。

+

这些是arrange()函数中...参数的一些常见用法。您可以根据需要组合和定制这些参数,以满足您的排序要求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/attachments/Pasted image 20231012195044.png b/R/dplyr/attachments/Pasted image 20231012195044.png new file mode 100644 index 00000000..4a6094f0 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231012195044.png differ diff --git a/R/dplyr/attachments/Pasted image 20231017160408.png b/R/dplyr/attachments/Pasted image 20231017160408.png new file mode 100644 index 00000000..b7cb1d89 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231017160408.png differ diff --git a/R/dplyr/attachments/Pasted image 20231023145526.png b/R/dplyr/attachments/Pasted image 20231023145526.png new file mode 100644 index 00000000..f8aeaef2 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231023145526.png differ diff --git a/R/dplyr/attachments/Pasted image 20231023145615.png b/R/dplyr/attachments/Pasted image 20231023145615.png new file mode 100644 index 00000000..3adedfd0 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231023145615.png differ diff --git a/R/dplyr/attachments/Pasted image 20231023230251.png b/R/dplyr/attachments/Pasted image 20231023230251.png new file mode 100644 index 00000000..f960da07 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231023230251.png differ diff --git a/R/dplyr/attachments/Pasted image 20231023230321.png b/R/dplyr/attachments/Pasted image 20231023230321.png new file mode 100644 index 00000000..6c6c13ee Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231023230321.png differ diff --git a/R/dplyr/attachments/Pasted image 20231023230343.png b/R/dplyr/attachments/Pasted image 20231023230343.png new file mode 100644 index 00000000..7cabf959 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231023230343.png differ diff --git a/R/dplyr/attachments/Pasted image 20231108200433.png b/R/dplyr/attachments/Pasted image 20231108200433.png new file mode 100644 index 00000000..e7793f53 Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231108200433.png differ diff --git a/R/dplyr/attachments/Pasted image 20231114144302.png b/R/dplyr/attachments/Pasted image 20231114144302.png new file mode 100644 index 00000000..52eabfcb Binary files /dev/null and b/R/dplyr/attachments/Pasted image 20231114144302.png differ diff --git a/R/dplyr/count()/index.html b/R/dplyr/count()/index.html new file mode 100644 index 00000000..6dd9a303 --- /dev/null +++ b/R/dplyr/count()/index.html @@ -0,0 +1,1503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Count() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Count()

+ +

R中的一个函数,用于统计数据框或数据表中每个唯一值的出现次数。它返回一个新的数据框,其中包含唯一值及其对应的计数。 +

count(data, ..., wt = NULL, sort = FALSE)
+
+- data:要统计计数的数据框或数据表。 +- ...:用于指定要计数的变量,可以是一个或多个变量。 +- wt:可选的权重向量,用于指定每个观察值的权重。 +- sort:一个逻辑值,用于确定是否按计数值对结果进行排序。默认值为FALSE,即不排序。

+

下面是一个使用count()函数的示例: +

library(dplyr)
+
+df <- data.frame(category = c("A", "B", "A", "C", "C", "B"))
+
+counts <- count(df, category)
+
+print(counts)
+
+输出: +
  category n
+1        A 2
+2        B 2
+3        C 2
+

+

在上述示例中,我们有一个数据框df,包含了一个名为"category"的变量。使用count()函数,我们统计了"category"变量中每个唯一值的出现次数。 +在结果数据框counts中,每行表示一个唯一值及其对应的计数。例如,"A"出现了2次,"B"出现了2次,"C"出现了2次。 +count()函数对于了解数据中不同类别或因子的分布情况非常有用,可以快速计算每个类别的频数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/cut()/index.html b/R/dplyr/cut()/index.html new file mode 100644 index 00000000..d158604f --- /dev/null +++ b/R/dplyr/cut()/index.html @@ -0,0 +1,1539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Cut() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Cut()

+ +

在R语言中,cut()函数是dplyr包中的一个函数,用于将连续型的变量分成指定宽度的区间

+

[[group_by()]]中有个不错的实例

+

函数定义: +

cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3, ordered_result = FALSE, ... )
+

+

参数

+
    +
  • +

    x要切分的连续变量

    +
  • +
  • +

    breaks:指定分组的边界值。可以是一个向量,表示每个分组的边界值;或者是一个整数,表示要将x划分为几个等宽的分组;或者是一个函数,用于计算分组边界值。

    +
  • +
  • +

    labels分组的标签。如果未指定,将使用默认的分组标签。 +默认分组显示的是因子标签,是一个左开右闭的区间范围; +labels=FALSE,则标签设置的是序号从第一个分组到最后一个,归入相应序号1、2...

    +
  • +
  • +

    include.lowest:是否包含最小值所在的分组。默认为FALSE,即不包含最小值所在的分组。

    +
  • +
+

这个最小值指得是?

+
    +
  • +

    right:指定分组的右边界类型。如果为TRUE,则右边界是闭区间;如果为FALSE,则右边界是开区间。

    +
  • +
  • +

    dig.lab:标签的小数位数。

    +
  • +
  • +

    ordered_result:是否返回有序因子作为结果。如果为TRUE,则返回有序因子;如果为FALSE,则返回无序因子。

    +
  • +
  • +

    ...:其他可选参数。

    +
  • +
+

示例: +以下是使用cut()函数将连续变量划分为离散分组的示例:

+
library(dplyr)
+
+# 示例数据
+data <- data.frame(values = c(1, 3, 5, 2, 6, 7, 4, 9, 8))
+
+# 将连续变量划分为三个分组
+cut_result <- cut(data$values, breaks = 3)
+
+# 打印划分结果
+print(cut_result)
+
+

在上述示例中,我们首先加载了dplyr包,并创建了一个包含连续变量的示例数据框data

+

然后,我们使用cut()函数将data$values划分为三个分组。在示例中,我们未指定breaks参数的具体值,因此默认将x划分为三个等宽的分组。

+

最后,我们打印出划分的结果cut_result,它将连续变量转换为一个无序因子,表示每个值所属的分组。

+

以上是cut()函数在dplyr包中的基本用法和示例。它用于将连续变量划分为离散的分组。可以通过指定breaks参数来控制分组的边界值,labels参数来指定分组的标签,以及其他可选参数来调整划分的行为。

+

对应得到9个分组区间,以及分组的总体情况Levels。 +

[1] (0.995,3.33] (0.995,3.33] (3.33,5.67] (0.995,3.33] (5.67,8] (5.67,8] (3.33,5.67]  (8,10] (8,10]      
+Levels: (0.995,3.33] (3.33,5.67] (5.67,8] (8,10]
+

+

在这个例子中,cut_result是一个无序因子,显示了每个值所属的分组。分组的标签是根据默认的划分规则生成的,并且使用了默认的小数位数(dig.lab)。

+

每个值都被分配到一个合适的分组范围,并显示在方括号中。例如,(0.995,3.33]表示该值属于范围在0.995到3.33之间(不包括3.33)的分组。

+

请注意,具体的分组范围和标签可能会根据输入数据和参数的设置而有所不同,上述输出仅为示例目的。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/distinct()/index.html b/R/dplyr/distinct()/index.html new file mode 100644 index 00000000..3b09d7fb --- /dev/null +++ b/R/dplyr/distinct()/index.html @@ -0,0 +1,1522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Distinct() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Distinct()

+ +

函数在dplyr包中用于去除数据框或数据组中的重复观测。它接受以下参数:

+

功能: 用于在数据框中根据指定的列去重,返回唯一的行。

+
# 使用 dplyr 包
+library(dplyr)
+
+# 创建一个示例数据框
+data <- data.frame(
+  ID = c(1, 2, 3, 1, 2),
+  Name = c("Alice", "Bob", "Charlie", "Alice", "Bob"),
+  Age = c(25, 30, 22, 25, 30)
+)
+
+# 使用 distinct() 去重
+result <- distinct(data, ID, .keep_all = TRUE)
+
+# 打印结果
+print(result)
+
+# 输出:
+  ID   Name Age
+1  1  Alice  25
+2  2    Bob  30
+3  3 Charlie  22
+
+# 使用 distinct() 去重
+result <- distinct(data, ID, .keep_all = FALSE)
+
+# 打印结果
+print(result)
+
+# 输出:
+  ID
+1  1
+2  2
+3  3
+
+

定义: +

distinct(.data, ..., .keep_all = FALSE)
+

+

参数介绍: +- .data:要处理的数据框。 +- ...:要根据去重的列,可以指定多个列。 +- .keep_all:一个逻辑值,指示是否保留所有列,默认为 FALSE,表示只保留去重的列。TRUE,表示还保存其他列

+

在这个例子中,distinct(data, ID, .keep_all = TRUE) 使用 dplyr 包的 distinct() 函数,根据列 ID 进行去重,并保留所有列。结果是一个新的数据框,其中包含唯一的行。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/facet_()/index.html b/R/dplyr/facet_()/index.html new file mode 100644 index 00000000..1cea1940 --- /dev/null +++ b/R/dplyr/facet_()/index.html @@ -0,0 +1,1525 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Facet () - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Facet ()

+ +

ggplot2 包中,facet_*() 函数用于创建分面图,将数据根据一个或多个变量的不同水平拆分成多个子图。分面图是一种有效的数据可视化方式,可帮助我们同时观察数据在不同条件下的变化。

+

以下是几个常用的 facet_*() 函数及其参数的详细介绍和举例:

+
    +
  1. facet_wrap() + ``facet_wrap() 函数用于在一个特定的变量上创建网格布局的子图,每个子图显示该变量的不同水平。 + 参数:
  2. +
  3. facets:指定用于分面的变量,可以是一个或多个变量名,用 ~ 分隔。
  4. +
+
# 使用 facet_wrap() 创建基于 "category" 变量的网格布局子图
+ggplot(data = df, mapping = aes(x = x, y = y)) +
+  geom_point() +
+  facet_wrap(~ category)
+
+
    +
  1. +

    facet_grid() + `facet_grid() 函数用于在两个变量上创建网格布局的子图,显示这两个变量的组合。

    +
  2. +
  3. +

    rows:指定放置于行方向的变量名。

    +
  4. +
  5. cols:指定放置于列方向的变量名。
  6. +
+
# 使用 facet_grid() 创建基于 "category" 和 "group" 变量的网格布局子图
+ggplot(data = df, mapping = aes(x = x, y = y)) +
+  geom_point() +
+  facet_grid(category ~ group)
+
+
    +
  1. facet_wrap()facet_grid() 的参数共享:
  2. +
  3. nrowncol:用于指定子图的行数和列数。
  4. +
  5. scales:控制每个子图的坐标轴刻度是否相同。可以设置为 "free"(每个子图独立刻度)、"fixed"(所有子图共享相同刻度)或 "free_x" / "free_y"(x 轴或 y 轴独立刻度)。
  6. +
  7. switch:逻辑值,用于指定是否交换行和列的顺序。
  8. +
  9. labeller:用于自定义子图的标签。
  10. +
  11. drop:逻辑值,用于指定是否删除没有数据的子图。
  12. +
+
# 使用 facet_wrap() 创建 2 行 3 列的子图网格,刻度独立
+ggplot(data = df, mapping = aes(x = x, y = y)) +
+  geom_point() +
+  facet_wrap(~ category, nrow = 2, ncol = 3, scales = "free")
+
+# 使用 facet_grid() 创建子图网格,自定义标签和刻度
+ggplot(data = df, mapping = aes(x = x, y = y)) +
+  geom_point() +
+  facet_grid(category ~ group, labeller = label_both, scales = "free_x")
+
+

通过使用 facet_wrap()facet_grid() 函数,可以根据数据的不同条件创建多个子图,以便更好地比较和分析数据。这些函数的参数可以根据需要进行调整,以满足特定的分面布局需求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/filter()/index.html b/R/dplyr/filter()/index.html new file mode 100644 index 00000000..a9d46080 --- /dev/null +++ b/R/dplyr/filter()/index.html @@ -0,0 +1,1561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Filter() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Filter()

+ +

函数用于筛选数据框中满足指定条件的行。它可以根据给定的逻辑条件来选择数据框中的观测值。 +

filter(data, ...)
+

+
    +
  • +

    .data: 数据框或数据表,表示要筛选的数据源。

    +
  • +
  • +

    ...: 逻辑条件,用于指定要筛选的行。条件可以是一个或多个,它们将被连接起来形成筛选表达式。 +筛选表达式可以使用以下逻辑运算符:

    +
  • +
  • \==: 等于。
  • +
  • !=: 不等于。
  • +
  • >: 大于。
  • +
  • \<: 小于。
  • +
  • >=: 大于等于。
  • +
  • \<=: 小于等于。
  • +
  • !: 非。
  • +
  • &: 逻辑与。
  • +
  • +

    |: 逻辑或。

    +
  • +
  • +

    选择年龄大于30的观测: +

    filtered_data <- filter(data, age > 30)
    +

    +
  • +
  • +

    选择性别为女性且收入大于50000的观测: +

    filtered_data <- filter(data, gender == "Female" & income > 50000)
    +
    +filtered_data <- filter(data, gender == "Female", income > 50000)
    +

    +
  • +
  • +

    选择城市为"New York"或"Los Angeles"的观测: +

    filtered_data <- filter(data, city %in% c("New York", "Los Angeles"))
    +

    +
  • +
  • +

    选择注册日期在特定时间范围内的观测: +

    filtered_data <- filter(data, registration_date >= "2022-01-01" & registration_date <= "2022-12-31")
    +

    +
  • +
+

通过组合不同的条件,可以灵活地筛选出符合特定要求的数据框中的行。 +需要注意的是,filter()函数返回一个新的数据框,其中包含满足筛选条件的行。原始数据框不会受到影响,除非将结果分配给一个新的变量或覆盖原始数据框。

+

真的没有python好用

+
property_names <- property_name$property_region
+
+lj_top30 <- dplyr::filter(lj, property_region %in% property_names)
+
+

错误示范 +

lj_top30 <- dplyr::filter(lj, property_region == property_names$property_region)
+
+不能用等于号,否则只返回固定数值的行数; +不能在filter函数中加额外df,指定df$column会显示报错!

+

https://blog.csdn.net/weixin_39366714/article/details/126578371扩展 +filter_all +if +at

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/full_join()/index.html b/R/dplyr/full_join()/index.html new file mode 100644 index 00000000..5c51217f --- /dev/null +++ b/R/dplyr/full_join()/index.html @@ -0,0 +1,1561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Full join() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Full join()

+ +

Pasted image 20231023230343 +您可以使用多个参数来指定全连接的行为。以下是full_join()函数中常用参数的详细介绍和示例: +


+
+- xy:要连接的两个数据框(或数据表)。 +- by:指定用于连接的共享变量的名称,可以是一个字符向量或变量名。如果两个数据框中的变量名称相同,则可以省略此参数。 +- suffix:指定在两个数据框中存在同名但不相等的变量时,用于区分这些变量的后缀。默认情况下,后缀为 ".x" 和 ".y" 用于区分。

+

以下是一个示例,演示了full_join()函数的参数使用:

+
library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3, 4),
+                  value1 = c("A", "B", "C", "D"))
+
+df2 <- data.frame(ID = c(2, 3, 5, 6),
+                  value2 = c("X", "Y", "Z", "W"))
+
+joined_df <- full_join(df1, df2, by = "ID", suffix = c(".left", ".right"))
+
+print(joined_df)
+
+

输出:

+
  ID value1 value2
+1  1      A   <NA>
+2  2      B      X
+3  3      C      Y
+4  4      D   <NA>
+5  5   <NA>      Z
+6  6   <NA>      W
+
+

在上述示例中,我们有两个数据框:df1df2。它们都包含一个名为"ID"的共享变量。使用full_join()函数,我们基于"ID"列对两个数据框进行全连接。suffix参数设置为c(".left", ".right"),用于区分两个数据框中存在的同名但不相等的变量。

+

全连接操作会保留两个数据框中的所有行,并将它们合并到一个新的数据框中。如果某个ID只在一个数据框中出现,则对应的另一个数据框的值将为NA

+

上述示例还展示了如何使用suffix参数来区分两个数据框中具有相同名称但不相等的变量。这可以避免变量名冲突。

+

希望这个解释对您有帮助。如果您还有其他问题,请随时提问。

+

by=NULL

+

当在full_join()函数中使用by = NULL参数时,它将执行全连接操作,不基于任何共享变量进行连接。这将导致将两个数据框中的所有行进行合并,而不考虑它们之间的任何匹配条件。

+

以下是使用by = NULL参数进行全连接的示例:

+
library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3, 4),
+                  value1 = c("A", "B", "C", "D"))
+
+df2 <- data.frame(ID = c(2, 3, 5, 6),
+                  value2 = c("X", "Y", "Z", "W"))
+
+joined_df <- full_join(df1, df2, by = NULL)
+
+print(joined_df)
+
+

输出:

+
  ID value1 value2
+1  1      A   <NA>
+2  2      B      X
+3  3      C      Y
+4  4      D   <NA>
+5  5   <NA>      Z
+6  6   <NA>      W
+
+

在上述示例中,我们有两个数据框:df1df2。通过将by参数设置为NULL,我们执行了全连接操作,将两个数据框中的所有行进行合并。

+

结果中的每一行都包含来自df1df2的数据,无论它们之间是否有匹配条件。如果某个数据框中的对应行在另一个数据框中不存在,则对应的变量值将为NA

+

请注意,使用by = NULL参数进行全连接可能会导致结果数据框非常大,因为它会将两个数据框的所有行进行合并。

+

希望这个解释对您有帮助。如果您还有其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/glimpse()/index.html b/R/dplyr/glimpse()/index.html new file mode 100644 index 00000000..b07f0ee5 --- /dev/null +++ b/R/dplyr/glimpse()/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Glimpse() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Glimpse()

+ +

Pasted image 20231012195044

+

在R语言中,glimpse()函数通常是由tidyverse包中的dplyr包提供的,用于查看数据框(data frame)的简要摘要信息。 +函数定义: +

glimpse(x, width = NULL, ...)
+
+参数: +- x:要查看摘要信息的数据框。 +- width:可选参数,用于指定输出的宽度。默认情况下,输出适应于屏幕。 +- ...:其他参数,用于传递给底层的print()函数。

+
library(dplyr)
+
+# 准备数据
+data <- iris
+
+# 查看数据框摘要信息
+glimpse(data)
+
+

在上面的示例中,我们使用iris数据集作为示例数据框。然后,我们使用glimpse()函数查看数据框的简要摘要信息。函数会显示数据框的列名、数据类型和前几行的值,以及其他有关数据框结构的相关信息。

+

在输出结果中,您将看到每列的名称、数据类型和前几行的值。数字表示数值型变量,字符表示字符型变量,而因子表示分类变量。此外,还会显示数据框的行数和列数。

+

使用glimpse()函数可以快速了解数据框的结构和内容,有助于进行数据清洗和分析。请注意,glimpse()函数通常与其他dplyr包中的函数一起使用,用于数据处理和操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/group_by()/index.html b/R/dplyr/group_by()/index.html new file mode 100644 index 00000000..8369e2ea --- /dev/null +++ b/R/dplyr/group_by()/index.html @@ -0,0 +1,1643 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Group by() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Group by()

+ +

是dplyr包中的一个函数,用于按照一个或多个变量对数据进行分组操作。

+

Pasted image 20231017160408

+

分组后数据整体没有变化,只是添加了分组特征说明,ungroup()就是取消这个说明,不像python直接修改了分组列的数据。

+
group_by(.data, ...)
+
+
    +
  • +

    .data: 要进行分组操作的数据框或数据集。

    +
  • +
  • +

    ...: 一个或多个变量,用于指定分组的依据。可以是变量名、变量位置或变量表达式。

    +
  • +
+

以下是一个示例,展示了如何使用group_by()函数对数据进行分组: +

library(dplyr)
+
+# 创建一个数据框
+data <- data.frame(
+  category = c("A", "B", "C", "A", "B", "C"),
+  value = c(10, 15, 8, 12, 9, 6)
+)
+
+# 使用group_by()函数对数据进行分组
+grouped_data <- group_by(data, category)
+
+# 对分组后的数据进行汇总统计
+summary_data <- summarize(grouped_data,  mean_value = mean(value), max_value = max(value))
+
+# 输出汇总统计结果
+print(summary_data)
+

+

在这个示例中,我们首先创建了一个数据框data,其中包含了一个类别变量category和一个数值变量value。然后,使用group_by()函数对数据框按照category变量进行分组操作,将分组结果保存到grouped_data中。接下来,使用summarize()函数对分组后的数据进行汇总统计,计算了每个类别的value均值和最大值,并将结果保存到summary_data中。最后,使用print()函数输出汇总统计结果。

+

运行这段代码会输出根据类别进行分组后的汇总统计结果。在这个例子中,根据category变量进行分组后,每个类别的均值和最大值被计算出来并显示在结果中。

+

group_by()函数通常与其他dplyr函数(如summarize()mutate()filter()等)一起使用,以进行更复杂的数据操作和分析。

+

.groups处理多级分组结构

+

多级分组,ungroup()可能不适用了。需要用.groups来告诉程序汇总后对多级分组的处理方式。 +以group_by(flights, year, month, day)为例子 +

daily <- group_by(flights, year, month, day)
+
+(per_day <- summarize(daily, flights = n(), .groups = "drop_last"))
+
+Pasted image 20231023145526

+

上面将day的组分组释放了,这级再求就是按照month最优一个分组来进行汇总统计。 +

(per_month <- summarize(per_day, flights = sum(flights), .groups = "drop_last")
+
+Pasted image 20231023145615 +.groups的主要参数有4个: +- drop_last:汇总结束后,将当前数据集的最低一级分组结构删除 +- drop:汇总结束后,将当前数据集所有的分组结构删除,数据集回到之前未分组的状态 +- keep:汇总结束后,保留数据集当前的分组结构,即当前的分组状态 +- rowwiese:字面上理解是每一行作为一组,实际上是指将原有的分组结构删除,以汇总变量作为依据重新分组 +https://blog.csdn.net/Y1575071736/article/details/119277403

+

关于NA值的处理

+

NA值单独分一组 +在R语言中,group_by()函数是dplyr包中的一个功能强大的函数,用于按照指定的变量对数据进行分组操作。在分组期间,group_by()函数会将数据集按照指定的变量进行分组,并在后续的操作中将每个组视为单独的单位。

+

group_by()函数的默认行为中,对于包含缺失值(NA)的变量,会将其作为一个单独的组进行处理。这意味着具有缺失值的观测将被分配到一个独立的组中。

+

以下是一个示例,演示了group_by()函数在处理包含NA值的情况下的行为:

+
library(dplyr)
+
+# 创建一个包含NA值的数据框
+df <- data.frame(
+  group_var = c("A", "A", "B", "B", NA),
+  value = c(1, 2, 3, 4, 5)
+)
+
+# 使用group_by对数据进行分组
+grouped_df <- df %>% group_by(group_var)
+
+# 查看分组后的数据
+print(grouped_df)
+
+### 输出
+# A tibble: 5 × 2
+# Groups:   group_var [3]
+  group_var value
+  <chr>     <dbl>
+1 A             1
+2 A             2
+3 B             3
+4 B             4
+5 <NA>          5
+
+

在上述示例中,我们创建了一个包含NA值的数据框df,其中包含一个分组变量group_var和一个数值变量value。然后,我们使用group_by()函数将数据按照group_var进行分组,并将结果存储在grouped_df中。最后,我们打印了分组后的数据。

+

在输出结果中,您会注意到含有NA值的组被单独列出,而其他组则按照group_var的取值进行分组。这是group_by()函数对于NA值的默认处理方式。

+

需要注意的是,您可以通过设置na.action参数来修改group_by()函数对于NA值的处理方式。例如,将na.action = na.pass传递给group_by()函数,将允许NA值参与分组操作,并保留原始的NA值所在的组。

+

总结起来,R语言中的group_by()函数默认将包含NA值的变量作为一个单独的组进行处理。您可以通过设置na.action参数来调整对NA值的处理方式。

+

高级分组:指定范围进行分组cut()

+

用到cut()函数,强制按离散型变量进行分组?

+
# 导入dplyr包
+library(dplyr)
+
+# 创建一个示例数据框
+df <- data.frame(Player = c("Player1", "Player2", "Player3", "Player4", "Player5"),
+                 PPG = c(15, 8, 12, 18, 23))
+
+# 定义分组区间
+breaks <- seq(10, 30, by = 2)  # 从10到30,每2为一个区间
+
+# 使用cut函数创建分组
+df <- df %>%
+  mutate(PPG_Group = cut(PPG, breaks = breaks, labels = FALSE, include.lowest = TRUE)) %>%
+  group_by(PPG_Group)
+
+# 输出分组后的数据框
+print(df)
+
+

Pasted image 20231108200433

+

正确的做法! +

# input data
+df_ppg <- read.csv("./data/NBAPlayerPts.csv")
+
+# 使用cut函数创建因子
+breaks <- seq(10, 30, by = 2)
+df_ppg_fre <- df_ppg %>%
+  mutate(PPG_Group = cut(PPG, breaks = breaks,include.lowest = TRUE)) %>% 
+  group_by(PPG_Group) %>% 
+  summarise(PPG_Group_count = n(), .groups = "drop")
+
+# 绘制柱状图
+df_ppg_fre %>% 
+  ggplot() +
+  geom_bar(aes(x = PPG_Group, y = PPG_Group_count), stat = "identity") +
+  scale_y_continuous(breaks = seq(0,20))
+

+

Pasted image 20231114144302

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/inner_join()/index.html b/R/dplyr/inner_join()/index.html new file mode 100644 index 00000000..bf9bef20 --- /dev/null +++ b/R/dplyr/inner_join()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Inner join() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Inner join()

+ +

Pasted image 20231023230251 +在函数中,您可以使用多个参数来指定内连接的行为。以下是inner_join()函数中常用参数的详细介绍和示例: +

inner_join(x,y,by="key", )
+

+
    +
  • xy:要连接的两个数据框(或数据表)。
  • +
  • by:指定用于连接的共享变量的名称,可以是一个字符向量或变量名。如果两个数据框中的变量名称相同,则可以省略此参数。默认为Null
  • +
  • suffix:指定在两个数据框中存在同名但不相等的变量时,用于区分这些变量的后缀。默认情况下,后缀为 ".x" 和 ".y" 用于区分。
  • +
+
library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3, 4),
+                  value1 = c("A", "B", "C", "D"))
+
+df2 <- data.frame(ID = c(2, 3, 5, 6),
+                  value2 = c("X", "Y", "Z", "W"))
+
+joined_df <- inner_join(df1, df2, by = "ID", suffix = c(".left", ".right"))
+
+print(joined_df)
+
+

输出:

+
  ID value1 value2
+1  2      B      X
+2  3      C      Y
+
+

在上述示例中,我们有两个数据框:df1df2。它们都包含一个名为"ID"的共享变量。使用inner_join()函数,我们基于"ID"列对两个数据框进行内连接。suffix参数设置为c(".left", ".right"),用于区分两个数据框中存在的同名但不相等的变量。 +内连接操作会在两个数据框中找到匹配的行,并将它们合并到一个新的数据框中。只有在两个数据框中都存在的ID才会出现在结果中。 +上述示例还展示了如何使用suffix参数来区分两个数据框中具有相同名称但不相等的变量。这可以避免变量名冲突。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/lag()/index.html b/R/dplyr/lag()/index.html new file mode 100644 index 00000000..f12878ac --- /dev/null +++ b/R/dplyr/lag()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Lag() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Lag()

+ +

函数是dplyr包中的一个函数,用于获取向量或数据框中的滞后观测。它可以用于计算先前的值或观测,并在结果中返回一个新的向量或数据框。 +

lag(x)
+
+- x:要获取滞后观测的向量或数据框的列。 +- n:要滞后的观测数量,默认为1。如果n为正数,返回向量或列中的先前观测。如果n为负数,返回向量或列中的后续观测。 +- default:可选参数,用于指定在边缘情况下(如滞后观测不可用时)返回的默认值。

+

下面是lag()函数的示例用法:

+
    +
  1. +

    应用于向量: +

    x <- c(1, 2, 3, 4, 5)
    +lag(x)
    +
    + 输出: +
    NA 1 2 3 4
    +
    + 上述代码获取向量x的滞后观测,默认情况下滞后1个观测。结果是一个新的向量,其中第一个元素为NA,后面的元素为原始向量的前一个观测。

    +
  2. +
  3. +

    应用于数据框的列: +

    df <- data.frame(x = c(1, 2, 3, 4, 5), y = c(6, 7, 8, 9, 10))
    +lag(df$x)
    +
    + 输出: +
    NA 1 2 3 4
    +
    + 上述代码获取数据框df中列x的滞后观测,默认情况下滞后1个观测。结果是一个新的向量,其中第一个元素为NA,后面的元素为原始向量的前一个观测。

    +
  4. +
+

lag()函数在时间序列分析和数据处理中经常用于计算滞后值。它可以帮助我们进行观测数据的比较、计算差异等操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/lead()/index.html b/R/dplyr/lead()/index.html new file mode 100644 index 00000000..0ea7a1c3 --- /dev/null +++ b/R/dplyr/lead()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Lead() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Lead()

+ +

函数是dplyr包中的一个函数,用于获取向量或数据框中的领先观测(可以理解为前移)。它可以用于计算后续的值或观测,并在结果中返回一个新的向量或数据框。 +

lead(x)
+
+- x:要获取领先观测的向量或数据框的列。 +- n:要领先的观测数量,默认为1。如果n为正数,返回向量或列中的后续观测。如果n为负数,返回向量或列中的先前观测。 +- default:可选参数,用于指定在边缘情况下(如领先观测不可用时)返回的默认值。

+
    +
  1. +

    应用于向量: +

       x <- c(1, 2, 3, 4, 5)
    +   lead(x)
    +
    + 输出: +
       2 3 4 5 NA
    +
    + 上述代码获取向量x的领先观测,默认情况下领先1个观测。结果是一个新的向量,其中前面的元素为原始向量的后一个观测,最后一个元素为NA

    +
  2. +
  3. +

    应用于数据框的列: +

    df <- data.frame(x = c(1, 2, 3, 4, 5), y = c(6, 7, 8, 9, 10))
    +lead(df$x)
    +
    + 输出: +
       2 3 4 5 NA
    +

    +
  4. +
+

上述代码获取数据框df中列x的领先观测,默认情况下领先1个观测。结果是一个新的向量,其中前面的元素为原始向量的后一个观测,最后一个元素为NA

+

lead()函数在时间序列分析和数据处理中经常用于计算领先值。它可以帮助我们进行观测数据的比较、计算差异等操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/left_join()/index.html b/R/dplyr/left_join()/index.html new file mode 100644 index 00000000..d5d596b4 --- /dev/null +++ b/R/dplyr/left_join()/index.html @@ -0,0 +1,1574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Left join() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Left join()

+ +

Pasted image 20231023230321 +函数是 dplyr 包中的一个函数,用于进行左连接操作。它将两个数据框按照共享的键进行连接,并保留左侧数据框的所有行,同时将右侧数据框中匹配的行合并到结果中。 +

left_join(x, y, by = NULL, ...)
+# 或者使用管道操作符 %>%
+x %>% left_join(y, by = NULL, ...)
+
+- x, y: 要连接的两个数据框或数据表。 +- by:一个字符向量或一个包含字符向量的列表,用于指定连接的键。如果键的名称在左侧和右侧数据框中不同,可以使用 by = c("left_key" = "right_key") 的形式进行映射。如果不提供键,则 left_join() 函数将根据两个数据框中的所有列进行连接。 +不指定键名,两个数据框中的所有具有相同名称的列进行连接 +by = c("key1", "key2")多key

+
    +
  • copy: 逻辑值,指示是否复制 xy。默认为 TRUE,表示在进行连接之前复制数据框。如果数据框很大,可以将其设置为 FALSE,以节省内存。
  • +
  • suffix: 一个长度为2的字符向量,用于给具有相同列名的列添加后缀。默认为 c(".x", ".y")
  • +
  • ...: 其他传递给底层连接函数的参数。
  • +
+

下面是一个示例,演示了 left_join() 函数的用法:

+
library(dplyr)
+
+# 创建第一个数据框
+data1 <- data.frame(
+  id = c(1, 2, 3),
+  name = c("Alice", "Bob", "Charlie")
+)
+
+# 创建第二个数据框
+data2 <- data.frame(
+  id = c(1, 2, 4),
+  age = c(25, 30, 35)
+)
+
+# 进行左连接
+joined_data <- left_join(data1, data2, by = "id")
+
+print(joined_data)
+
+

输出结果如下:

+
  id    name age
+1  1   Alice  25
+2  2     Bob  30
+3  3 Charlie  NA
+
+

在上述示例中,我们创建了两个数据框 data1data2。然后使用 left_join() 函数将这两个数据框按照共享的键 "id" 进行左连接。左连接结果保留了左侧数据框 data1 的所有行,并将右侧数据框 data2 中匹配的行合并到结果中。如果右侧数据框中没有与左侧数据框匹配的行,相应位置上的值将显示为 NA

+

关于by参数的详细解释

+

在 R 语言中,left_join() 函数用于根据一个或多个字段(列)将两个数据框进行左连接(left join)。左连接是一种合并数据的操作,它将保留左侧数据框的所有行,并将右侧数据框中匹配的行添加到左侧数据框。left_join() 函数的 by 参数用于指定用于匹配的字段。以下是 left_join() 函数中 by 参数的详细讲解和示例使用:

+
left_join(x, y, by = c("column1", "column2", ...))
+
+

参数: +- x:左侧数据框。 +- y:右侧数据框。 +- by:一个字符向量,指定用于匹配的字段(列)的名称。

+

示例用法: +

# 创建示例数据框
+df1 <- data.frame(ID = c(1, 2, 3),
+                  Name = c("John", "Alice", "Bob"),
+                  Age = c(25, 30, 35))
+
+df2 <- data.frame(ID = c(2, 3, 4),
+                  City = c("New York", "Chicago", "Los Angeles"))
+
+# 使用 left_join() 进行左连接
+result <- left_join(df1, df2, by = "ID")
+print(result)
+

+

在上述示例中,我们创建了两个示例数据框 df1df2,它们包含了一些共同的字段 ID。我们想要根据 ID 字段将这两个数据框进行左连接操作。

+

使用 left_join() 函数,我们传递了左侧数据框 df1 和右侧数据框 df2,并通过 by 参数指定了要匹配的字段名称 "ID"。这将使函数根据 ID 字段的值进行匹配。

+

输出结果为: +

  ID  Name Age       City
+1  1  John  25       <NA>
+2  2 Alice  30   New York
+3  3   Bob  35    Chicago
+

+

结果数据框 result 保留了左侧数据框 df1 的所有行,并将右侧数据框 df2 中匹配的行添加到相应的列中。匹配失败的行将在结果数据框中显示为 <NA>(缺失值)。

+

需要注意的是,by 参数可以接受一个或多个字段的名称。在示例中,我们只使用了一个字段 "ID" 进行匹配。如果要匹配多个字段,只需在 by 参数中指定多个字段的名称即可,例如 by = c("field1", "field2")

+

总结起来,left_join() 函数中的 by 参数用于指定用于匹配的字段,使得左连接操作能够根据指定的字段将两个数据框进行连接。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/min_rank()/index.html b/R/dplyr/min_rank()/index.html new file mode 100644 index 00000000..4b5eaf7e --- /dev/null +++ b/R/dplyr/min_rank()/index.html @@ -0,0 +1,1515 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Min rank() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Min rank()

+ +

min_rank() 是在 R 的 dplyr 包中的一个函数,用于计算向量或数据框中元素的最小排名。它为每个元素分配一个排名值,其中最小的元素具有排名值 1,而相同值的元素将具有相同的排名。 +就是输出最小值排序后的序号,序号1为最小,相同值序号相同,依次分配。

+
library(dplyr)
+
+# 使用 min_rank() 计算向量的最小排名
+vec <- c(10, 15, 8, 12, 9, 6)
+rank_vec <- min_rank(vec)
+
+print(rank_vec)
+
+

输出结果如下: +

[1] 4 6 2 5 3 1
+

+

在上述示例中,我们使用 min_rank() 函数计算了向量 vec 中元素的最小排名。元素 6 具有最小值,因此它获得排名 1,元素 15 具有最大值,因此它获得排名 6。其他元素的排名根据它们的大小依次分配。

+

除了向量,min_rank() 函数还可以应用于数据框中的列。下面是一个示例:

+
data <- data.frame(
+  category = c("A", "B", "C", "A", "B", "C"),
+  value = c(10, 15, 8, 12, 9, 6)
+)
+
+# 在数据框中应用 min_rank()
+rank_data <- data %>%
+  mutate(rank_value = min_rank(value))
+
+print(rank_data)
+
+

输出结果如下:

+
  category value rank_value
+1        A    10          4
+2        B    15          6
+3        C     8          2
+4        A    12          5
+5        B     9          3
+6        C     6          1
+
+

在上述示例中,我们使用 mutate() 函数和 min_rank() 函数在数据框中创建了一个新列 rank_value,其中存储了 value 列元素的最小排名。 +通过 min_rank() 函数,你可以为向量或数据框中的元素计算最小排名,并用于各种排序和排名分析任务。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/mutate()/index.html b/R/dplyr/mutate()/index.html new file mode 100644 index 00000000..1b081248 --- /dev/null +++ b/R/dplyr/mutate()/index.html @@ -0,0 +1,1568 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Mutate() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Mutate()

+ +

是 R 语言中 dplyr 包提供的一个函数,用于在数据框(data frame)中创建或修改新的列(变量)

+

mutate() 函数会返回一个新的数据框,其中包含创建或修改后的列,原始数据框不会被修改

+

如果需要在原始数据框上进行就地修改,可以使用赋值操作符。

+
mutate(.data, new_column1 = expression1, new_column2 = expression2,...)
+
+

.data 表示要进行操作的数据框

+

new_column 是要创建或修改的新列的名称,创建新列后会自动添加到df最后一列;

+

expression 是用于计算新列值的表达式

+

... 表示其他要创建或修改的列。

+
library(dplyr)
+
+# 示例数据框
+df <- data.frame(Name = c("Alice", "Bob", "Charlie"),
+                 Age = c(25, 30, 20),
+                 Salary = c(50000, 60000, 45000))
+
+# 创建新列 Bonus,计算 Salary 的 10% 作为 Bonus 值
+df <- mutate(df, Bonus = Salary * 0.1)
+
+# 修改 Age 列,将年龄加上 1
+df <- mutate(df, Age = Age + 1)
+
+# 打印修改后的数据框
+print(df)
+
+

在上述示例中,我们有一个数据框 df,包含三个列(Name、Age 和 Salary)。通过调用 mutate() 函数并传递数据框 df、要创建的新列名称 Bonus 和计算表达式 Salary * 0.1 作为参数,我们创建了一个名为 Bonus 的新列,其值为 Salary 的 10%。接着,我们再次调用 mutate() 函数,并将数据框 df、要修改的列名 Age 和计算表达式 Age + 1 作为参数,将 Age 列中的每个值加上 1。最后,我们通过打印语句输出修改后的数据框。 +输出结果如下所示: +

    Name Age Salary  Bonus
+1  Alice  26  50000  5000
+2    Bob  31  60000  6000
+3 Charlie  21  45000  4500
+

+

在输出结果中,我们可以看到数据框 df 中新增了一个名为 Bonus 的列,它的值是根据 Salary 列计算得出的。同时,Age 列的值也被修改为原值加上 1。

+

关于其中的function函数

+

这个就可以。也是将x当作向量处理! +

get_one <- function(x) {
+  j <- ifelse(x == '近地铁', 1, 0)
+  return(j)
+}
+
+# 将有地铁的数据变为0
+lj1 <- lj_group %>% 
+  mutate(if_subway = get_one(near_subway))
+

+

但下面两种都不行,不能循环迭代,说是length(x)长度与lj_group的长度不符合??? +

get_one <- function(x){
+  j <- c(0)
+  for (i in 1:length(x)){
+    if (x[i] == '近地铁'){
+      j[i] <- 1
+    }else{
+      j[i] <- 0
+    } 
+  }
+  return(j)
+}
+
+get_one <- function(x){
+  j <- 0
+    if (x == '近地铁'){
+      j <- 1
+    }else{
+      j <- 0
+    } 
+
+  return(j)
+}
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/n()/index.html b/R/dplyr/n()/index.html new file mode 100644 index 00000000..ddb87863 --- /dev/null +++ b/R/dplyr/n()/index.html @@ -0,0 +1,1497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + N() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

N()

+ +

是dplyr包中的一个函数,用于计算数据框中的观测数量。它返回一个整数,表示给定数据框中的行数。 +以下是n()函数的示例用法: +

library(dplyr)
+
+df <- data.frame(x = c(1, 2, 3, 4, 5),
+                 y = c("A", "B", "C", "D", "E"))
+
+n(df)
+

+

输出: +

[1] 5
+

+

上述代码使用n()函数计算了数据框df中的观测数量,结果为5。 +n()函数通常与dplyr包中的其他函数一起使用,用于数据处理和统计分析中的计数操作。

+

decoration <- lj %>%
+  group_by(decoration) %>%
+  summarise(sum_decoration = n())
+
+计算分组后的行数,可以理解为分组数!

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/n_distinct()/index.html b/R/dplyr/n_distinct()/index.html new file mode 100644 index 00000000..0da7efff --- /dev/null +++ b/R/dplyr/n_distinct()/index.html @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + N distinct() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

N distinct()

+ +

函数是dplyr包中的一个函数,用于计算向量或数据框中的唯一值的数量。它返回一个整数,表示给定向量或数据框列中的唯一值的个数。 +

n_distinct(data)
+
+- data:要计算唯一值数量的向量或数据框的列。

+
    +
  1. 应用于向量: +
    x <- c(1, 2, 3, 2, 1, 4)
    +n_distinct(x)
    +
    + 输出: +
    4
    +
    + 上述代码计算了向量x中的唯一值的数量,结果为4。
  2. +
  3. 应用于数据框的列: +
    df <- data.frame(x = c(1, 2, 3, 2, 1, 4), y = c("A", "B", "C", "B", "A", "D"))
    +n_distinct(df$y)
    +
    + 输出: +
    4
    +
    + 上述代码计算了数据框df中列y的唯一值的数量,结果为4。 +n_distinct()函数在数据处理和统计分析中常用于计算唯一值的个数,例如计算分类变量的不同类别数量或计算去重后的观测数量。
  4. +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/rename()/index.html b/R/dplyr/rename()/index.html new file mode 100644 index 00000000..b201dff2 --- /dev/null +++ b/R/dplyr/rename()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Rename() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Rename()

+ +

在 R 语言中,rename() 函数有于修改数据框列名,用新列明替代旧列名

+

所属包: dplyr

+

定义: +

dplyr::rename(data, new_column_name = old_column_name)
+

+

参数介绍: +- data:数据框或数据表。 +- new_column_name:要重命名的新列名。 +- old_column_name:要被替换的旧列名。

+

功能: +在数据框或数据表中,将指定的列名从旧列名改为新列名。

+

举例: +

library(dplyr)
+
+# 创建一个数据框
+df <- data.frame(A = c(1, 2, 3), B = c(4, 5, 6))
+
+# 使用 rename() 重命名列 B 为 NewB
+df <- rename(df, NewB = B)
+
+# 打印结果
+print(df)
+

+

输出: +

  A NewB
+1 1    4
+2 2    5
+3 3    6
+

+

在这个例子中,rename() 函数用于将数据框 df 中的列 B 重命名为 NewB

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/right_join()/index.html b/R/dplyr/right_join()/index.html new file mode 100644 index 00000000..b74514b6 --- /dev/null +++ b/R/dplyr/right_join()/index.html @@ -0,0 +1,1556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Right join() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Right join()

+ +

在函数中,您可以使用多个参数来指定右连接的行为。以下是right_join()函数中常用参数的详细介绍和示例: +

right_join(x, y, by=NULL, suffix)
+
+- xy:要连接的两个数据框(或数据表)。 +- by:指定用于连接的共享变量的名称,可以是一个字符向量或变量名。如果两个数据框中的变量名称相同,则可以省略此参数。 +- suffix:指定在两个数据框中存在同名但不相等的变量时,用于区分这些变量的后缀。默认情况下,后缀为 ".x" 和 ".y" 用于区分。

+

以下是一个示例,演示了right_join()函数的参数使用:

+

library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3, 4),
+                  value1 = c("A", "B", "C", "D"))
+
+df2 <- data.frame(ID = c(2, 3, 5, 6),
+                  value2 = c("X", "Y", "Z", "W"))
+
+joined_df <- right_join(df1, df2, by = "ID", suffix = c(".left", ".right"))
+
+print(joined_df)
+
+输出: +
  ID value1 value2
+1  2      B      X
+2  3      C      Y
+3  5   <NA>      Z
+4  6   <NA>      W
+

+

在上述示例中,我们有两个数据框:df1df2。它们都包含一个名为"ID"的共享变量。使用right_join()函数,我们基于"ID"列对两个数据框进行右连接。suffix参数设置为c(".left", ".right"),用于区分两个数据框中存在的同名但不相等的变量。 +右连接操作会保留右侧数据框(df2)的所有行,并将与左侧数据框(df1)中的匹配行进行合并。如果某个ID只在右侧数据框中出现,则左侧数据框中对应的变量值将为NA。 +上述示例还展示了如何使用suffix参数来区分两个数据框中具有相同名称但不相等的变量。这可以避免变量名冲突。

+

suffix参数介绍

+

当使用suffix参数时,它用于在两个数据框中存在同名但不相等的变量时,为这些变量添加后缀以进行区分。以下是一个使用suffix参数的示例:

+
library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3),
+                  value = c("A", "B", "C"),
+                  other = c("X", "Y", "Z"))
+
+df2 <- data.frame(ID = c(2, 3, 4),
+                  value = c("D", "E", "F"),
+                  other = c("W", "X", "Y"))
+
+joined_df <- full_join(df1, df2, by = "ID", suffix = c(".df1", ".df2"))
+
+print(joined_df)
+
+

输出:

+
  ID value.df1 other.df1 value.df2 other.df2
+1  1         A         X      <NA>      <NA>
+2  2         B         Y         D         W
+3  3         C         Z         E         X
+4  4      <NA>      <NA>         F         Y
+
+

在上述示例中,我们有两个数据框:df1df2。它们都包含一个名为"ID"的共享变量,以及其他变量。使用full_join()函数,我们基于"ID"列对两个数据框进行全连接。suffix参数设置为c(".df1", ".df2"),用于区分两个数据框中存在的同名但不相等的变量。

+

结果数据框joined_df中,来自df1的变量"ID"、"value"和"other"被保留,并在变量名称后添加了.df1的后缀。同样,来自df2的变量"ID"、"value"和"other"也被保留,并在变量名称后添加了.df2的后缀。

+

使用suffix参数能够区分具有相同名称但不相等的变量,避免了变量名冲突。

+

希望这个示例对您有帮助。如果您还有其他问题,请随时提问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/sample_frac()/index.html b/R/dplyr/sample_frac()/index.html new file mode 100644 index 00000000..b6b28ab0 --- /dev/null +++ b/R/dplyr/sample_frac()/index.html @@ -0,0 +1,1493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sample frac() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sample frac()

+ +

dplyr包中, 从数据集中随机抽取指定比例的观察值。 +

sample_frac(data, size, replace = FALSE, weight = NULL)
+
+参数说明: +- data: 输入的数据集。 +- size: 需要抽样的观察值比例,取值范围为0到1之间。 +- replace: 是否进行有放回抽样,如果为TRUE,则允许重复抽取同一个观察值;如果为FALSE,则不允许重复抽取同一个观察值,默认为FALSE。 +- weight: 可选参数,用于指定每个观察值的抽样权重,即每个观察值被抽取的概率。 +示例用法: +
library(dplyr)
+
+# 从mtcars数据集中随机抽取30%的观察值
+sample_frac(mtcars, 0.3)
+

+

上述示例展示了如何在dplyr包中使用sample_n()sample_frac()函数进行抽样操作。根据具体的需求,可以根据数据集的大小和抽样比例来调整抽样函数的参数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/sample_n()/index.html b/R/dplyr/sample_n()/index.html new file mode 100644 index 00000000..7441e420 --- /dev/null +++ b/R/dplyr/sample_n()/index.html @@ -0,0 +1,1494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Sample n() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Sample n()

+ +

用于从数据集中随机抽取观察值。 +1. sample_n(): 从数据集中随机抽取指定数量的观察值。 +语法: +

sample_n(data, size, replace = FALSE, weight = NULL)
+
+参数说明: +- data: 输入的数据集。 +- size: 需要抽样的观察值数量。 +- replace: 是否进行有放回抽样,如果为TRUE,则允许重复抽取同一个观察值;如果为FALSE,则不允许重复抽取同一个观察值,默认为FALSE。 +- weight: 可选参数,用于指定每个观察值的抽样权重,即每个观察值被抽取的概率。

+

示例用法: +

library(dplyr)
+
+# 从mtcars数据集中随机抽取5个观察值
+sample_n(mtcars, 5)
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/select()/index.html b/R/dplyr/select()/index.html new file mode 100644 index 00000000..51a09113 --- /dev/null +++ b/R/dplyr/select()/index.html @@ -0,0 +1,1620 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Select() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Select()

+ +

是 R 语言中 dplyr 包提供的一个函数,用于选择(提取) 数据框(data frame)中的特定列(变量)

+

select() 函数会返回一个新的数据框,其中只包含选择的列。原始数据框不会被修改。如果需要在原始数据框上进行就地修改,可以使用赋值操作符(例如,df <- select(df, Name, Salary))。

+
select(.data,...)
+
+

.data 表示要选择列的数据框;

+
    +
  • +

    ...: 要选择或排除的列。您可以使用以下方式来指定列:

    +

    使用指定列名:select(data, col1, col2, col3),其中col1col2col3是数据框中的列名。

    +

    使用冒号(:范围描述符:select(data, col1:col3),选择从col1col3之间的所有列。 + 要确保是根据原表中列标题头的顺序来的,否则会出现问题!如果是col2 col3 col1 的顺序,实际col1:col3只会匹配出col1和col3字段!

    +

    使用减号(-)组合:select(data, col1, -col2),选择col1列并排除col2列。 + select提取的逻辑。第一步为df1=data;其后有指定列,进一步提取df1形成df2。无,则df2=df1;-col* 排除列,基于df2上排除col* 列,形成df3。 + 所以select(data, col1, -col2)结果是?是col1。

    +
  • +
  • +

    指定前缀或后缀starts_with(),选择以指定前缀开头的列;ends_with(),选择以指定后缀开头的列;contains(),选择包含关键字的列字段名;matches(),匹配正则表达式。

    +
  • +
  • +

    使用one_of()select(data, one_of(c("col1", "col2", "col3"))),选择在指定向量中的列。

    +
  • +
+
# 选择特定列
+selected_cols <- select(data, col1, col2, col3)
+
+# 选择范围内的列
+selected_cols <- select(data, col1:col3)
+
+# 排除特定列col2,其他列都选上
+selected_cols <- select(data, -col2)
+
+# 使用函数选择特定前缀的列
+selected_cols <- select(data, starts_with("prefix"))
+
+# 使用one_of选择列
+selected_cols <- select(data, one_of(c("col1", "col2", "col3")))
+
+

everything()需要根据使用场景进一步完善

+

everything()dplyr包中的一个函数,用于选择或排除特定列的同时,仍保留其他所有列。

+

1,将指定列前置:将col3列取出前置,剩余的其他列排在后面 +

selected_cols <- select(data, col3, everything())
+

+

2, 选择除特定列外的所有列: +

selected_cols <- select(data, -col1, -col2, everything())
+

+

上述代码将选择除col1col2之外的所有列。这里感觉多此一举,但在其他的情况下应该有用,如在不适用select的情况下,剔除某些列,对指定列进行操作?

+

[[one_of()]] 函数,待完善

+

其功能有些不明确。

+

假设有一个包含以下列的数据框data: +

data <- data.frame(
+  col1 = 1:5,
+  col2 = letters[1:5],
+  col3 = LETTERS[1:5],
+  col4 = c(TRUE, FALSE, TRUE, FALSE, TRUE),
+  col5 = 11:15
+)
+
+1. 选择特定列: + 假设我们想选择col2col4列,可以使用one_of()函数如下: +
selected_cols <- select(data, one_of(c("col2", "col4")))
+
+这将选择数据框data中列名为col2col4的列。

+

contain()函数扩展-R中的正则表达式符号

+

在R中,正则表达式是一种用于匹配和操作文本模式的强大工具。正则表达式由一系列字符和特殊符号组成,用于定义模式。

+
    +
  1. .:匹配任意字符(除了换行符)。
  2. +
  3. ^:匹配字符串的开头
  4. +
  5. $:匹配字符串的结尾
  6. +
  7. *:匹配前面的元素零次或多次
  8. +
  9. +:匹配前面的元素一次或多次
  10. +
  11. ?:匹配前面的元素零次或一次
  12. +
  13. []:匹配括号内的任意字符。
  14. +
  15. ():创建捕获组,用于提取匹配的子字符串。
  16. +
  17. |:表示逻辑或,匹配两个或多个模式之一。
  18. +
  19. \:转义字符,用于转义特殊字符,使其失去其特殊含义。
  20. +
+

下面是一些案例,展示了如何在实际情况中使用正则表达式:

+
    +
  1. 电话号码提取:
  2. +
+

假设您有一个包含文本的字符串,其中包含电话号码。您可以使用正则表达式来提取这些电话号码。例如: +

text <- "请联系我:电话号码是:+1-123-456-7890。"
+phone_numbers <- gregexpr("\\+\\d{1}-\\d{3}-\\d{3}-\\d{4}", text, perl = TRUE)
+extracted_numbers <- regmatches(text, phone_numbers)
+print(extracted_numbers)
+

+

输出结果为: +

[1] "+1-123-456-7890"
+

+

在上述示例中,我们使用正则表达式 \\+\\d{1}-\\d{3}-\\d{3}-\\d{4} 来匹配电话号码的模式。然后,使用 gregexpr() 函数找到字符串中匹配的位置,并使用 regmatches() 函数提取匹配的子字符串。

+
    +
  1. 邮箱地址验证:
  2. +
+

假设您有一个包含多个邮箱地址的向量,您想要验证这些邮箱地址是否有效。您可以使用正则表达式来检查邮箱地址的格式。例如: +

emails <- c("example@example.com", "invalid_email", "another@example.com")
+valid_emails <- grep("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", emails, value = TRUE)
+print(valid_emails)
+

+

输出结果为: +

[1] "example@example.com"   "another@example.com"
+

+

在上述示例中,我们使用正则表达式 ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$ 来验证邮箱地址的格式。使用 grep() 函数和参数 value = TRUE,我们可以找到符合正则表达式模式的有效邮箱地址。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/select_if()/index.html b/R/dplyr/select_if()/index.html new file mode 100644 index 00000000..e1e1850c --- /dev/null +++ b/R/dplyr/select_if()/index.html @@ -0,0 +1,1563 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Select if() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Select if()

+ +

在 R 语言中,select_if() 函数用于选择数据框中满足特定条件的列。它允许你根据自定义的条件表达式来选择列。下面是对 select_if() 函数常用参数的详细介绍和举例: +函数语法: +

select_if(.data, .predicate, ...)
+
+参数说明: +以下是 select_if() 函数的一些常用参数,具体说明如下:

+
    +
  • .data:要选择列的数据框。
  • +
  • .predicate:一个逻辑条件,用于选择列。可以是函数、谓词函数(返回逻辑值的函数)或列选择公式。
  • +
  • ...:其他参数,用于定制选择操作的行为。 +示例: +下面是使用 select_if() 函数选择列的示例:
  • +
  • +

    根据数据类型选择列: +

    # 创建一个数据框
    +data <- data.frame(
    +  x = c(1, 2, 3),
    +  y = c("a", "b", "c"),
    +  z = c(TRUE, FALSE, TRUE)
    +)
    +
    +# 根据数据类型选择列
    +library(dplyr)
    +selected_cols <- select_if(data, is.numeric)
    +
    +selected_cols
    +
    +输出: +
      x
    +1 1
    +2 2
    +3 3
    +
    +在上述示例中,我们使用 select_if() 函数和 is.numeric 函数作为条件来选择数据框中的数值列。结果只返回了 x 列,因为它是数值类型的列。

    +
  • +
  • +

    根据自定义条件选择列: +

    # 创建一个数据框
    +data <- data.frame(
    +  x = c(1, 2, 3),
    +  y = c("a", "b", "c"),
    +  z = c(TRUE, FALSE, TRUE)
    +)
    +
    +# 根据自定义条件选择列
    +library(dplyr)
    +selected_cols <- select_if(data, function(col) {
    +  any(col > 1)
    +})
    +
    +selected_cols
    +
    +输出: +
      x
    +1 1
    +2 2
    +3 3
    +
    +在上述示例中,我们使用 select_if() 函数和自定义的条件函数来选择数据框中满足任意值大于 1 的列。由于 x 列满足这个条件,所以它被选择了。

    +
  • +
  • +

    使用列选择公式选择列: +

    # 创建一个数据框
    +data <- data.frame(
    +  x = c(1, 2, 3),
    +  y = c("a", "b", "c"),
    +  z = c(TRUE, FALSE, TRUE)
    +)
    +
    +# 使用列选择公式选择列
    +library(dplyr)
    +selected_cols <- select_if(data, ~is.factor(.))
    +
    +selected_cols
    +
    +输出: +
      y
    +1 a
    +2 b
    +3 c
    +
    +在上述示例中,我们使用 select_if() 函数和列选择公式 ~is.factor(.) 来选择数据框中的因子类型的列。结果只返回了 y 列,因为它是因子类型的列。 +通过使用适当的条件表达式,你可以根据自己的需求使用 select_if() 函数选择数据框中的列。

    +
  • +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/semi_join()/index.html b/R/dplyr/semi_join()/index.html new file mode 100644 index 00000000..d53eb1b1 --- /dev/null +++ b/R/dplyr/semi_join()/index.html @@ -0,0 +1,1560 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Semi join() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Semi join()

+ +

您可以使用多个参数来指定半连接的行为。以下是semi_join()函数中常用参数的详细介绍和示例: +

semi_join(x, y, by=NULL)
+
+- xy:要连接的两个数据框(或数据表)。 +- by:指定用于连接的共享变量的名称,可以是一个字符向量或变量名。如果两个数据框中的变量名称相同,则可以省略此参数,默认NULL。

+
library(dplyr)
+
+df1 <- data.frame(ID = c(1, 2, 3, 4),
+                  value1 = c("A", "B", "C", "D"))
+
+df2 <- data.frame(ID = c(2, 3, 5, 6),
+                  value2 = c("X", "Y", "Z", "W"))
+
+semi_joined_df <- semi_join(df1, df2, by = "ID")
+
+print(semi_joined_df)
+
+

输出: +

  ID value1
+1  2      B
+2  3      C
+

+

在上述示例中,我们有两个数据框:df1df2。它们都包含一个名为"ID"的共享变量。使用semi_join()函数,我们基于"ID"列对两个数据框进行半连接。 +半连接操作会保留左侧数据框(df1)中与右侧数据框(df2)中匹配行的数据,并且只返回左侧数据框中的所有列。如果某个ID在右侧数据框中不存在,则对应的行将被过滤掉。 +在上述示例中,只有ID为2和3的行在两个数据框中都有匹配,因此只有这些行被保留在结果数据框semi_joined_df中。

+

半连接和左连接的区别

+

半连接(semi-join)和左连接(left join)是关系型数据库中的两种连接操作,用于将两个表格按照指定的条件进行关联。它们之间的区别在于返回的结果集的不同。

+
    +
  • +

    左连接(left join):左连接返回的结果集包含左侧表格的所有行,并将右侧表格中满足连接条件的匹配行合并到结果中。如果右侧表格中没有与左侧表格匹配的行,相应位置上的值将显示为 NULL 或缺失值。左连接保留了左侧表格的所有行,无论是否存在匹配。

    +
  • +
  • +

    半连接(semi-join):半连接操作返回的结果集只包含左侧表格中满足连接条件的行,并且不会返回右侧表格的任何数据。它只关心左侧表格中的匹配行是否存在于右侧表格中,而不关心右侧表格中的具体值。如果左侧表格中的某个键值在右侧表格中存在至少一次匹配,则该行将包含在结果集中。

    +
  • +
+

筛选主键的方式

+

代码还是有些问题,特别是count()的使用。

+
- 筛选非主键信息
+data %>% 
+  group_by(col1, col2) %>% 
+  count() %>% 
+  filter(n >= 2) %>% 
+  semi_join(data, by = 'ID')
+
+-- 筛选主键信息
+data %>% 
+  group_by(col1, col2) %>% 
+  count() %>% 
+  filter(n >= 2) %>% 
+  anti_join(data, by = 'ID')
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/slice_max()/index.html b/R/dplyr/slice_max()/index.html new file mode 100644 index 00000000..4bb52853 --- /dev/null +++ b/R/dplyr/slice_max()/index.html @@ -0,0 +1,1526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Slice max() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Slice max()

+ +

在 R 语言的 dplyr 包中,slice_max() 函数用于根据指定的变量,保留具有最大值的观测行。它可以用于数据框的筛选和子集选择。下面是对 slice_max() 函数的参数进行详细介绍和举例:

+

函数语法: +

slice_max(.data, ..., n = 1, with_ties = FALSE, order_by = NULL)
+
+# 或者使用管道操作符 %>%
+.data %>% slice_max(..., n = 1, with_ties = FALSE, order_by = NULL)
+

+

参数说明: +- .data:要操作的数据框。

+
    +
  • +

    ...:一个或多个要比较的变量,可以是变量名、位置索引或 vars() 对象。

    +
  • +
  • +

    n:要保留的具有最大值的观测行数量。默认为 1,表示只保留最大值的观测行。

    +
  • +
  • +

    with_ties:一个逻辑值,表示是否保留具有相同最大值的观测行。默认为 FALSE

    +
  • +
  • +

    order_by:一个可选的变量或表达式,用于指定观测行的排序顺序。默认为 NULL,表示不进行排序。

    +
  • +
+

返回值: +函数返回一个新的数据框,包含具有最大值的观测行。

+

示例: +下面是使用 slice_max() 函数根据变量保留具有最大值的观测行的示例: +

library(dplyr)
+
+# 创建示例数据框
+df <- data.frame(
+  ID = c(1, 2, 3, 4, 5),
+  Name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+  Age = c(25, 30, 35, 30, 40),
+  Salary = c(50000, 60000, 70000, 65000, 80000)
+)
+
+# 使用 slice_max() 保留具有最大薪资的观测行
+max_salary <- slice_max(df, Salary)
+print(max_salary)
+
+在上述示例中,我们首先加载了 dplyr 包,并创建了一个示例数据框 df,包含一些列(例如 ID、Name、Age、Salary)。然后,我们使用 slice_max() 函数根据 Salary 变量保留具有最大薪资的观测行。最后,我们打印出结果 max_salary。 +根据示例数据框 df 的内容,使用 slice_max() 保留具有最大薪资的观测行后,输出的结果将是:

+
  ID Name Age Salary
+1  5  Eve  40  80000
+
+

结果只包含了具有最大薪资的观测行,其他行被排除在外。通过打印 max_salary,我们可以查看保留的观测行的内容。 +你可以根据需要使用 slice_max() 函数筛选具有最大值的观测行,并根据情况设置参数 nwith_tiesorder_by。查阅官方文档或使用 ?slice_max 命令可以获取更多关于 slice_max() 函数参数的详细信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/slice_sample()/index.html b/R/dplyr/slice_sample()/index.html new file mode 100644 index 00000000..4f7fcae8 --- /dev/null +++ b/R/dplyr/slice_sample()/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Slice sample() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Slice sample()

+ +

是 R 语言中的一个函数,它属于 dplyr 包的一部分。slice_sample() 函数用于从数据框中进行随机抽样,选择指定数量的观测值。 + slice_sample() 函数会随机选择指定数量的观测值,并返回一个新的数据框。抽样是无放回的,即每个观测值只会被选择一次。 +

slice_sample(.data, n)
+
+参数说明: +- .data:要进行抽样的数据框或数据集。

+
    +
  • +

    n:要抽取的观测值数量。

    +
  • +
  • +

    set.seed():随机数种子(random seed)是一个用来初始化随机数生成器的起点数值。随机数生成器是一个程序或算法,用于生成伪随机数序列,即在外观上看起来随机的数值序列。设定随机数种子(set.seed())是为了使得每次运行相同的随机数生成器得到相同的随机数序列

    +
  • +
+

如set.seed(1040)

+

library(dplyr)
+
+# 创建一个数据框
+data <- data.frame(x = 1:10, y = letters[1:10])
+
+# 从数据框中随机抽样3个观测值
+sampled_data <- slice_sample(data, 3)
+
+# 打印抽样结果
+print(sampled_data)
+
+在上述示例中,我们首先创建了一个包含 x 和 y 两列的数据框。然后,使用 slice_sample() 函数从数据框中随机抽样了3个观测值,并将结果存储在 sampled_data 中。最后,我们打印了抽样结果。

+

需要注意的是,slice_sample() 函数是基于 dplyr 包的数据操作函数,因此在使用之前需要先加载 dplyr 包。你可以使用 library(dplyr) 或者 require(dplyr) 来加载该包。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/dplyr/summarize()\343\200\201summarise()/index.html" "b/R/dplyr/summarize()\343\200\201summarise()/index.html" new file mode 100644 index 00000000..9d45b18e --- /dev/null +++ "b/R/dplyr/summarize()\343\200\201summarise()/index.html" @@ -0,0 +1,1600 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Summarize()、summarise() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Summarize()、summarise()

+ +

结果只保留分组列数据汇总统计的数据列

+

是 R 语言中 dplyr 包提供的一个函数,用于对数据框(data frame)中的列进行汇总统计操作,生成汇总结果。

+

summarize() 函数会返回一个新的数据框,其中包含汇总统计的结果。汇总结果的每个统计指标都作为新列存在,列名由用户指定。原始数据框不会被修改。

+
summarize(.data, new_column = expression, ...)
+
+

.data 表示要进行操作的数据框;

+

new_column 是要创建的新列的名称;

+

expression 是用于计算新列值的表达式; +除了基本的统计函数(例如 mean()max()min()),在 summarize() 函数中还可以使用其他各种函数来进行汇总统计,甚至进行更复杂的操作。用户可以根据需要自定义表达式来生成新的汇总列。 +1. sum(): 计算数值型变量的总和。 +2. mean(): 计算数值型变量的平均值。 +3. median(): 计算数值型变量的中位数。 +4. min(): 计算数值型变量的最小值。 +5. max(): 计算数值型变量的最大值。 +6. n() 或 n_distinct(): 计算分组后的观测数量或唯一值的数量。 +7. first(): 获取分组内的第一个观测值。 +8. last(): 获取分组内的最后一个观测值。 +9. sd(): 计算数值型变量的标准差。 +10. var(): 计算数值型变量的方差。 +11. quantile(): 计算数值型变量的分位数。 +12. summarise_all(): 对所有变量应用相同的聚合函数。 +13. summarise_at(): 对指定的变量应用聚合函数。

+

... 表示其他要进行汇总统计的列。

+
library(dplyr)
+
+# 准备数据
+data <- data.frame(
+  group = c("A", "A", "B", "B", "B"),
+  value = c(1, 2, 3, 4, 5)
+)
+
+# 对数据框进行聚合操作
+summary_data <- data %>% 
+  group_by(group) %>% 
+  summarise(mean_value = mean(value), 
+            max_value = max(value))
+
+# 查看聚合结果
+print(summary_data)
+
+

输出: +

# A tibble: 2 × 3
+  group mean_value max_value
+  <chr>      <dbl>     <dbl>
+1 A            1.5         2
+2 B            4           5
+

+

在上面的示例中,我们首先创建了一个数据框data,其中包含两列:groupvalue。然后,我们使用summarise()函数对数据框进行聚合操作。通过使用group_by()函数指定按照group列进行分组,然后使用summarise()函数指定需要计算的汇总函数和变量。在示例中,我们计算了value列在每个组中的平均值和最大值,并将结果存储在summary_data变量中。

+

在聚合结果中,group列表示组的标识,mean_value列表示每个组中value列的平均值,max_value列表示每个组中value列的最大值。

+

通过使用summarise()函数,您可以根据需要对数据框进行各种聚合操作,如计算平均值、总和、最大值、最小值等。您可以根据实际情况指定不同的汇总函数和变量来生成所需的摘要统计信息。

+

...具体参数扩展

+
    +
  1. +

    使用内置函数进行求和: +

    summarize(total_sales = sum(sales))
    +
    + 上述代码将计算数据框中sales列的总和,并创建一个名为total_sales的新列,其中包含结果。

    +
  2. +
  3. +

    使用多个汇总函数: +

    summarize(total_sales = sum(sales), average_price = mean(price), max_quantity = max(quantity))
    +
    + 上述代码将同时计算总销售额、平均价格和最大数量,并创建相应的新列。

    +
  4. +
  5. +

    使用条件函数进行计数: +

    summarize(high_sales = sum(ifelse(sales > 1000, 1, 0)))
    +
    + 上述代码将计算sales列中大于1000的销售记录数,并创建一个名为high_sales的新列。

    +
  6. +
  7. +

    使用自定义函数进行计算: +

    summarize(custom_stat = my_function(column1, column2))
    +
    + 上述代码使用自定义函数my_function()column1column2进行计算,并将结果存储在名为custom_stat的新列中。

    +
  8. +
  9. +

    通过分组进行汇总: +

    group_by(category) %>%
    +summarize(total_sales = sum(sales))
    +
    + 上述代码首先使用group_by()函数按category列分组数据,然后使用summarize()函数计算每个组的总销售额。

    +
  10. +
+

这些示例展示了summarize()函数中参数的用法。您可以根据需要组合使用内置函数、条件函数、自定义函数和分组来实现不同的汇总操作。

+

NA缺失值导致的问题

+

如果在summarize()函数中使用mean()函数计算列的平均值时,最终结果显示为NA,可能有以下几种原因: +R语言对缺失值的处理结果仍为缺失值! +1. 缺失值(NA)存在:如果在flights数据框中的dep_delay列中存在缺失值(NA),那么计算平均值时会忽略这些缺失值,并将结果设为NA。在这种情况下,您可以使用na.rm = TRUE参数来忽略缺失值进行计算,例如:mean(dep_delay, na.rm = TRUE)。 +2. 整列都是缺失值:如果dep_delay列中的所有值都是缺失值(NA),那么计算平均值时结果将是NA,因为没有可用的非缺失值进行计算。 +3. 数据类型不匹配:dep_delay列的数据类型可能不是数值型(numeric),而是字符型(character)或因子型(factor)。在这种情况下,无法计算平均值,并且结果将为NA。您可以使用as.numeric()函数将列转换为数值型:mean(as.numeric(dep_delay))

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/top_n()/index.html b/R/dplyr/top_n()/index.html new file mode 100644 index 00000000..db7c569b --- /dev/null +++ b/R/dplyr/top_n()/index.html @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Top n() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Top n()

+ +

在R语言中,top_n()函数用于按照特定变量的值,选择数据 +框(data frame)中前n个观测值。

+

函数定义: +

top_n(data, n, wt, ...)
+

+

参数: +以下是top_n()函数中常用的参数:

+
    +
  • +

    data:要选择观测值的数据框或数据集。

    +
  • +
  • +

    n:要选择的观测值的数量,可以是正整数。

    +
  • +
  • +

    wt:用于排序的权重变量,可以是变量名或表达式。

    +
  • +
  • +

    ...:其他可选参数,用于传递给底层的排序函数。

    +
  • +
+

返回值: +top_n()函数返回一个新的数据框,其中包含按照指定变量进行排序后的前n个观测值。

+

示例: +以下是使用top_n()函数选择数据框中前n个观测值的示例:

+
# 创建一个数据框
+df <- data.frame(Name = c("John", "Alice", "Bob", "David"),
+                 Age = c(25, 30, 35, 40))
+
+# 选择年龄最大的两个观测值
+top_2 <- top_n(df, n = 2, wt = Age)
+
+# 打印选择的观测值
+print(top_2)
+
+

在上述示例中,我们首先创建了一个数据框df,其中包含Name和Age两列。

+

然后,我们使用top_n()函数从数据框df中选择年龄最大的两个观测值。通过指定n = 2wt = Age参数,我们告诉函数选择Age列中最大的两个值。

+

最后,我们打印选择的观测值top_2,它是一个新的数据框,包含了按照年龄排序后的前两个观测值。

+

请注意,上述示例仅演示了基本用法,更多详细的参数和选项可以参考R语言的官方文档或使用?top_n命令查看函数的帮助文档。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/transmute()/index.html b/R/dplyr/transmute()/index.html new file mode 100644 index 00000000..666f85b5 --- /dev/null +++ b/R/dplyr/transmute()/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Transmute() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Transmute()

+ +

函数是dplyr包中的一个函数,用于对数据框进行变换和计算,并返回一个新的数据框,其中包含特定的变换结果列。 +

transmute(.data, ...)
+
+- .data: 要进行变换的数据框。 +- ...: 要进行的变换操作,可以是列的计算重命名或其他变换操作。 +1. 计算新列: + 假设有一个数据框data,其中包含col1col2两列,我们想要计算它们的和并生成一个新的列sum +
new_data <- transmute(data, sum = col1 + col2)
+
+ 上述代码将创建一个新的数据框new_data,其中包含了计算后的和存储在sum列中。 +2. 重命名: + 假设我们想要将数据框data中的col1列重命名为new_col: +
new_data <- transmute(data, new_col = col1)
+
+ 上述代码将创建一个新的数据框new_data,其中包含了重命名后的列new_col。 +3. 混合: + transmute()函数还可以进行多个变换操作,例如,计算平均值并将结果乘以2: +
new_data <- transmute(data, avg_col = mean(col1), doubled_avg = 2 * avg_col)
+

+

transmute()函数对于在数据框中进行变换和计算非常有用,可以根据需要生成新的列。请注意,transmute()函数将返回一个新的数据框,而不会修改原始数据框。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/tribble()/index.html b/R/dplyr/tribble()/index.html new file mode 100644 index 00000000..241e1df2 --- /dev/null +++ b/R/dplyr/tribble()/index.html @@ -0,0 +1,1511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Tribble() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Tribble()

+ +

在函数中,通过按列指定数据来创建数据框。以下是tribble()函数中参数的详细介绍和示例: +

tribble(
+  ~col1, ~col2,
+  "a"  , 2,
+  "b"  , 4,
+  "c"  , 6
+)
+
+- ~:列名和列数据之间的分隔符。它表示将列名和列数据关联起来。 +- 列名:在~col*指定的列名,用于标识数据框中的列。 +- 列数据:在~col*之后指定的列数据,用于填充数据框中的相应列。

+

下面是一个更详细的示例,展示了tribble()函数中参数的使用: +

library(dplyr)
+
+df <- tribble(
+  ~name,       ~age,    ~city,
+  "Alice",     25,      "New York",
+  "Bob",       30,      "Chicago",
+  "Charlie",   35,      "Los Angeles"
+)
+
+print(df)
+

+

输出: +

# A tibble: 3 x 3
+  name    age city       
+  <chr> <dbl> <chr>      
+1 Alice    25 New York   
+2 Bob      30 Chicago    
+3 Charlie  35 Los Angeles
+
+在上述示例中,我们创建了一个名为df的数据框。通过按列指定数据,我们定义了三个列:nameagecity。每个列名之前都有一个~符号,并且列数据与列名之间用逗号分隔。数据框中的每一行由逗号分隔。 +tribble()函数是一种方便的方法,特别适用于创建小规模的示例数据框。通过按列指定数据,我们可以轻松地定义数据框的结构和内容。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/ungroup()/index.html b/R/dplyr/ungroup()/index.html new file mode 100644 index 00000000..d3b22d8a --- /dev/null +++ b/R/dplyr/ungroup()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Ungroup() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Ungroup()

+ +

在R语言的dplyr包中,ungroup()函数用于取消对数据框或数据表进行的分组操作,将数据恢复为未分组的状态。 +函数定义: +

ungroup(.data, ...)
+
+参数: +- .data:要取消分组操作的数据框或数据表。 +- ...:其他参数。 +示例: +
library(dplyr)
+
+# 示例:取消分组操作
+df <- data.frame(
+  group = c("A", "A", "B", "B"),
+  value = c(1, 2, 3, 4)
+)
+
+# 对数据进行分组
+grouped_df <- df %>% group_by(group)
+
+# 取消分组操作
+ungrouped_df <- ungroup(grouped_df)
+
+# 打印取消分组后的数据
+print(ungrouped_df)
+

+

在示例中,我们首先加载dplyr包使用library(dplyr)。然后,我们创建了一个包含"group"和"value"两列的数据框df

+

接下来,我们使用group_by()函数对数据框df进行分组,并将结果赋值给grouped_df变量。

+

最后,我们使用ungroup()函数对grouped_df取消分组操作,并将结果赋值给ungrouped_df变量。

+

通过打印ungrouped_df,我们可以看到取消分组操作后的数据框,其中数据恢复为未分组的状态。

+

使用ungroup()函数可以方便地将已经分组的数据恢复为未分组的形式,适用于需要取消分组操作或者在处理数据时需要恢复原始数据结构的场景。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/dplyr/vars()/index.html b/R/dplyr/vars()/index.html new file mode 100644 index 00000000..8f442f7c --- /dev/null +++ b/R/dplyr/vars()/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Vars() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Vars()

+ +

1,将x/y轴数据根据指定字段内容进行分组,快速在多个图形中并行、并列展示,facet_grid(rows = vars(fields) )

+

在 R 语言的 dplyr 包中,vars() 函数用于指定一组变量。它通常与 select()group_by() 和其他基于变量操作的函数一起使用。下面是对 vars() 函数的参数进行详细介绍和举例: +函数语法: +

vars(...)
+
+# 或者使用管道操作符 %>%
+... %>% vars(...)
+
+参数说明: +- ...:一个或多个变量名,用于指定要选择或操作的变量。变量名可以是字符向量、整数向量、变量位置的范围(例如 1:3)或一个 vars() 对象。可以使用逗号将多个变量名分隔开。 +返回值: +函数返回一个 vars() 对象,用于传递给其他 dplyr 函数进行进一步的数据操作。 +示例: +下面是使用 vars() 函数指定变量的示例: +
library(dplyr)
+
+# 创建示例数据框
+df <- data.frame(
+  ID = c(1, 2, 3),
+  Name = c("Alice", "Bob", "Charlie"),
+  Age = c(25, 30, 35),
+  Salary = c(50000, 60000, 70000)
+)
+
+# 使用 vars() 选择变量
+selected_vars <- select(df, vars(Name, Age))
+print(selected_vars)
+

+
    Name  Age
+1   Alice  25
+2     Bob  30
+3 Charlie  35
+
+

在上述示例中,我们首先加载了 dplyr 包,并创建了一个示例数据框 df,包含一些列(例如 ID、Name、Age、Salary)。然后,我们使用 vars() 函数将要选择的变量名作为参数传递给 select() 函数,从而选择了 NameAge 两列。最后,我们打印出选择的结果 selected_vars。 +通过使用 vars() 函数,我们可以方便地指定要选择或操作的变量,无论是选择特定列还是按照一定规则进行选择。该函数在 dplyr 包中的许多函数中都有广泛的应用,例如 select()group_by()mutate() 等。查阅官方文档或使用 ?vars 命令可以获取更多关于 vars() 函数参数的详细信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/aes()/index.html b/R/ggplot2/aes()/index.html new file mode 100644 index 00000000..e489dea6 --- /dev/null +++ b/R/ggplot2/aes()/index.html @@ -0,0 +1,1610 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Aes() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Aes()

+ +

aesthetic用于定义数据变量与图形的映射关系。它用于将数据的变量与图形的视觉属性之间建立对应关系,例如将数据的某一列映射到 x 轴位置、将另一列映射到 y 轴位置、将第三列映射到颜色等。

+

通过在 ggplot() 函数中使用 aes() 函数来定义映射关系,可以将数据的不同变量与图形的不同视觉属性关联起来。这样,在后续的绘图过程中,可以直接使用这些映射关系,使得图形能够根据数据的变化而自动调整属性,展示出更丰富的信息。

+
aes(x = NULL, y = NULL, ..., color = NULL, fill = NULL, shape = NULL, size = NULL, alpha = NULL)
+
+
    +
  • +

    xy:指定数据变量与 x 轴和 y 轴的映射关系。可以是数据框中的列名、向量、公式等。

    +
  • +
  • +

    ...:其他映射关系。

    +
  • +
+

都可以按照另一个变量分组映射,但必须另一个变量是字符型

+

Pasted image 20231024195533

+
    +
  • +

    color:指定数据变量与图形的颜色映射关系,(如"red"、"blue"),也可以使用十六进制颜色码(如"#FF0000"表示红色)。另一个变量可以是数值

    +
  • +
  • +

    fill:指定数据变量与图形的填充颜色映射关系,。

    +
  • +
  • +

    shape:指定数据变量与图形的形状映射关系。控制点的形状,如圆形、方形、三角形等。

    +
  • +
  • +

    size:指定数据变量与图形的大小映射关系,控制图形元素的大小,如点的大小或线的粗细。

    +
  • +
  • +

    stroke:指定边框颜色的数据变量或常量值。适用于具有边框的图形,如点的边框颜色。

    +
  • +
  • +

    width:指定宽度的数据变量或常量值。用于调整线的宽度。

    +
  • +
  • +

    alpha:指定透明度(alpha)的数据变量或常量值。取值范围为0(完全透明)到1(完全不透明)之间。

    +
  • +
  • +

    linetype:指定线型的数据变量或常量值。控制线条的类型,如实线、虚线、点线等。

    +
  • +
  • +

    group:指定分组的数据变量。用于在绘制多个图形时将数据分组,并为每个组分配不同的图形属性。

    +
  • +
  • +

    label:指定标签的数据变量。用于在图形中显示文本标签,如散点图中的数据标签。

    +
  • +
+
library(ggplot2)
+
+# 示例数据集
+df <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))
+
+# 创建绘图对象,定义映射关系
+p <- ggplot(data = df, mapping = aes(x = x, y = y))
+
+

在上述示例中,我们首先创建了一个数据集 df,包含两列(x 和 y)。然后,使用 ggplot() 函数创建了一个基本的绘图对象 p,并在 mapping 参数中使用 aes() 函数定义了 x 和 y 列与图形的映射关系。

+

在进一步的绘图过程中,可以使用其他函数(如 geom_*())来添加具体的几何对象,并利用之前定义的映射关系自动映射数据的变量到对应的图形属性。例如:

+
# 添加点图层
+p + geom_point()
+
+

这将在绘图对象 p 的基础上添加一个点图层,其中 x 和 y 列的数据将自动映射到点的位置。 +通过 aes() 函数的灵活使用,可以根据需要将更多的数据变量与图形的视觉属性进行映射,以实现更多样化、富有信息的数据可视化。

+

关于ggplot()中说明aes(x = A, y = B)和在geom_point()说明aes(x = A, y = B)有什么区别?

+

全局映射关系和局部映射关系。没有局部映射以全局映射为准,有局部映射,参考局部映射,缺少得内容参考全局映射!

+

library(ggplot2)
+# 创建一个数据框
+df <- data.frame(A = c(1, 2, 3, 4, 5),
+                 B = c(2, 4, 1, 8, 10))
+# 创建散点图
+ggplot(data = df, aes(x = A, y = B)) +
+  geom_smooth() +
+  geom_line(aes(x = -A, y = B ,color="pink")) +
+  geom_point(aes(x = A, y = B ,color="blue")) +
+  geom_line() +
+  geom_smooth(aes(x = -A))
+
+Pasted image 20231005115603

+

线图层与散点图层的映射关系不受全局映射关系的影响,我们在geom_line()函数中重新定义了局部映射关系。 +这样,通过ggplot()函数和geom_line()函数的不同aes()定义,我们可以在同一个图形中同时显示散点图和线图,并为它们指定不同的映射关系和颜色。

+

为什么在aes()函数中定义的color显示得有些不对?

+

在您的代码中,color参数在aes()函数中被设置为字符常量,即color = "black"color = "pink"。这样做会导致color被视为固定的常量,而不是映射到具体的数据变量。

+

要正确使用aes()函数中的color参数,应将它与实际的数据变量相关联,以便根据数据的不同值来确定颜色。在您的示例中,我将修正代码以正确映射颜色值:

+
library(ggplot2)
+
+# 创建一个数据框
+df <- data.frame(A = c(1, 2, 3, 4, 5),
+                 B = c(2, 4, 6, 8, 10),
+                 C = c(22, 24, 26, 28, 30))
+
+# 创建散点图和线图
+ggplot(data = df) +
+  geom_point(aes(x = A, y = B), color = "black") +
+  geom_line(aes(x = A, y = C), color = "pink")
+
+

在修正后的代码中,我们将color参数直接放在geom_point()geom_line()函数中,并将其设置为字符常量,如color = "black"color = "pink"。这样,color参数被视为静态的颜色值,所有的散点和线都会被渲染为相应的颜色。

+

如果您希望根据数据变量的不同值来确定颜色,可以将color参数与实际的数据变量相关联,如color = variable。在这种情况下,您可以使用scale_color_manual()函数来手动指定颜色映射关系。以下是一个示例: +

ggplot(data = df) +
+  geom_point(aes(x = A, y = B, color = "Variable 1")) +
+  geom_line(aes(x = A, y = C, color = "Variable 2")) +
+  scale_color_manual(values = c("Variable 1" = "black", "Variable 2" = "pink"))
+

+

在上述示例中,color参数与字符串变量相关联,如color = "Variable 1"color = "Variable 2"。然后,使用scale_color_manual()函数手动指定了这些变量的颜色映射关系,分别为黑色和粉色。这样,散点和线将根据数据变量的不同值显示相应的颜色。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/attachments/43ddad84b875fa36d68452c27dfbefc.png b/R/ggplot2/attachments/43ddad84b875fa36d68452c27dfbefc.png new file mode 100644 index 00000000..1f10a043 Binary files /dev/null and b/R/ggplot2/attachments/43ddad84b875fa36d68452c27dfbefc.png differ diff --git a/R/ggplot2/attachments/Pasted image 20230916150509.png b/R/ggplot2/attachments/Pasted image 20230916150509.png new file mode 100644 index 00000000..d8321791 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20230916150509.png differ diff --git a/R/ggplot2/attachments/Pasted image 20230918200509.png b/R/ggplot2/attachments/Pasted image 20230918200509.png new file mode 100644 index 00000000..c1230bbb Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20230918200509.png differ diff --git a/R/ggplot2/attachments/Pasted image 20230918200713.png b/R/ggplot2/attachments/Pasted image 20230918200713.png new file mode 100644 index 00000000..f2926d1f Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20230918200713.png differ diff --git a/R/ggplot2/attachments/Pasted image 20230923161216.png b/R/ggplot2/attachments/Pasted image 20230923161216.png new file mode 100644 index 00000000..f402cdda Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20230923161216.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231005110243.png b/R/ggplot2/attachments/Pasted image 20231005110243.png new file mode 100644 index 00000000..0131e36f Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231005110243.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231005115603.png b/R/ggplot2/attachments/Pasted image 20231005115603.png new file mode 100644 index 00000000..775785f7 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231005115603.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231005164810.png b/R/ggplot2/attachments/Pasted image 20231005164810.png new file mode 100644 index 00000000..b42f1e88 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231005164810.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231006092816.png b/R/ggplot2/attachments/Pasted image 20231006092816.png new file mode 100644 index 00000000..5ef80d14 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231006092816.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231018163031.png b/R/ggplot2/attachments/Pasted image 20231018163031.png new file mode 100644 index 00000000..c5100efd Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231018163031.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231018185244.png b/R/ggplot2/attachments/Pasted image 20231018185244.png new file mode 100644 index 00000000..f0b84896 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231018185244.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231024195533.png b/R/ggplot2/attachments/Pasted image 20231024195533.png new file mode 100644 index 00000000..9a7b5f3f Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231024195533.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231108201222.png b/R/ggplot2/attachments/Pasted image 20231108201222.png new file mode 100644 index 00000000..f411feeb Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231108201222.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231108224752.png b/R/ggplot2/attachments/Pasted image 20231108224752.png new file mode 100644 index 00000000..8fe01c7b Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231108224752.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231122203026.png b/R/ggplot2/attachments/Pasted image 20231122203026.png new file mode 100644 index 00000000..6cbe102e Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231122203026.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231226165543.png b/R/ggplot2/attachments/Pasted image 20231226165543.png new file mode 100644 index 00000000..7ec2b9ac Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231226165543.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231226170320.png b/R/ggplot2/attachments/Pasted image 20231226170320.png new file mode 100644 index 00000000..0568e1a4 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231226170320.png differ diff --git a/R/ggplot2/attachments/Pasted image 20231227093246.png b/R/ggplot2/attachments/Pasted image 20231227093246.png new file mode 100644 index 00000000..1f15b7e0 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20231227093246.png differ diff --git a/R/ggplot2/attachments/Pasted image 20240108084503.png b/R/ggplot2/attachments/Pasted image 20240108084503.png new file mode 100644 index 00000000..66fb1bd9 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20240108084503.png differ diff --git a/R/ggplot2/attachments/Pasted image 20240108092809.png b/R/ggplot2/attachments/Pasted image 20240108092809.png new file mode 100644 index 00000000..28708598 Binary files /dev/null and b/R/ggplot2/attachments/Pasted image 20240108092809.png differ diff --git "a/R/ggplot2/color\350\257\246\346\203\205/index.html" "b/R/ggplot2/color\350\257\246\346\203\205/index.html" new file mode 100644 index 00000000..cada3b7d --- /dev/null +++ "b/R/ggplot2/color\350\257\246\346\203\205/index.html" @@ -0,0 +1,1536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Color详情 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Color详情

+ +

ggplot2 包中提供了一些预定义的颜色,可以通过名称直接使用。以下是一些常见的颜色名称:

+
    +
  1. 基本颜色:
  2. +
  3. "black": 黑色
  4. +
  5. "red": 红色
  6. +
  7. "green": 绿色
  8. +
  9. "blue": 蓝色
  10. +
  11. "purple": 紫色
  12. +
  13. "orange": 橙色
  14. +
  15. "pink": 粉色
  16. +
  17. "brown": 棕色
  18. +
  19. +

    "gray": 灰色

    +
  20. +
  21. +

    灰度颜色:

    +
  22. +
  23. +

    "grey20", "grey40", ..., "grey90": 不同灰度的颜色,数字表示灰度的百分比。

    +
  24. +
  25. +

    十六进制颜色:

    +
  26. +
  27. +

    可以使用十六进制表示的颜色,例如 "#FF0000" 表示红色,"#00FF00" 表示绿色。

    +
  28. +
  29. +

    颜色名称:

    +
  30. +
  31. +

    "skyblue", "seagreen", "firebrick", 等等。这些是一些常见颜色的名称。

    +
  32. +
  33. +

    调色板:

    +
  34. +
  35. +

    scale_fill_brewer(), scale_color_brewer(): 使用调色板,如"Blues""Greens"等。

    +
  36. +
  37. +

    其他颜色函数:

    +
  38. +
  39. scale_fill_manual(), scale_color_manual(): 使用自定义颜色,可以传递一个颜色向量。
  40. +
+

以下是一个示例,展示如何在ggplot2中使用颜色:

+
library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  x = c(1, 2, 3, 4),
+  y = c(10, 15, 13, 8)
+)
+
+# 使用 ggplot2 创建散点图,并指定颜色为红色
+ggplot(data, aes(x, y)) +
+  geom_point(color = "red") +
+  labs(title = "Scatter Plot", x = "X-axis", y = "Y-axis")
+
+

在上述代码中,color = "red" 指定了散点的颜色为红色。你可以根据需要替换为其他颜色名称或十六进制表示。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/coord_cartesian()/index.html b/R/ggplot2/coord_cartesian()/index.html new file mode 100644 index 00000000..bdaa2dd0 --- /dev/null +++ b/R/ggplot2/coord_cartesian()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Coord cartesian() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Coord cartesian()

+ +

coord_cartesian() 函数是 ggplot2 包中用于设置坐标系范围的函数。它可以用来限制绘图的可视化范围,而不改变数据的实际范围。 +

coord_cartesian(xlim = NULL, ylim = NULL, xlim_expand = c(0, 0), ylim_expand = c(0, 0))
+

+

参数说明: +- xlim: 用于设置 x 轴的可视化范围,输入一个长度为2的向量,包含最小值和最大值。默认为 NULL,表示不对 x 轴范围进行限制。 +- ylim: 用于设置 y 轴的可视化范围,输入一个长度为2的向量,包含最小值和最大值。默认为 NULL,表示不对 y 轴范围进行限制。 +- xlim_expand: 用于设置坐标轴范围的扩展。默认情况下,坐标系会自动扩展一定比例的空间,以确保数据点不会紧贴边界。可以使用 xlim_expand 设置为 c(0, 0) 来禁用这种扩展。 +- ylim_expand: 用于设置坐标轴范围的扩展。默认情况下,坐标系会自动扩展一定比例的空间,以确保数据点不会紧贴边界。可以使用 ylim_expand 设置为 c(0, 0) 来禁用这种扩展。 +示例: +

library(ggplot2)
+
+# 示例数据框
+df <- data.frame(x = 1:10, y = 1:10)
+
+# 绘制散点图
+ggplot(df, aes(x, y)) +
+  geom_point() +
+  coord_cartesian(xlim = c(2, 8), ylim = c(3, 9))
+

+

在上述示例中,我们创建了一个数据框 df,其中包含两个变量 x 和 y,分别取值为 1 到 10。我们使用 ggplot() 创建一个绘图对象,并使用 aes() 函数指定 x 和 y 作为散点图的 x 轴和 y 轴变量。

+

然后,我们使用 geom_point() 绘制散点图。在 coord_cartesian() 函数中,我们使用 xlim 参数将 x 轴的可视化范围限制为 2 到 8,使用 ylim 参数将 y 轴的可视化范围限制为 3 到 9。这样,绘图将只显示指定范围内的数据点,而不改变数据的实际范围。

+

这是一个简单的示例,可以根据实际需求调整 coord_cartesian() 函数的参数来控制绘图的坐标系范围。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/coord_flip()/index.html b/R/ggplot2/coord_flip()/index.html new file mode 100644 index 00000000..52fea15a --- /dev/null +++ b/R/ggplot2/coord_flip()/index.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Coord flip() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Coord flip()

+ +

coord_flip() 是 ggplot2 包中的一个函数,用于在绘制图表时翻转 x 和 y 轴的方向。它可以在散点图、条形图、箱线图等图形中改变坐标轴的方向,使得原本在 x 轴上的数据显示在 y 轴上,而原本在 y 轴上的数据显示在 x 轴上。

+

coord_flip() 函数不接受任何参数,它只是简单地翻转 x 和 y 轴的方向。下面是一个示例,演示如何使用 coord_flip() 函数:

+
library(ggplot2)
+
+# 创建示例数据集
+data <- data.frame(
+  Category = c("A", "B", "C", "D"),
+  Value = c(10, 20, 15, 12)
+)
+
+# 绘制垂直条形图
+p <- ggplot(data, aes(x = Category, y = Value)) +
+  geom_bar(stat = "identity")
+
+# 使用 coord_flip() 翻转坐标轴方向
+p_flipped <- p + coord_flip()
+
+# 显示图形
+print(p_flipped)
+
+

在上述示例中,我们首先创建了一个包含分类变量和数值变量的数据框 data。然后,使用 ggplot() 函数创建了一个基础图表对象 p,其中 x 轴映射到 Category 变量,y 轴映射到 Value 变量,并使用 geom_bar() 函数绘制了垂直条形图。

+

接着,通过在基础图表对象 p 上添加 coord_flip() 函数,我们创建了一个新的图表对象 p_flipped,该对象使用 coord_flip() 翻转了坐标轴的方向。

+

最后,通过 print(p_flipped) 将翻转后的图表显示出来。现在,原本在 x 轴上的分类变量显示在 y 轴上,而原本在 y 轴上的数值变量显示在 x 轴上。

+

请注意,coord_flip() 函数通常与其他图形函数(如 geom_bar()geom_boxplot() 等)一起使用,以在绘图时翻转坐标轴的方向。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/coord_polar()/index.html b/R/ggplot2/coord_polar()/index.html new file mode 100644 index 00000000..9f8c40a0 --- /dev/null +++ b/R/ggplot2/coord_polar()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Coord polar() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Coord polar()

+ +

coord_polar() 是 ggplot2 包中的一个函数,用于在绘制图表时将坐标系转换为极坐标系。它可以用于创建极坐标下的饼图、雷达图等图形。 +函数定义: +

coord_polar(theta = "x", start = 0, direction = 1, clip = "on")
+

+

参数说明: +- theta: 指定极坐标系中的角度变量,默认值为 "x",即使用 x 轴的变量作为角度。可以设置为其他变量名或表达式,如 theta = "y"。如果设置为常量值,将创建一个平均角度的饼图。 +- start: 角度起始值,默认为 0(水平方向)。可以设置其他角度值,如 start = pi/2(垂直方向)。 +- direction: 角度增长方向,取值为 1(顺时针)或 -1(逆时针),默认为 1。 +- clip: 控制图形是否被裁剪,默认为 "on",表示裁剪图形超出绘图区域的部分。可以设置为 "off",以显示超出绘图区域的完整图形。

+

下面是一个使用 coord_polar() 函数创建极坐标图的示例: +

library(ggplot2)
+
+# 创建示例数据集
+data <- data.frame(
+  Category = c("A", "B", "C", "D"),
+  Value = c(10, 20, 15, 12)
+)
+
+# 绘制饼图
+p <- ggplot(data, aes(x = "", y = Value, fill = Category)) +
+  geom_bar(stat = "identity") +
+  coord_polar(theta = "y")
+
+# 显示图形
+print(p)
+

+

在上述示例中,我们首先创建了一个包含分类变量和数值变量的数据框 data。然后,使用 ggplot() 函数创建了一个基础图表对象 p,其中 x 轴映射为空字符串,y 轴映射到 Value 变量,并使用 geom_bar() 函数绘制了饼图。注意,这里的 fill 参数用于指定饼图的扇区填充颜色。

+

接着,通过在基础图表对象 p 上添加 coord_polar(theta = "y"),我们创建了一个新的图表对象 p,该对象使用 coord_polar() 将坐标系转换为极坐标系,其中 theta 参数设置为 "y",表示使用 y 轴的变量作为角度。

+

最后,通过 print(p) 将极坐标饼图显示出来。

+

请注意,coord_polar() 函数通常与其他图形函数(如 geom_bar()geom_point() 等)一起使用,以在极坐标下绘制具体的图形。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/facet_()/index.html b/R/ggplot2/facet_()/index.html new file mode 100644 index 00000000..dcde2869 --- /dev/null +++ b/R/ggplot2/facet_()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Facet () - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Facet ()

+ +

函数是 ggplot2 包中用于创建分面图(Facet Plot)的函数。分面图可以将数据集按照一个或多个变量进行拆分,并在每个子图中显示对应的数据子集。这种可视化方式可以方便地比较不同子集之间的差异,同时保留整体数据的上下文。

+

facet_*() 函数的具体名称取决于你想要创建的分面图的类型,如 facet_wrap()facet_grid() 等。

+

以下是一些常用的 facet_*() 函数及其功能:

+
    +
  • facet_wrap(): 根据一个或多个变量创建网格分面图。它以变量的组合为基础,在每个子图中显示对应的数据子集。
  • +
+

示例: +

# 使用"Species"变量创建网格分面图
+facet_wrap(~ Species)
+

+
    +
  • facet_grid(): 根据两个变量创建网格分面图。它以两个变量的组合为基础,在每个子图中显示对应的数据子集。
  • +
+

示例: +

# 使用"Species"和"Sex"变量创建网格分面图
+facet_grid(Species ~ Sex)
+

+
    +
  • +

    facet_grid() 还可以使用 . 来表示"所有变量",例如 facet_grid(. ~ Species) 表示根据所有变量与"Species"变量的组合创建网格分面图。

    +
  • +
  • +

    其他特定的 facet_*() 函数,如 facet_wrap_paginate()facet_nested() 等,用于特定的分面图需求。

    +
  • +
+

通过使用适当的 facet_*() 函数,可以根据变量的组合创建分面图,并在每个子图中展示对应的数据子集。可以根据数据集的特征和分析目的,选择合适的分面图类型和变量设置。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/facet_grid()/index.html b/R/ggplot2/facet_grid()/index.html new file mode 100644 index 00000000..a4218e21 --- /dev/null +++ b/R/ggplot2/facet_grid()/index.html @@ -0,0 +1,1567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Facet grid() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Facet grid()

+ +

在R语言中,ggplot2包中的facet_grid()函数用于将数据按照指定的变量在网格中分组,并在每个小面板中绘制对应的图形。

+

函数定义: +

facet_grid(rows = NULL, cols = NULL, scales = "fixed", space = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, switch = NULL, drop = TRUE, margins = FALSE, drop.unused.levels = TRUE)
+

+

参数: +- rows:用于在行方向上分组的变量名或公式。

+
    +
  • cols:用于在列方向上分组的变量名或公式。
  • +
+

rows = vars(column) +cols = vars(column) +vars()根据指定字段中数据的类别进行分组!

+
    +
  • +

    scales刻度的类型,约束在同一尺度上方便比较。默认为"fixed",表示每个子图具有独立的坐标轴;如果设置为"free",则子图之间的坐标轴可以不同

    +
  • +
  • +

    space:表示子图之间的间距。默认为"fixed",表示子图之间的间距固定;如果设置为"free",则子图之间的间距可以不同。

    +
  • +
  • +

    shrink:表示是否根据子图的相对大小自动调整每个子图的大小。默认为TRUE

    +
  • +
  • +

    labeller:控制小面板标签的显示方式,可以是字符向量、函数或标签规范。

    +
  • +
  • +

    as.table:布尔值,指示是否以表格形式排列小面板。

    +
  • +
  • +

    switch:在行和列之间切换变量的顺序。

    +
  • +
  • +

    drop:布尔值,指示是否删除没有数据的小面板。

    +
  • +
  • +

    margins:布尔值,指示是否添加边际小面板。

    +
  • +
  • +

    drop.unused.levels:布尔值,指示是否删除未使用的水平。

    +
  • +
+
library(ggplot2)
+
+# 创建数据集
+data <- data.frame(
+  x = rep(1:4, 3),
+  y = rep(c("A", "B", "C"), each = 4),
+  value = rnorm(12)
+)
+
+# 创建基本图形
+p <- ggplot(data, aes(x, value)) +
+  geom_point() +
+  labs(title = "My Plot", x = "X", y = "Value")
+
+# 根据y变量分组并绘制网格图,或者第三个变量z
+p + facet_grid(rows = vars(y)) 
+
+

Pasted image 20231005164810

+

在上述示例中,我们首先加载ggplot2包,并创建了一个简单的数据集 data,包含了x和y的值以及一个随机生成的值。

+

然后,我们使用ggplot()函数创建了一个基本图形 p,并使用geom_point()添加了散点图。

+

接下来,我们使用labs()函数设置图形的标题和轴标签。

+

最后,我们调用facet_grid()函数来进行数据分组并绘制网格图。在facet_grid()函数中,我们使用了rows参数来指定按照y变量在行方向上进行分组。这将为每个独特的y值创建一个小面板,并在每个小面板中绘制对应的图形。

+

facet_grid(vars(drv), vars(cyl))

+

行、纵一起分

+

Pasted image 20240108084503

+

相关于按照多个变量进行分组,但对某个变量分组后没有对应数值,所以为空,没有散点

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/facet_wrap()/index.html b/R/ggplot2/facet_wrap()/index.html new file mode 100644 index 00000000..02905f80 --- /dev/null +++ b/R/ggplot2/facet_wrap()/index.html @@ -0,0 +1,1562 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Facet wrap() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Facet wrap()

+ +

是ggplot2包中的一个函数,用于将数据分割成多个小图,并根据某个变量的水平值创建多个子图。它可用于将数据按照某个因子变量进行分组,并在每个子图中绘制相应的图形。

+

有空研究下 +R语言ggplot笔记(三):基础语法篇(下) - 柚子啊柚子的文章 - 知乎 +https://zhuanlan.zhihu.com/p/101877243

+

如何使用 ggplot2 ? - 心理统计联盟的回答 - 知乎 +https://www.zhihu.com/question/24779017/answer/3188530425

+
facet_wrap(facets, nrow = NULL, ncol = NULL, scales = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, switch = NULL, dir = "h", strip.position = "top")
+
+
    +
  • +

    facets

    +

    vars():vars(z1, z2)

    +

    ~ variable:~ z1 + z2,经典表达式。表示用于分组的因子变量z。它可以是单个变量,也可以是多个变量的组合。

    +

    c(z1, z2):也可用向量的形式

    +
  • +
  • +

    nrow:子图显示的行数。根据固定行数分布子图

    +
  • +
  • +

    ncol:子图显示的列数。根据固定列数分布子图

    +
  • +
+

同时指定子图的行、列不可靠!

+
    +
  • +

    scales:表示是否在子图之间共享坐标轴。默认为"fixed",表示每个子图具有独立的坐标轴;如果设置为"free",则子图之间的坐标轴可以不同

    +
  • +
  • +

    shrink:表示是否根据子图的相对大小自动调整每个子图的大小。默认为TRUE

    +
  • +
  • +

    labeller:用于设置子图标签的标签器。默认为"label_value",表示使用因子变量的值作为标签。

    +
  • +
  • +

    as.table:表示是否将子图按照表格方式排列。默认为TRUE,表示按照表格方式排列。

    +
  • +
  • switch:表示是否在子图之间进行交换以获得更好的布局。默认为NULL,表示不进行交换。
  • +
  • dir:表示子图的排列方向。可以是"h"(水平)或"v"(垂直)。默认为"h"。
  • +
  • strip.position:表示子图标签(strip)的位置。可以是"top"、"bottom"、"left"或"right"。默认为"top"。
  • +
+

下面是一个示例,演示如何使用facet_wrap()函数创建分组的子图: +

library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c(2, 4, 6, 8, 10),
+  group = c("A", "A", "B", "B", "C")
+)
+
+# 创建散点图,并使用facet_wrap()进行分组
+ggplot(data, aes(x = x, y = y)) +
+  geom_point() +
+  facet_wrap(~ group, nrow = 2)
+
+在这个示例中,我们创建了一个数据框data,其中包含了x和y坐标的值,以及一个分组变量group。然后,使用ggplot()函数创建一个基本的绘图对象,并使用geom_point()函数添加散点图。使用facet_wrap()函数将数据按照group变量进行分组,并在每个子图中绘制相应的图形。

+

在输出图中,数据被分为三个子图,每个子图对应一个不同的group值。通过nrow参数,我们设置每行显示两个子图。

+

多因子

+
g + facet_wrap(~ year + season, nrow = 4, scales = "free_x")
+# free_x是指x轴的量尺可以自由变化,而y轴保持不变
+
+

Pasted image 20240108092809

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_()/index.html b/R/ggplot2/geom_()/index.html new file mode 100644 index 00000000..be1d40e0 --- /dev/null +++ b/R/ggplot2/geom_()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom () - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom ()

+ +

函数是 ggplot2 包中的一组函数,用于在绘图对象上添加具体的几何对象,如点、线、条形、面积等。这些函数用于定义图形的几何形状和外观属性,通过将它们与 ggplot() 函数和 aes() 函数结合使用,可以创建各种类型的图形。 +

geom_*()
+
+geom_*() 函数的命名规则是以 "geom_" 开头,后面跟着具体的几何对象类型,如 geom_point()geom_line()geom_bar()geom_area() 等。每个函数都有自己特定的参数,用于控制几何对象的外观、位置和样式等。

+

以下是一些常用的 geom_*() 函数及其功能: +- geom_point(): 添加散点图,用点表示数据的位置。 +- geom_line(): 添加折线图,用线条连接数据点。 +- geom_bar(): 添加条形图,用矩形条表示数据的大小。 +- geom_area(): 添加面积图,用填充区域表示数据的变化。 +- geom_histogram(): 添加直方图,用矩形条表示数据的分布。 +- geom_boxplot(): 添加箱线图,用箱体和线条表示数据的分布和离群点。 +- geom_text(): 添加文本标签,用于在图形上显示文字信息。 +- geom_smooth(): 添加平滑曲线,用于拟合数据的趋势。 +- geom_ribbon(): 添加带状图,用于显示区间估计或置信区间。 +这些函数可以根据不同的需求和数据类型,选择适当的几何对象来展示数据。在函数调用中,可以通过参数来控制几何对象的外观和样式,如颜色、线型、点形状、填充颜色等。

+

以下是一个简单的示例,演示如何使用 geom_*() 函数在绘图对象上添加几何对象: +

library(ggplot2)
+
+# 示例数据集
+df <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))
+
+# 创建绘图对象,定义映射关系
+p <- ggplot(data = df, mapping = aes(x = x, y = y))
+
+# 添加点图层
+p + geom_point()
+

+

在上述示例中,我们首先创建了一个数据集 df,包含两列(x 和 y)。然后,使用 ggplot() 函数创建了一个基本的绘图对象 p,并在 mapping 参数中使用 aes() 函数定义了 x 和 y 列与图形的映射关系。最后,通过 + 运算符和 geom_point() 函数,在绘图对象 p 的基础上添加了一个点图层,将数据的 x 和 y 列的值映射到点的位置。

+

通过结合不同的 geom_*() 函数,可以在同一个绘图对象上添加多个几何对象,以展示更复杂的图形,并根据需要进行样式和属性的调整,以实现所需的数据可视化效果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_bar()/index.html b/R/ggplot2/geom_bar()/index.html new file mode 100644 index 00000000..37d3dbbc --- /dev/null +++ b/R/ggplot2/geom_bar()/index.html @@ -0,0 +1,1632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom bar() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + + + + + + +

Geom bar()

+ +

在ggplot2中,函数用于创建柱状图。它可以用于显示不同类别或分组的频数、计数或其他统计指标的比较。数据间有间隙 +

geom_bar(
+  mapping = NULL,
+  data = NULL,
+  stat = "count",
+  position = "stack",
+  ...,
+  width = NULL,
+  fill = NA,
+  color = NA,
+  alpha = NA,
+  ...)
+

+

参数说明:

+
    +
  • +

    mapping: 用于定义数据变量与图形属性的映射关系,例如x轴、y轴、颜色等。

    +
  • +
  • +

    data: 数据框,包含要绘制的变量。

    +
  • +
  • +

    stat: 统计变量的计算方法,常用的有"count"(计数)和"identity"(直接使用原始值,使用变量的实际值作为柱状图的高度。 +stat = "identity"

    +
  • +
  • +

    position: 柱状图的摆放方式,常用的有"stack"(默认,堆叠)、"dodge"(并列,对x轴进行分组)和"fill"(填充)。

    +
  • +
  • +

    width: 柱状图的宽度,可以是一个常量值或一个表示宽度的表达式。

    +
  • +
  • +

    fill: 柱状图的填充颜色

    +
  • +
  • +

    color: 柱状图的边框颜色

    +
  • +
  • +

    alpha: 柱状图的透明度

    +
  • +
+

以下是一个示例,展示如何使用geom_bar()函数创建柱状图:

+

library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  category = c("A", "B", "C", "A", "B", "C"),
+  value = c(10, 15, 8, 12, 9, 6)
+)
+
+# 创建柱状图
+ggplot(data, aes(x = category, y = value)) +
+  geom_bar(stat = "identity", fill = "blue", color = "black")
+
+Pasted image 20230918200713 +在这个示例中,我们创建了一个数据框data,其中包含了一个类别变量category和一个数值变量value。然后,使用ggplot()函数创建一个基本的绘图对象,并使用geom_bar()函数添加柱状图。在aes()函数中,我们将x轴映射到数据变量category,y轴映射到数据变量value。通过设置stat参数为"identity",我们直接使用value变量的原始值。通过设置fill参数为"blue"和color参数为"black",我们为柱状图指定了填充颜色和边框颜色。

+

这个示例将创建一个简单的柱状图,其中x轴表示类别,y轴表示数值。每个类别对应一个柱子,其高度表示对应的数值大小。

+

希望这个示例能帮助您理解geom_bar()函数的基本用法。如果您有任何其他问题,请随时提问。

+

position参数

+

在ggplot2的geom_bar()函数中,position参数用于控制柱状图的摆放方式。该参数接受以下几个常用的取值:

+
    +
  • "stack":默认值,表示将柱状图堆叠在一起,每个类别的柱状图叠加在前一个类别的柱状图上方。
  • +
  • "dodge":将不同类别的柱状图并列显示,柱状图之间不重叠。
  • +
  • "fill":将不同类别的柱状图堆叠在一起,但每个柱状图的高度归一化为1,形成堆叠的百分比图。
  • +
  • "identity":在x轴上根据数据的实际值进行对齐,不进行摆放调整。
  • +
+

以下是一个示例,展示了如何在geom_bar()中使用不同的position参数取值:

+
library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  category = c("A", "B", "C"),
+  value = c(10, 15, 8)
+)
+
+# 创建柱状图,并使用不同的position参数取值
+ggplot(data, aes(x = category, y = value)) +
+  geom_bar(position = "stack", fill = "blue", color = "black") +
+  geom_bar(position = "dodge", fill = "red", color = "black") +
+  geom_bar(position = "fill", fill = "green", color = "black") +
+  geom_bar(position = "identity", fill = "orange", color = "black")
+
+

在这个示例中,我们创建了一个数据框data,其中包含了一个类别变量category和一个数值变量value。然后,使用ggplot()函数创建一个基本的绘图对象,并使用geom_bar()函数添加柱状图。在每个geom_bar()函数中,我们设置不同的position参数取值,并为每个柱状图指定了不同的填充颜色和边框颜色。

+

运行这段代码会生成一个包含了四个柱状图的图形。每个柱状图都使用相同的数据,但根据不同的position参数取值,柱状图的摆放方式和显示效果会有所不同。您可以通过观察图中柱状图的叠加、并列、百分比堆叠以及与x轴的对齐来更好地理解每个position参数取值的效果。

+

希望这个示例能够帮助您理解在geom_bar()中使用不同的position参数取值的含义和效果。如果您有任何其他问题,请随时提问。

+

reorder()

+

根据频数实现从大到小或从小到大的排布

+

coord_flip() 实现x、y轴互换

+
coord_flip() 
+
+

调整柱间距

+

有时间研究下!

+

R可视化——ggplot2调整柱状图柱子宽度及间距 - 科研那点事儿的文章 - 知乎 https://zhuanlan.zhihu.com/p/548155437

+

在组上加文本

+

用到geom_text()函数 +43ddad84b875fa36d68452c27dfbefc

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_boxplot()/index.html b/R/ggplot2/geom_boxplot()/index.html new file mode 100644 index 00000000..04bcba15 --- /dev/null +++ b/R/ggplot2/geom_boxplot()/index.html @@ -0,0 +1,1555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom boxplot() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom boxplot()

+ +

函数用于在 ggplot2 包中绘制箱线图。箱线图是一种常用的可视化工具,用于展示连续变量的分布情况、中位数、四分位数和异常值。 +

geom_boxplot(mapping = NULL, data = NULL, ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
+
+- mapping:指定变量与图形属性之间的映射关系,使用 aes() 函数设置。常用的映射属性包括 x(x 轴变量)、y(y 轴变量)、fill(填充颜色)、color(边框颜色)等。 +- data:一个数据框或数据集,包含要用于绘图的变量。 +- ...:其他参数,用于修改箱线图的外观和样式。 +- na.rm:一个逻辑值,指示是否忽略包含缺失值(NA)的观测。默认为FALSE,即不删除缺失值。 +- show.legend:一个逻辑值,指示是否显示图例。默认为NA,表示自动确定是否显示图例。 +- inherit.aes:一个逻辑值,指示是否继承父图层的aes()映射。默认为TRUE,表示继承。

+
    +
  • notch:指定是否绘制箱线图的缺口(notch)。缺口可以用于比较两个或多个箱线图的中位数的差异。默认值为 FALSE,表示不绘制缺口。
  • +
  • varwidth:指定是否根据样本大小调整箱线图的宽度。默认值为 FALSE,表示所有箱线图具有相同的宽度。
  • +
  • outlier.shape:指定异常值的形状。默认为圆圈("o")。
  • +
  • outlier.colour:指定异常值的边框颜色。
  • +
+

下面是一个示例,展示如何使用 geom_boxplot() 函数绘制箱线图:

+
library(ggplot2)
+
+# 创建示例数据框
+data <- data.frame(group = rep(c("A", "B", "C"), each = 50),value = c(rnorm(50, mean = 5), rnorm(50, mean = 10), rnorm(50, mean = 15)))
+
+# 绘制箱线图
+ggplot(data, aes(x = group, y = value)) +
+  geom_boxplot() +
+  labs(title = "Boxplot", x = "Group", y = "Value")
+
+

在上述示例中,我们首先创建了一个名为 data 的数据框,其中包含了两个变量 groupvalue。然后使用 ggplot() 函数创建一个基本的绘图对象,并使用 aes() 函数将 group 变量映射到 x 轴,将 value 变量映射到 y 轴。

+

通过 geom_boxplot() 函数绘制箱线图。此处省略了参数,使用函数的默认设置。箱线图将根据 group 变量的不同绘制不同的箱线图。

+

通过调整参数和添加其他图层函数,你可以根据自己的需求绘制不同样式的箱线图,并根据需要设置填充颜色、边框颜色、异常值形状等。

+

注意的内容!!!

+

直线延伸到去掉离群点以后显示的最大、最小值! +上边界:Q3+1.5IQR +下边界:Q1-1.5IQR +最小值不超过下边界,线段正延伸到最小值点;最大值超过上边界,线段线延伸到边界内的最大值,超过边界的值散点画下 +Pasted image 20230923161216

+

可以不分组

+

通常不需要手动对数据框进行分组。geom_boxplot() 函数会自动对数据进行分组,并根据分组绘制箱线图。 +

group_by(lj_top30, property_region) %>% 
+  ggplot() +
+    geom_boxplot(aes(x = property_region, y = price_ttl)) +
+    labs(title = "前top30区域房屋总价分布情况",  x = "所属区域",  y = "房屋总价",  caption = "DataSource: lj") +
+    theme(axis.text.x = element_text(family = "songti sc", face = "bold", color = "black", size = 10, angle = 90), 
+          plot.title = element_text(family = "songti sc", face = "bold", color = "black", size = 10, hjust = 0.5, vjust = 0,5))
+ungroup(lj_top30)
+
+Pasted image 20231018185244

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_col()/index.html b/R/ggplot2/geom_col()/index.html new file mode 100644 index 00000000..9e06a79d --- /dev/null +++ b/R/ggplot2/geom_col()/index.html @@ -0,0 +1,1566 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom col() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom col()

+ +

在R语言中,geom_col()函数是ggplot2包中的一个函数,用于创建柱状图。它将数据中的映射到柱状图的高度,可用于可视化分类变量与数值变量之间的关系。 +函数定义: +

geom_col(mapping = NULL, data = NULL, ..., width = NULL, position = "identity", stat = "identity", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
+

+

参数: +- mapping:一个aes()函数中指定的映射,用于将数据变量映射到图形属性。通常使用aes()函数来设置映射关系。 +- data:一个数据框或数据集,包含要用于绘图的变量。 +- ...:其他参数,用于修改柱状图的外观和样式。 +- width:一个数值或一个函数,用于指定柱状图的宽度。默认为NULL,表示自动确定宽度。 +- position:一个字符值,用于指定柱状图的位置调整方式。常用的选项包括"identity"(默认)表示不调整位置,"fill"表示堆叠柱状图,"dodge"表示并列柱状图。 +- stat:一个字符值,用于指定在绘制柱状图时要应用的统计方法。默认为"identity",表示直接使用原始数据值。 +- na.rm:一个逻辑值,指示是否忽略包含缺失值(NA)的观测。默认为FALSE,即不删除缺失值。 +- show.legend:一个逻辑值,指示是否显示图例。默认为NA,表示自动确定是否显示图例。 +- inherit.aes:一个逻辑值,指示是否继承父图层的aes()映射。默认为TRUE,表示继承

+

下面是一个示例:

+
library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  category = c("A", "B", "C", "D"),
+  value = c(10, 20, 15, 25)
+)
+
+# 创建柱状图
+ggplot(data, aes(x = category, y = value)) +
+  geom_col()
+
+

在上面的示例中,我们首先加载了ggplot2包,并创建了一个包含分类变量category和数值变量value的数据框。

+

然后,我们使用ggplot()函数创建了一个基本的绘图对象,指定data参数为数据框,使用aes()函数将category映射到x轴,将value映射到y轴。

+

最后,我们使用geom_col()函数添加了柱状图层,其中数据的值被映射到柱状图的高度。

+

这将生成一个简单的柱状图,其中x轴为分类变量,y轴为对应的数值变量。

+

geom_bar()和geom_col()的区别

+

geom_bar()geom_col()ggplot2包中用于绘制条形图的两个函数。它们之间的区别在于数据处理和高度计算的方式。

+
    +
  1. +

    geom_bar()函数:默认情况下,geom_bar()函数会对数据进行统计,然后绘制柱状图。它会根据数据中的频数或计数来确定柱子的高度。你可以使用参数stat来控制统计的方式,例如使用"count"表示按照频数统计,使用"identity"表示使用数据中准确的数值作为柱子的高度。

    +
  2. +
  3. +

    geom_col()函数:geom_col()函数则直接使用数据中的数值作为柱子的高度,而不进行额外的统计。它适用于已经进行了数据聚合或计算的情况,例如使用了dplyr包的group_by()summarize()函数进行数据处理后的结果。

    +
  4. +
+

以下是一个示例,演示了geom_bar()geom_col()的区别:

+
# 加载ggplot2包
+library(ggplot2)
+
+# 创建一个数据框(示例数据)
+data <- data.frame(
+  category = c("A", "B", "C"),
+  count = c(10, 20, 15)
+)
+
+# 使用geom_bar()绘制条形图
+p1 <- ggplot(data, aes(x = category, y = count)) +
+  geom_bar(stat = "identity")
+
+# 使用geom_col()绘制条形图
+p2 <- ggplot(data, aes(x = category, y = count)) +
+  geom_col()
+
+# 显示两个条形图
+print(p1)
+print(p2)
+
+

在上述示例中,我们首先加载了ggplot2包。然后创建了一个数据框data,其中包含categorycount两个变量。接下来,使用ggplot()函数创建了两个基本的绘图对象,并在aes()函数中指定了x和y轴的变量名。然后,分别使用geom_bar(stat = "identity")geom_col()函数绘制了两个条形图。

+

p1使用了geom_bar()函数,并指定了stat = "identity",以使用数据中的准确数值作为柱子的高度。而p2使用了geom_col()函数,直接使用数据中的数值作为柱子的高度。

+

根据你的需求和数据的处理方式,你可以选择使用geom_bar()geom_col()来绘制条形图。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_density()/index.html b/R/ggplot2/geom_density()/index.html new file mode 100644 index 00000000..c0f08994 --- /dev/null +++ b/R/ggplot2/geom_density()/index.html @@ -0,0 +1,1550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom density() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom density()

+ +

在R语言的ggplot2包中,geom_density()函数用于创建核密度估计图。核密度估计图是一种常用的统计图表,用于可视化数值变量的概率密度分布。 +有种根据频率自动计算密度的感觉! +函数定义: +

geom_density(mapping = NULL, data = NULL, ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
+
+参数: +- mapping:一个aes()函数中指定的映射,用于将数据变量映射到图形属性。通常使用aes()函数来设置映射关系。 +- data:一个数据框或数据集,包含要用于绘图的变量。 +- ...:其他参数,用于修改核密度估计图的外观和样式。 +- na.rm:一个逻辑值,指示是否忽略包含缺失值(NA)的观测。默认为FALSE,即不删除缺失值。 +- show.legend:一个逻辑值,指示是否显示图例。默认为NA,表示自动确定是否显示图例。 +- inherit.aes:一个逻辑值,指示是否继承父图层的aes()映射。默认为TRUE,表示继承。 +- bw:指定核密度估计的带宽,可以让概率密度曲线更贴近分布 +下面是一个示例: +
library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  value = rnorm(1000)
+)
+
+# 创建核密度估计图
+ggplot(data, aes(x = value)) +
+  geom_density()
+

+

在上面的示例中,我们首先加载了ggplot2包,并创建了一个数据框,其中包含一个数值变量value

+

然后,我们使用ggplot()函数创建了一个基本的绘图对象,指定data参数为数据框,使用aes()函数将value映射到x轴。

+

最后,我们使用geom_density()函数添加了核密度估计图层,将数据的概率密度分布可视化。

+

这将生成一个基本的核密度估计图,其中x轴为数值变量,y轴表示对应的概率密度。

+

您可以使用其他参数来修改核密度估计图的外观,如设置曲线的颜色、调整曲线的平滑度、添加填充颜色等。

+

bw参数

+

在R中,geom_density()函数是ggplot2包中的一种几何对象类型,用于创建核密度图。该函数使用核密度估计方法来计算和绘制数据的平滑概率密度曲线。 +geom_density()函数有一个可选的参数bw,用于指定核密度估计的带宽。带宽是核密度估计中的一个重要参数,它决定了平滑曲线的宽度。较小的带宽会导致曲线更加细致和具体,但可能会导致过拟合;较大的带宽会导致曲线更加平滑,但可能会造成信息丢失。 +bw参数可以接受以下几种取值: +1. "nrd0":使用基于样本标准差的带宽估计方法,即Silverman's规则。这是默认值。 +2. "nrd":使用基于样本标准差和样本大小的带宽估计方法。 +3. "ucv":使用基于样本标准差和样本大小的带宽估计方法,但在样本大小较小时有更好的性能。 +4. 数值:直接指定带宽的数值。较小的数值会产生更尖锐的曲线,较大的数值会产生更平滑的曲线。 +在选择带宽时,需要根据数据的特点和分布来进行调整。如果带宽选择不合适,可能会导致曲线过于尖锐或过于平滑,从而失去了对数据分布的准确描述。 +下面是一个示例代码,演示如何在ggplot2中使用geom_density()函数并指定bw参数: +

library(ggplot2)
+
+# 创建一个示例数据集
+data <- data.frame(x = rnorm(1000))
+
+# 使用geom_density()函数绘制核密度图,指定带宽为0.2
+ggplot(data, aes(x = x)) +
+  geom_density(bw = 0.2)
+
+这将绘制一个核密度图,带宽为0.2。你可以尝试不同的带宽值来观察曲线的变化。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_freqpoly()/index.html b/R/ggplot2/geom_freqpoly()/index.html new file mode 100644 index 00000000..8d0258f8 --- /dev/null +++ b/R/ggplot2/geom_freqpoly()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom freqpoly() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom freqpoly()

+ +

是ggplot2包中的一个几何图层函数,用于创建频数多边形图。频数多边形图是一种用于显示数值变量的分布情况的图表,它通过将数据分成多个区间,并绘制每个区间中数值的频数或频率来展示数据的分布情况。

+
geom_freqpoly(mapping = NULL, data = NULL, stat = "bin", position = "identity", bins = 30, pad = FALSE, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, ...)
+
+

参数说明: +- mapping: 映射变量到图形属性的参数,比如x、y、color等。 +- data: 包含数据的数据框。 +- stat: 统计变换的方法,默认为"bin",表示对数据进行分箱统计。 +- position: 点的位置调整方法,默认为"identity",不进行位置调整。 +- bins: 指定分箱的数量。 +- pad: 逻辑值,指示是否在最后一个箱子之后添加一个额外的箱子。 +- na.rm: 逻辑值,指示是否删除包含缺失值的观测。 +- show.legend: 控制是否显示图例。 +- inherit.aes: 逻辑值,指示是否继承父图层的aes参数设置。 +- ...: 其他传递给layer()的参数。

+

示例用法: +

library(ggplot2)
+
+# 创建一个包含数值变量的数据框
+df <- data.frame(value = rnorm(100))
+
+# 创建频数多边形图
+ggplot(df, aes(x = value)) +
+  geom_freqpoly()
+

+

在上面的示例中,我们首先创建了一个包含随机数值变量的数据框df。然后,通过调用ggplot()函数,并指定value变量作为x轴的值,我们创建了一个基本的ggplot对象。接下来,我们使用geom_freqpoly()函数添加了一个频数多边形图层,用于展示value变量的分布情况。

+

geom_freqpoly()函数基于数据的分布创建了多边形线条,其中x轴表示数值的区间,y轴表示每个区间中数值的频数。通过调整bins参数的值,可以控制分箱的数量,从而影响频数多边形图的平滑程度。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_function()/index.html b/R/ggplot2/geom_function()/index.html new file mode 100644 index 00000000..bc943cb2 --- /dev/null +++ b/R/ggplot2/geom_function()/index.html @@ -0,0 +1,1544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom function() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom function()

+ +

在R语言的ggplot2包中,确实存在geom_function()函数,用于在绘图中添加自定义函数的曲线。 +函数定义: +

geom_function(fun, ..., n = 101, inherit.aes = TRUE)
+
+参数: +- fun:自定义函数,用于定义曲线的形状。函数应接受一个输入向量,并返回一个输出向量。在函数中,可以使用R语言中的任何操作和函数。 +- ...:其他参数,用于传递给fun函数。 +- n:指定在绘图中使用多少个点来绘制曲线。默认值为101,即绘制101个点。 +- inherit.aes:逻辑值,表示是否继承绘图中的美学参数。默认为TRUE,表示继承。 +
library(ggplot2)
+
+# 自定义函数
+my_function <- function(x) {
+  exp(-x) * sin(2 * pi * x)
+}
+
+# 创建数据框
+data <- data.frame(x = seq(0, 5, length.out = 100))
+
+# 绘制图形
+ggplot(data, aes(x = x)) +
+  geom_function(fun = my_function, color = "blue", size = 1) +
+  labs(title = "Custom Function Curve")
+

+

在上面的示例中,我们首先定义了一个自定义函数my_function(),该函数接受一个输入向量x并返回一个输出向量。然后,我们创建了一个包含x值的数据框。最后,我们使用ggplot2包中的ggplot()函数创建一个绘图对象,并使用geom_function()函数添加自定义函数的曲线。我们通过colorsize参数设置曲线的颜色和线条粗细,并使用labs()函数设置图形的标题。

+

请注意,geom_function()函数允许您绘制任意自定义函数的曲线,只需将自定义函数传递给fun参数即可。您可以根据需要调整其他参数来自定义曲线的外观和样式。

+

stat_function()和geom_function()的区别

+

stat_function()geom_function()ggplot2包中用于绘制函数曲线的两个函数,它们之间有一些区别。

+
    +
  1. stat_function():这个函数用于在图形上添加一个函数曲线。它通过指定一个函数来创建一个曲线,并将其绘制在已有的图形上。通常与其他图层函数(如geom_point()geom_line()等)一起使用,以便在同一图形中显示数据点和函数曲线。
  2. +
+

`stat_function()的用法示例: +

ggplot(data, aes(x = x)) +
+  geom_point(aes(y = y)) +
+  stat_function(fun = my_function, aes(colour = "Function"))
+

+
    +
  1. geom_function():这个函数用于绘制一个函数曲线,并创建一个新的图形。它可以直接绘制函数曲线,而不需要其他数据点的存在。可以通过指定函数和绘制范围来自定义曲线的形状和位置。
  2. +
+

`geom_function()的用法示例: +

ggplot() +
+  geom_function(fun = my_function, aes(x = x), col = "blue")
+

+

总结起来,stat_function()用于在现有的图形上添加函数曲线,通常与其他图层函数一起使用,而geom_function()用于创建一个新的图形,并直接绘制函数曲线。它们的使用取决于你的需求和所需的图形效果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_histogram()/index.html b/R/ggplot2/geom_histogram()/index.html new file mode 100644 index 00000000..8d511a01 --- /dev/null +++ b/R/ggplot2/geom_histogram()/index.html @@ -0,0 +1,1618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom histogram() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Geom histogram()

+ +

在R语言中,ggplot2包中的geom_histogram()函数用于绘制直方图,显示定量变量的分布情况。

+

对连续型变量分组统计频数。千万别跟柱状图(离散变量统计频数)混淆

+

函数定义: +

geom_histogram(mapping = NULL, data = NULL, stat = "bin", position = "stack", ..., binwidth = NULL, bins = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
+

+

参数: +- mapping:一个映射(aesthetic mapping)对象,用于映射数据变量到图形属性的aes()函数或aes()函数的参数

+
    +
  • +

    data数据框

    +
  • +
  • +

    stat:统计变换的名称。默认为"bin",表示将数据分组为柱状图

    +
  • +
  • +

    color:直方图边框颜色

    +
  • +
  • +

    fill:指定数据变量与图形的填充颜色映射关系,。

    +
  • +
  • +

    position:柱状图的放置方式。可以是"stack"(默认,堆叠显示)或"dodge"(并列显示)。

    +
  • +
  • +

    binwidth:指定柱状图的宽度,就是组距,用于控制分组的粒度。

    +
  • +
  • +

    bins:指定柱状图的数量,用于控制分组的个数

    +
  • +
  • +

    na.rm:逻辑值,指示是否忽略缺失值

    +
  • +
  • +

    show.legend:用于控制是否显示图例

    +
  • +
  • +

    inherit.aes:逻辑值,指示是否继承父图层的aes()映射

    +
  • +
+

示例: +以下是一个使用geom_histogram()函数绘制直方图的示例:

+
library(ggplot2)
+
+# 创建数据集
+data <- data.frame(
+  value = rnorm(1000)
+)
+
+# 绘制直方图
+ggplot(data, aes(x = value)) +
+  geom_histogram(binwidth = 0.2, fill = "blue", col = "black") +
+  labs(title = "Histogram", x = "Value", y = "Frequency")
+
+

在上述示例中,我们首先加载ggplot2包,并创建了一个简单的数据集 data,包含了一个随机生成的值。

+

然后,我们使用ggplot()函数创建了一个基本图形,并使用aes()函数将数据的value变量映射到x轴。

+

接下来,我们使用geom_histogram()函数绘制直方图。在geom_histogram()函数中,我们可以使用参数如binwidth来指定柱状图的宽度,通过控制分组的粒度来调整直方图的样式。

+

最后,我们使用labs()函数设置图形的标题和轴标签。

+

通过使用geom_histogram()函数,我们可以轻松绘制直方图以可视化定量变量的分布情况。根据需要,可以调整参数来控制直方图的样式和粒度。

+

柱状图和直方图的区别

+

bar chart柱状图:数据不连续,有间隔;

+

Histogram直方图:数据连续,无间隔。 +400

+

设置直方图相关参数

+

scale_x_continuous() 限制了坐标轴的范围,但分组还是默认分组 +

# input data
+df_ppg <- read.csv("./data/NBAPlayerPts.csv")
+
+# 
+ggplot(df_ppg) +
+  geom_histogram(aes(x=PPG)) +
+  scale_x_continuous(limits = c(10, 30))
+
+Pasted image 20231108201222

+

把x轴的坐标和geom_histogram()中的组距、组数限制下,发现默认分组起始组是11-13,而非10-12!想要处理为10-12还是得转换为因子型。 +

# input data
+df_ppg <- read.csv("./data/NBAPlayerPts.csv")
+
+# 
+ggplot(df_ppg) +
+  geom_histogram(aes(x = PPG), binwidth = 2, bins = 15) +
+  scale_x_continuous(breaks = seq(10,30,2), limits = c(10, 30)) +
+  scale_y_continuous(breaks = seq(1,18))
+

+

Pasted image 20231108224752

+

将连续型变量离散化,求频率

+

个人的方法,老师的方法详看table()中的子标题内容。

+
# create a factor
+breaks <- seq(10, 30, by = 2)
+df_ppg_fre <- df_ppg %>%
+  mutate(PPG_Group = cut(PPG, breaks = breaks,include.lowest = TRUE)) %>% 
+  group_by(PPG_Group) %>% 
+  summarise(PPG_Group_count = n(), .groups = "drop")
+
+# plot a bar gram
+df_ppg_fre %>% 
+  ggplot() +
+  geom_bar(aes(x = PPG_Group, y = PPG_Group_count), stat = "identity") +
+  scale_y_continuous(breaks = seq(0,20))
+
+

Pasted image 20231227093246

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_line()/index.html b/R/ggplot2/geom_line()/index.html new file mode 100644 index 00000000..eed18d81 --- /dev/null +++ b/R/ggplot2/geom_line()/index.html @@ -0,0 +1,1515 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom line() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom line()

+ +

geom_line() 是 ggplot2 包中的一个函数,用于在绘图中添加线条。它可以用来显示数据点之间的趋势、连续变量的演变、时间序列等。 +

geom_line(x, y, ...)
+

+

下面是 geom_line() 函数中常用的参数的详细讲解和举例: +- x: 指定 x 轴上的变量或数据。可以是一个向量、数据框或数据集中的列名。这是必需的参数。

+
    +
  • +

    y: 指定 y 轴上的变量或数据。可以是一个向量、数据框或数据集中的列名。这是必需的参数。

    +
  • +
  • +

    group: 指定用于分组的变量或数据。当你有多个组,并希望为每个组绘制独立的线条时,可以使用该参数。

    +
  • +
  • +

    colorcolour: 指定线条的颜色。可以使用颜色名称(如 "red")、十六进制代码(如 "#FF0000")或其他可识别的颜色表示方法。

    +
  • +
  • +

    linetype: 指定线条的类型。可以是 "solid"(实线,默认值)、"dashed"(虚线)、"dotted"(点线)等。

    +
  • +
  • +

    size: 指定线条的粗细。可以是一个数值,表示线条的宽度。

    +
  • +
+

下面是一个示例,展示如何使用 geom_line() 绘制一条线:

+
library(ggplot2)
+
+# 创建示例数据
+df <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c(2, 4, 6, 8, 10)
+)
+
+# 绘制线条图
+ggplot(df, aes(x, y)) +
+  geom_line()
+
+

在上述示例中,我们创建了一个包含 x 和 y 值的数据框 df,然后使用 ggplot() 函数创建绘图对象,并使用 geom_line() 添加了一条线,其中 x 值对应数据框中的 x 列,y 值对应数据框中的 y 列。

+

你可以根据自己的数据和需求,通过调整这些参数来定制和美化线条图。此外,geom_line() 还有其他参数可以使用,例如 alpha(透明度)和 linetype(线条类型),你可以根据需要查阅 ggplot2 的文档来进一步了解。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_point()/index.html b/R/ggplot2/geom_point()/index.html new file mode 100644 index 00000000..c12a47f9 --- /dev/null +++ b/R/ggplot2/geom_point()/index.html @@ -0,0 +1,1557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom point() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom point()

+ +

是ggplot2包中的一个几何对象函数,用于在绘图中添加散点图。它可用于创建散点图,并将数据点表示为离散的点。

+

geom_point(mapping = NULL, data = NULL, ..., inherit.aes = TRUE)
+
+- mapping:一个[[aes()]]映射,用于指定数据变量与图形属性的映射关系,例如x轴坐标、y轴坐标、颜色、形状等。 +- data:包含要绘制的数据的数据框。 +ggplot()中指定了数据集和美学,这里就可以不指定,这里制定了,就会替代ggplot()中的全局映射。 +- 其他关键参数 +1. color:指定点的颜色。可以是预定义的颜色名称、颜色的十六进制表示或表示数据框列名的字符向量,"blue","red"等。 +2. shape:指定点的形状。可以是预定义的形状代码(1-25)或表示数据框列名的字符向量。 +3. size:指定点的大小。可以是固定的数值或表示数据框列名的字符向量。 +4. alpha:指定点的透明度。可以是一个介于0和1之间的数值,表示不透明度的程度。 +5. stroke:指定点的描边颜色。可以是预定义的颜色名称、颜色的十六进制表示或表示数据框列名的字符向量。 +6. stroke_width:指定点的描边宽度。可以是固定的数值或表示数据框列名的字符向量。 +- na.rm:一个逻辑值,指示是否忽略包含缺失值(NA)的观测。默认为FALSE,即不删除缺失值。 +- inherit.aes:逻辑值,表示是否从父图层继承美学属性。默认为TRUE

+

下面是一个示例,演示如何使用geom_point()函数创建散点图: +

library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c(2, 4, 6, 8, 10)
+)
+
+# 创建散点图
+ggplot(data, aes(x = x, y = y)) +
+  geom_point()
+

+

在这个示例中,我们创建了一个数据框data,其中包含了x和y坐标的值。然后,使用ggplot()函数创建一个基本的绘图对象,并使用geom_point()函数添加散点图。通过aes()函数,我们将x和y变量与图形属性进行映射。

+

geom_point()函数会根据数据框中的x和y值在图上绘制相应的点。默认情况下,点的外观由ggplot2的默认设置确定,但您可以使用其他参数来自定义点的形状、大小、颜色等。

+

这个示例展示了如何使用geom_point()函数创建散点图。您可以根据需要调整映射关系和其他参数来定制散点图的外观。

+

position参数

+

在ggplot2的geom_point()函数中,position参数用于控制点的位置。该参数接受以下几个常用的取值: +- "identity":点的位置与数据中的原始坐标一致,即不进行任何位置调整。 +- "jitter":对于具有相同x值的点,通过添加随机的微小偏移来分散它们的位置,以避免点完全重叠在一起。 +- "nudge":在x轴或y轴上对点进行微小的偏移,使它们在坐标轴上稍微分开。 +- "stack":对于具有相同x值的点,将它们堆叠在一起,使得只有一个点可见,但点的大小会根据堆叠的数量进行缩放。 +- "fill":对于具有相同x值的点,将它们堆叠在一起,使得只有一个点可见,并且点的大小和形状保持不变。

+

以下是一个示例,展示了如何在geom_point()中使用不同的position参数取值:

+
library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  x = c(1, 1, 2, 2, 3, 3),
+  y = c(1, 1, 2, 2, 3, 3)
+)
+
+# 创建散点图,并使用不同的position参数取值
+ggplot(data, aes(x = x, y = y)) +
+  geom_point(position = "identity", color = "blue") +
+  geom_point(position = "jitter", color = "red") +
+  geom_point(position = "nudge", color = "green") +
+  geom_point(position = "stack", color = "purple") +
+  geom_point(position = "fill", color = "orange")
+
+

在这个示例中,我们创建了一个数据框data,其中包含了x和y坐标的值。然后,使用ggplot()函数创建一个基本的绘图对象,并使用geom_point()函数添加散点图。在每个geom_point()函数中,我们设置不同的position参数取值,并为每个散点图指定了不同的颜色。

+

运行这段代码会生成一个包含了五个散点图的图形。每个散点图都使用相同的数据,但根据不同的position参数取值,点的位置和显示方式会有所不同。您可以通过观察图中的点的位置和分布情况来更好地理解每个position参数取值的效果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_smooth()/index.html b/R/ggplot2/geom_smooth()/index.html new file mode 100644 index 00000000..62b0eba3 --- /dev/null +++ b/R/ggplot2/geom_smooth()/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom smooth() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom smooth()

+ +

函数是R语言中的一个函数,用于在绘图中添加平滑曲线。规避一些离群极端点

+
geom_smooth()
+
+
    +
  • +

    method:用于指定平滑曲线的方法。常用的方法包括"lm"(线性回归),"loess"(局部多项式回归),"gam"(广义可加模型)等。例如,method = "lm"将使用线性回归方法添加平滑曲线。

    +
  • +
  • +

    formula:用于指定平滑曲线的公式。公式可以包含自变量和因变量,例如formula = y ~ x,其中y是因变量,x是自变量。

    +
  • +
  • +

    se:指定是否显示平滑曲线的置信区间。默认值为TRUE,表示显示置信区间。

    +
  • +
  • +

    span:用于指定局部多项式回归的平滑度。取值范围为0到1,越接近于1表示平滑度越高。

    +
  • +
+
library(ggplot2)
+
+# 创建一个散点图,并添加平滑曲线
+ggplot(data = mtcars, aes(x = wt, y = mpg)) +
+  geom_point() +
+  geom_smooth(method = "lm", se = FALSE) +
+  labs(title = "Weight vs. MPG",
+       x = "Weight",
+       y = "MPG")
+
+

这个示例中,我们使用了mtcars数据集的wt(车重)和mpg(每加仑英里数)列绘制了一个散点图,并通过geom_smooth()函数使用线性回归方法添加了平滑曲线。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_text()/index.html b/R/ggplot2/geom_text()/index.html new file mode 100644 index 00000000..a5babca0 --- /dev/null +++ b/R/ggplot2/geom_text()/index.html @@ -0,0 +1,1521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom text() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom text()

+ +

ggplot2 是一个用于数据可视化的强大 R 包。geom_text() 函数是 ggplot2 中的一个几何对象,用于在图表中添加文本标签。 +函数定义: +

geom_text(
+  mapping = NULL,
+  data = NULL,
+  stat = "identity",
+  position = "identity",
+  ...,
+  parse = FALSE,
+  nudge_x = 0,
+  nudge_y = 0,
+  check_overlap = FALSE,
+  na.rm = FALSE,
+  show.legend = NA,
+  inherit.aes = TRUE
+)
+

+

详细参数: +- mapping: 用于指定文本标签的映射(mapping)参数,包括 x、y 和 label。例如,mapping = aes(x = x_var, y = y_var, label = label_var)。 +- data: 包含数据的数据框(data frame)或其他可供转换为数据框的对象。 +- stat: 指定用于计算统计变量的统计方法。默认值为 "identity", 按指定数值计算,而非频次。 +- position: 指定文本标签的位置调整方法。常见的值包括 "identity"(不调整)、"stack"(堆叠)和 "dodge"(并列)。默认值为 "identity"。 +- ...: 其他可选参数,用于修改文本标签的外观和样式,例如字体大小、颜色等。 +- parse: 用于指定是否解析文本标签中的 R 表达式。默认值为 FALSE。 +- nudge_xnudge_y: 用于微调文本标签的位置。可以使用正负值进行微调。 +- check_overlap: 指定是否检查文本标签之间的重叠。默认值为 FALSE。 +- na.rm: 指定是否删除包含 NA 值的观测。默认值为 FALSE。 +- show.legend: 指定是否显示图例。默认值为 NA,表示根据图层上的映射参数自动确定是否显示图例。 +- inherit.aes: 指定是否继承父图层的美学属性。默认值为 TRUE。

+

举例: +

library(ggplot2)
+
+# 创建数据框
+data <- data.frame(x = c(1, 2, 3, 4, 5),
+                   y = c(10, 8, 6, 4, 2),
+                   label = c("A", "B", "C", "D", "E"))
+
+# 创建散点图并添加文本标签
+ggplot(data, aes(x, y)) +
+  geom_point() +
+  geom_text(aes(label = label), color = "red", size = 12, nudge_x = 0.2, nudge_y = 0.2)
+

+

在上述示例中,我们首先创建了一个包含 x、y 和 label 变量的数据框。然后,使用 ggplot() 函数创建了一个散点图,并使用 geom_point() 函数添加了散点。最后,使用 geom_text() 函数在每个散点上添加了文本标签。通过 aes(label = label) 指定了标签的映射关系,color 参数设置标签颜色为红色,size 参数设置标签大小为 12,nudge_xnudge_y 参数微调标签的位置。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/geom_vline()/index.html b/R/ggplot2/geom_vline()/index.html new file mode 100644 index 00000000..f0c3a3d3 --- /dev/null +++ b/R/ggplot2/geom_vline()/index.html @@ -0,0 +1,1531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Geom vline() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Geom vline()

+ +

是 ggplot2 包中用于在图形中添加垂直线的函数。它允许你在指定的 x 坐标位置上添加垂直线,并可以对其进行自定义设置。

+

下面是 geom_vline() 函数的语法和常用参数的详细说明:

+
geom_vline(
+  mapping = NULL,
+  data = NULL,
+  xintercept = NULL,
+  linetype = "solid",
+  color = "black",
+  size = 0.5,
+  alpha = 1,
+  ...
+)
+
+

常用参数的解释如下:

+
    +
  • +

    mapping:指定变量与图形属性之间的映射关系,使用 aes() 函数设置。可以用于对不同的垂直线进行分组或映射不同的属性。

    +
  • +
  • +

    data:指定包含数据的数据框。如果不提供此参数,将使用全局数据框。

    +
  • +
  • +

    xintercept:指定垂直线的 x 坐标位置。可以是单个值、向量或一个函数。

    +
  • +
  • +

    linetype:指定线型的类型。默认值为 "solid"。

    +
  • +
  • +

    color:指定线的颜色。默认值为 "black"。

    +
  • +
  • +

    size:指定线的粗细。默认值为 0.5。

    +
  • +
  • +

    alpha:指定线的透明度。取值范围为 0(完全透明)到 1(完全不透明)。默认值为 1。

    +
  • +
+

除了上述参数外,geom_vline() 还接受其他参数,这些参数会传递给 geom_segment() 函数,用于绘制线段。

+

下面是一个示例,展示如何使用 geom_vline() 函数添加垂直线:

+
library(ggplot2)
+
+# 创建示例数据框
+data <- data.frame(x = 1:10, y = rnorm(10))
+
+# 创建散点图并添加垂直线
+ggplot(data, aes(x = x, y = y)) +
+  geom_point() +
+  geom_vline(xintercept = 5, color = "red", linetype = "dashed") +
+  labs(title = "Scatter Plot with Vertical Line", x = "X-axis", y = "Y-axis")
+
+

在上述示例中,我们首先创建了一个名为 data 的数据框,其中包含了两个变量 xy。然后使用 ggplot() 函数创建一个基本的绘图对象,并使用 aes() 函数将 x 变量映射到 x 轴,将 y 变量映射到 y 轴。

+

通过 geom_point() 函数添加散点图的图层。然后使用 geom_vline() 函数添加垂直线,通过 xintercept 参数指定线的 x 坐标位置为 5,通过 color 参数设置线的颜色为 "red",通过 linetype 参数设置线的类型为 "dashed"。

+

通过调整参数和添加其他图层函数,你可以根据自己的需求在图形中添加多个垂直线,设置不同的颜色、线型和位置。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/ggplot()/index.html b/R/ggplot2/ggplot()/index.html new file mode 100644 index 00000000..3a8db099 --- /dev/null +++ b/R/ggplot2/ggplot()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Ggplot() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Ggplot()

+ +

ggplot2 包中的一个函数,用于创建一个基本的绘图对象(创建画布,可以理解为PPT中新建的一页)。它提供了一个框架,用于指定数据和图形的整体属性,并可以与其他函数(如 geom_*()scale_*()theme() 等)结合使用来构建具体的图形。 +单独使用 ggplot() 函数创建的绘图对象是一个空的画布,没有具体的图形显示。要在画布上添加具体的图形元素,需要使用其他函数(如 geom_*())来指定绘图对象中的几何对象(在PPT那页中插入文字、图形等具体信息,还可以改样式)。 +

ggplot(data = NULL, mapping = aes(), ...)
+
+- data: 指定要用于绘图的数据集。可以是一个数据框、数据集名称、或者其他数据结构。 +- mapping: 定义数据变量与图形的映射关系,即指定哪些变量将映射到图形的视觉属性,如 x 轴位置、y 轴位置、颜色、形状等。可通过 aes() 函数来定义映射关系。 +将数据集中的变量数据映射(关联)到相应的图形属性,也称为 "美学映射" 或 "美学"。 +告诉软件什么是x的数据,什么是y的数据,x和y的对应关系。以及其他图形属性,放入gemo_*中也可以 +R语言入门-aes函数-一句话学会 - Naozhewan的文章 - 知乎 https://zhuanlan.zhihu.com/p/433287471 +- maintitle: 设置图形的主标题。 +- xlabylab: 设置 x 轴或 y 轴的标签。 +- xlimylim: 设置 x 轴或 y 轴的取值范围。 +- facet: 设置分面绘图的方式,用于根据一个或多个变量的不同水平拆分成多个子图。 +- theme: 设置图形的主题,包括背景、标题、轴标签、图例等的外观和样式。 +- ... 其他参数:可以是各种图形属性和选项,如坐标轴刻度、图例设置、颜色、线型、点形状等。

+

library(ggplot2)
+
+# 示例数据集
+df <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))
+
+# 创建绘图对象
+p <- ggplot(data = df, mapping = aes(x = x, y = y))
+
+# 输出绘图对象
+print(p)
+
+Pasted image 20230918200509 +在上述示例中,我们首先创建了一个数据集 df,包含两列(x 和 y)。然后,使用 ggplot() 函数创建了一个基本的绘图对象 p,并指定数据集为 df,同时使用 aes() 函数定义了 x 和 y 列与图形的映射关系。最后,通过打印语句输出绘图对象。

+

输出结果是一个基本的绘图对象的描述,其中包含了数据集、映射关系和其他全局属性的设置。这个绘图对象可以进一步与其他函数(如 geom_*()scale_*()theme() 等)结合使用,来添加具体的图形元素和调整图形的各个方面。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/labs()/index.html b/R/ggplot2/labs()/index.html new file mode 100644 index 00000000..0e1c8d60 --- /dev/null +++ b/R/ggplot2/labs()/index.html @@ -0,0 +1,1514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Labs() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Labs()

+ +

函数是 ggplot2 包中用于修改图形标签的函数。它可以用来修改图形的标题、坐标轴标签和图例标签等。 +

labs()
+
+- title:用于修改图形的标题。 +- subtitle:用于修改图形的副标题。 +- x:用于修改 x 轴的标签。 +- y:用于修改 y 轴的标签。 +- caption:用于修改图形的注释

+

通过指定对应参数的值,可以对图形的标签进行修改。可以使用字符向量或表达式来设置标签的内容,也可以通过其他函数(如 expression()bquote() 等)来实现更高级的标签表达式。

+

以下是一个简单的示例,演示如何使用 labs() 函数修改图形的标签:

+

library(ggplot2)
+
+# 示例数据集
+df <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))
+
+# 创建绘图对象,定义映射关系
+p <- ggplot(data = df, mapping = aes(x = x, y = y))
+
+# 添加点图层
+p <- p + geom_point()
+
+# 修改图形标签
+p <- p + labs(
+  title = "Scatter Plot",
+  subtitle = "Example",
+  x = "X Axis",
+  y = "Y Axis",
+  caption = "DataSource: lj"
+)
+
+# 显示图形
+print(p)
+
+Pasted image 20231018163031 +在上述示例中,我们首先创建了一个数据集 df,然后使用 ggplot() 函数创建了一个基本的绘图对象 p,并在 aes() 函数中定义了 x 和 y 列与图形的映射关系。接着,通过 + 运算符和 geom_point() 函数,添加了一个点图层。最后,使用 labs() 函数修改了图形的标签,包括标题、副标题、坐标轴标签和图形注释

+

通过调整 labs() 函数的参数,可以自定义图形的标签内容,以适应特定的需求。可以使用不同的字符、表达式或其他函数来实现丰富的标签表达式。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/scale_()/index.html b/R/ggplot2/scale_()/index.html new file mode 100644 index 00000000..e4beae46 --- /dev/null +++ b/R/ggplot2/scale_()/index.html @@ -0,0 +1,1519 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Scale () - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Scale ()

+ +

参考 +函数是R语言中用于调整图形比例尺的一组函数。这些函数用于改变绘图中的轴、颜色、大小等比例尺的设置。 +- scale_x_continuous()scale_y_continuous():用于调整x轴和y轴的连续型变量的比例尺。 + - limits:指定轴的取值范围。 + - breaks:用于指定刻度线的位置。 + - labels:用于指定刻度线的标签。

+
    +
  • scale_x_discrete()scale_y_discrete():用于调整x轴和y轴的离散型变量的比例尺。
  • +
  • limits:指定轴的取值范围。
  • +
  • breaks:用于指定刻度线的位置。
  • +
  • +

    labels:用于指定刻度线的标签。

    +
  • +
  • +

    scale_color_*()scale_fill_*():用于调整颜色变量的比例尺。

    +
  • +
  • values:用于指定颜色的取值范围或自定义颜色。
  • +
  • +

    guide:用于指定颜色图例的类型和位置。

    +
  • +
  • +

    scale_size_*():用于调整点大小或线条宽度的比例尺。

    +
  • +
  • range:指定点大小或线条宽度的取值范围。
  • +
  • guide:用于指定大小图例的类型和位置。
  • +
+

这是一个使用scale_*()函数的示例:

+
library(ggplot2)
+
+# 创建一个散点图,并调整比例尺
+ggplot(data = mtcars, aes(x = wt, y = mpg, color = cyl, size = hp)) +
+  geom_point() +
+  scale_x_continuous(limits = c(0, 6), breaks = seq(0, 6, 1), labels = c("0", "1", "2", "3", "4", "5", "6")) +
+  scale_y_continuous(limits = c(0, 40), breaks = seq(0, 40, 10), labels = c("0", "10", "20", "30", "40")) +
+  scale_color_manual(values = c("blue", "red", "green"), guide = guide_legend(title = "Cylinders")) +
+  scale_size(range = c(2, 10), guide = guide_legend(title = "Horsepower")) +
+  labs(title = "Weight vs. MPG",
+       x = "Weight",
+       y = "MPG")
+
+

在这个示例中,我们使用了mtcars数据集的wt(车重)和mpg(每加仑英里数)列绘制了一个散点图,并使用scale_x_continuous()scale_y_continuous()函数调整了x轴和y轴的比例尺。我们使用scale_color_manual()函数指定了颜色的取值范围和图例的标题,使用scale_size()函数指定了点大小的取值范围和图例的标题。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/scale_color_manual()/index.html b/R/ggplot2/scale_color_manual()/index.html new file mode 100644 index 00000000..825772f9 --- /dev/null +++ b/R/ggplot2/scale_color_manual()/index.html @@ -0,0 +1,1571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Scale color manual() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Scale color manual()

+ +

是 ggplot2 包中用于手动设置颜色映射的函数。它允许你自定义图形中的颜色,为离散变量或分组变量指定特定的颜色值。

+
scale_color_manual(values, guide = "legend", aesthetics = "colour")
+
+
    +
  • values:一个包含颜色的向量,用于手动设置颜色映射。可以是具体的颜色名称、十六进制颜色代码或 R 中已定义的颜色向量。
  • +
+

Pasted image 20231122203026

+
    +
  • +

    labels:指定每个颜色对应的标签名,用于在图例中显示。这个对应顺序应该可以指定

    +
  • +
  • +

    breaks:指定要显示的颜色刻度的位置。

    +
  • +
  • +

    guide:指定图例的显示方式。常用的选项包括 "legend"(默认,显示图例)和 "none"(不显示图例)。

    +
  • +
  • +

    aesthetics 指定要调整的颜色变量,通常为 "colour"。

    +
  • +
+

下面是一个示例,展示如何使用 scale_color_manual() 函数手动设置颜色映射: +

library(ggplot2)
+
+# 创建示例数据框
+data <- data.frame(x = 1:5, y = 1:5, group = c("A", "A", "B", "B", "C"))
+
+# 创建散点图
+ggplot(data, aes(x = x, y = y, color = group)) +
+  geom_point(size = 3) +
+  scale_color_manual(
+    values = c("A" = "red", "B" = "blue", "C" = "green"),
+    labels = c("Group A", "Group B", "Group C"),
+    breaks = c("A", "B", "C"),
+    guide = "legend"
+  ) +
+  labs(title = "Scatter Plot", x = "X-axis", y = "Y-axis")
+

+

在上述示例中,我们首先创建了一个名为 data 的数据框,其中包含了三个变量 xygroup。然后,使用 ggplot() 函数创建一个基本的绘图对象,并使用 geom_point() 函数添加散点图的图层。通过 aes() 函数将 group 变量映射到颜色(color)属性。

+

通过 scale_color_manual() 函数手动设置颜色映射。通过 values 参数指定了每个组别(A、B、C)对应的颜色("red"、"blue"、"green")。通过 labels 参数指定了每个颜色对应的标签("Group A"、"Group B"、"Group C"),用于在图例中显示。通过 breaks 参数指定了要显示的颜色刻度的位置("A"、"B"、"C")。通过 guide 参数设置了图例的显示方式为 "legend",即显示图例。

+

通过调整参数和添加其他图层函数,你可以根据自己的需求手动设置颜色映射,并创建具有自定义颜色的图形。

+

在R语言中,scale_color_manual() 函数属于 ggplot2 包,用于手动设置颜色映射。这个函数通常用于调整图表中离散型颜色变量的颜色映射。以下是关于 scale_color_manual() 函数的基本信息:

+

示例:

+
# 安装并加载ggplot2包
+install.packages("ggplot2")
+library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  category = c("A", "B", "C", "D"),
+  value = c(10, 20, 15, 25)
+)
+
+# 创建一个基础的散点图,颜色映射为默认值
+p <- ggplot(data, aes(x = category, y = value, color = category)) +
+  geom_point()
+
+# 显示默认颜色映射的图表
+print(p)
+
+# 创建一个颜色映射为自定义颜色的散点图
+custom_colors <- c("A" = "red", "B" = "blue", "C" = "green", "D" = "purple")
+
+p_custom_colors <- 
+ggplot(data, aes(x = category, y = value, color = category)) +
+  geom_point() +
+  scale_color_manual(values = custom_colors)
+
+# 显示自定义颜色映射的图表
+print(p_custom_colors)
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/scale_fill_()/index.html b/R/ggplot2/scale_fill_()/index.html new file mode 100644 index 00000000..10f2c179 --- /dev/null +++ b/R/ggplot2/scale_fill_()/index.html @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Scale fill () - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Scale fill ()

+ +

scale_fill_*() 函数是 ggplot2 包中用于修改填充颜色的函数,主要用于调整图形中填充颜色的映射和外观。这些函数用于修改图形中的填充颜色,例如柱状图的填充颜色、散点图中的点的填充颜色等。

+

scale_fill_*() 函数的具体名称取决于你要修改的图形对象,例如 scale_fill_manual() 用于手动设置填充颜色,scale_fill_gradient() 用于使用渐变色设置填充颜色等。

+

以下是一些常用的 scale_fill_*() 函数及其功能:

+
    +
  • scale_fill_manual(): 手动设置填充颜色的映射关系,可以指定特定颜色值或颜色向量。
  • +
+

示例: + ``R + # 手动设置填充颜色为红色和蓝色 + scale_fill_manual(values = c("red", "blue"))

+
    +
  • scale_fill_gradient(): 使用渐变色设置填充颜色,可以通过不同的参数来控制渐变的类型和外观,如 lowhightypelimits 等。
  • +
+

示例: + `R + # 使用蓝色到红色的渐变色设置填充颜色 + scale_fill_gradient(low = "blue", high = "red")

+
    +
  • scale_fill_continuous(): 设置连续型数据的填充颜色映射,可以指定颜色空间、颜色范围等参数。
  • +
+

示例: + `R + # 设置填充颜色映射为蓝色调色板 + scale_fill_continuous(palette = "Blues")

+
    +
  • scale_fill_discrete(): 设置离散型数据的填充颜色映射,可以指定颜色调色板、颜色顺序等参数。
  • +
+

示例: + `R + # 设置填充颜色映射为默认调色板 + scale_fill_discrete()

+
    +
  • 其他特定的 scale_fill_*() 函数,如 scale_fill_gradient2()scale_fill_hue() 等,用于特定的填充颜色需求。
  • +
+

通过使用适当的 scale_fill_*() 函数,可以修改图形中的填充颜色映射,以及外观和样式。可以根据具体的需求,调整参数值来实现所需的填充颜色效果。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/scale_x_continuous()/index.html b/R/ggplot2/scale_x_continuous()/index.html new file mode 100644 index 00000000..b1615d8a --- /dev/null +++ b/R/ggplot2/scale_x_continuous()/index.html @@ -0,0 +1,1573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Scale x continuous() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Scale x continuous()

+ +

是 ggplot2 包中用于调整 x 轴连续变量的函数。它可以修改 x 轴的显示范围、标签、刻度和其他属性,以便更好地呈现数据。

+
scale_x_continuous()
+
+
    +
  • +

    name:指定 x 轴的名称或标题。

    +
  • +
  • +

    breaks:指定 x 轴刻度的位置。可以使用数字向量来指定刻度的位置。

    +
  • +
+

breaks = data_q1$air_date。x能等距隔开 +Pasted image 20231226165543

+
    +
  • +

    labels:指定 x 轴刻度标签的显示文本。可以使用字符向量来指定刻度标签的文本。 +可以理解为刻度显示的别名,如果2011-08-22的形式不合适,可以设置别名

    +
  • +
  • +

    limits:指定 x 轴显示的范围。可以使用数字向量来指定范围的最小值和最大值。

    +
  • +
  • +

    expand:指定 x 轴显示范围的扩展因子。可以使用数字向量 [a, b] 来设置扩展因子,其中 a 控制范围的下限扩展,b 控制范围的上限扩展。

    +
  • +
  • +

    trans:指定 x 轴坐标轴的变换函数。可以使用函数如 log10sqrt 等来对坐标轴进行变换。

    +
  • +
+

下面是一个示例,展示如何使用 scale_x_continuous() 函数调整 x 轴的属性: +

library(ggplot2)
+
+# 创建示例数据
+df <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c(2, 4, 6, 8, 10)
+)
+
+# 绘制散点图,并调整 x 轴的属性
+ggplot(df, aes(x, y)) +
+  geom_point() +
+  scale_x_continuous(
+    name = "X轴",
+    breaks = c(1, 3, 5),
+    labels = c("一", "三", "五"),
+    limits = c(0, 6),
+    expand = c(0.05, 0),
+    trans = "log10"
+  )
+

+

在上述示例中,我们创建了一个包含 x 和 y 值的数据框 df,然后使用 ggplot() 函数创建绘图对象,并使用 geom_point() 添加散点图。通过 scale_x_continuous() 函数,我们调整了 x 轴的多个属性,包括名称、刻度位置、刻度标签、显示范围、扩展因子和变换函数。

+

你可以根据自己的数据和需求,通过调整这些参数来定制和美化 x 轴。此外,scale_x_continuous() 还有其他参数可以使用,例如 limits(限制范围的自动计算)和 breaks(自定义刻度位置),你可以根据需要查阅 ggplot2 的文档来进一步了解。

+

设置直方图初始值

+

scale_x_continuous() 限制了坐标轴的范围,但分组还是默认分组 +

# input data
+df_ppg <- read.csv("./data/NBAPlayerPts.csv")
+
+# 
+ggplot(df_ppg) +
+  geom_histogram(aes(x=PPG)) +
+  scale_x_continuous(limits = c(10, 30))
+
+Pasted image 20231108201222

+

把x轴的坐标和geom_histogram()中的组距、组数限制下,发现默认分组是11-13,而非10-12! +

# input data
+df_ppg <- read.csv("./data/NBAPlayerPts.csv")
+
+# 
+ggplot(df_ppg) +
+  geom_histogram(aes(x = PPG), binwidth = 2, bins = 15) +
+  scale_x_continuous(breaks = seq(10,30,2), limits = c(10, 30)) +
+  scale_y_continuous(breaks = seq(1,18))
+

+

Pasted image 20231108224752

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/scale_y_continuous()/index.html b/R/ggplot2/scale_y_continuous()/index.html new file mode 100644 index 00000000..907eead3 --- /dev/null +++ b/R/ggplot2/scale_y_continuous()/index.html @@ -0,0 +1,1555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Scale y continuous() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Scale y continuous()

+ +

在R语言中,scale_y_continuous()函数是ggplot2包中的一个函数,用于调整图形的y轴刻度和标签

+

函数定义: +

scale_y_continuous(
+  name = waiver(),
+  breaks = waiver(),
+  labels = waiver(),
+  limits = NULL,
+  expand = waiver(),
+  oob = censor,
+  na.value = NA_real_,
+  trans = "identity",
+  guide = "numeric",
+  position = "left",
+  sec.axis = NULL,
+  reverse = FALSE,
+  n.dodge = if (is.numeric(position)) 1 else "preserve",
+  super = NULL,
+  ...,
+  minor_breaks = waiver(),
+  minor_breaks_width = NULL
+)
+

+

参数: +- name:y轴的名称。

+
    +
  • +

    breaks:y轴刻度的位置。可以是一个向量,表示刻度的位置;或者是一个函数,用于计算刻度的位置。

    +
  • +
  • +

    labels:y轴刻度的标签。可以是一个向量,表示刻度的标签;或者是一个函数,用于计算刻度的标签。

    +
  • +
  • +

    limits:y轴的取值范围。可以是一个包含两个元素的向量,表示最小值和最大值。

    +
  • +
  • +

    expand:y轴刻度扩展的比例因子。

    +
  • +
  • +

    oob:用于处理超出限制范围的值的函数。

    +
  • +
  • na.value:缺失值的替代值。
  • +
  • trans:y轴数值的变换函数。
  • +
  • guide:y轴的图例类型。
  • +
  • position:y轴的位置。
  • +
  • sec.axis:辅助y轴的设置。
  • +
  • reverse:是否反转y轴的方向。
  • +
  • n.dodge:用于分组变量的刻度宽度。
  • +
  • super:辅助y轴的设置。
  • +
  • ...:其他可选参数。
  • +
  • minor_breaks:次要刻度的位置。
  • +
  • minor_breaks_width:次要刻度的宽度。
  • +
+

示例: +以下是使用scale_y_continuous()函数调整y轴刻度和标签的示例:

+
library(ggplot2)
+
+# 示例数据
+data <- data.frame(x = 1:10, y = 1:10^6)
+
+# 创建基础图形
+plot <- ggplot(data, aes(x, y)) + geom_point()
+
+# 调整y轴刻度和标签
+plot <- plot + scale_y_continuous(
+  breaks = c(0, 100000, 500000, 1000000),
+  labels = c("0", "100k", "500k", "1M"),
+  limits = c(0, 1200000),
+  name = "Y-Axis"
+)
+
+# 打印图形
+print(plot)
+
+

在上述示例中,我们首先加载了ggplot2包,并创建了一个示例数据框data,其中包含两列数据xy

+

然后,我们创建了一个基础图形plot,使用geom_point()添加散点图层。

+

接下来,我们使用scale_y_continuous()函数调整y轴的刻度和标签。在示例中,我们指定了刻度的位置breaks为0、100000、500000和1000000,并指定了相应的标签labels。我们还使用limits参数设置y轴的取值范围。

+

最后,我们通过print(plot)打印出调整后的图形。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/stat_density()/index.html b/R/ggplot2/stat_density()/index.html new file mode 100644 index 00000000..e665b685 --- /dev/null +++ b/R/ggplot2/stat_density()/index.html @@ -0,0 +1,1523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Stat density() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Stat density()

+ +

在R语言中,stat_density()函数通常用于在图形中绘制密度估计图。

+

函数定义: +

stat_density(
+  mapping = NULL,
+  data = NULL,
+  geom = "area",
+  position = "identity",
+  ...,
+  bw = "nrd0",
+  adjust = 1,
+  kernel = "gaussian",
+  n = 512,
+  trim = TRUE,
+  na.rm = FALSE,
+  show.legend = NA,
+  inherit.aes = TRUE
+)
+

+

参数: +- mapping:用于映射数据到图形属性的参数。 +- data:用于绘图的数据框。 +- geom:指定使用的几何对象类型。通常为"area"(默认值)。 +- position:指定数据在图形中的放置方式。通常为"identity"(默认值)。 +- ...:其他传递给geom_area()的参数。 +- bw:指定密度估计的带宽选择方法。通常为"nrd0"(默认值)。 +- adjust:带宽调整参数,用于调整带宽的大小。 +- kernel:指定使用的核函数类型。通常为"gaussian"(默认值)。 +- n:指定生成密度估计的点数。 +- trim:指定是否在估计密度时修剪极端值。通常为TRUE(默认值)。 +- na.rm:指定是否移除包含NA值的观测。通常为FALSE(默认值)。 +- show.legend:指定是否显示图例。 +- inherit.aes:指定是否继承父图层的美学属性。

+

示例: +以下是使用stat_density()函数绘制密度估计图的示例:

+
# 加载ggplot2包 
+library(ggplot2) 
+# 创建示例数据 
+data <- data.frame(x = rnorm(1000)) 
+# 绘制密度图 
+ggplot(data, aes(x)) + stat_density(geom = "line", fill = "blue", span = 0.5)
+
+

在上述示例中,我们首先创建了一个包含随机正态分布数据的数据集。

+

然后,我们使用ggplot2包中的函数创建了一个基础的绘图对象,并使用geom_density()函数添加了stat_density()函数的默认设置,绘制了密度估计图。

+

最后,我们通过ggplot()函数展示了绘图结果。

+

请注意,stat_density()函数通常结合geom_density()函数一起使用,以便在图形中绘制密度估计图。您可以根据需要设置参数和数据。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/stat_function()/index.html b/R/ggplot2/stat_function()/index.html new file mode 100644 index 00000000..60aaf1c4 --- /dev/null +++ b/R/ggplot2/stat_function()/index.html @@ -0,0 +1,1597 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Stat function() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + + + + + + +

Stat function()

+ +

在R语言的ggplot2包中,stat_function()函数用于在绘图中添加一个函数的曲线。 +函数定义: +

stat_function(fun, ..., data = NULL, geom = "line", position = "identity", n = 101, args = list())
+
+参数: +- fun:要绘制的函数。可以是一个已定义的函数,也可以是一个匿名函数。应变量y +- ...:其他参数传递给函数fun。 +- data:可选参数,用于指定数据框,如果需要从数据框中提取变量作为函数参数。自变量x +- geom:可选参数,用于指定曲线的几何对象类型。默认为"line",表示绘制曲线。 +- position:可选参数,用于指定位置调整的方法。默认为"identity",表示不进行位置调整。 +- n:可选参数,用于指定生成曲线上点的数量。 +- args:可选参数,用于传递给函数fun的其他参数。

+

示例: +

library(ggplot2)
+
+# 示例:绘制函数曲线
+p <- ggplot(data.frame(x = c(-5, 5)), aes(x = x))
+
+# 添加sin函数的曲线
+p + stat_function(fun = sin, geom = "line", color = "red", size = 1)
+
+# 添加自定义函数的曲线
+my_func <- function(x) {
+  x^2 + 2*x + 1
+}
+
+p + stat_function(fun = my_func, geom = "line", color = "blue", size = 1)
+

+

在示例中,我们首先加载ggplot2包使用library(ggplot2)。然后,我们创建了一个基础的ggplot对象p,其中的数据框包含了x轴的取值范围。

+

接下来,我们使用stat_function()函数分别添加了sin函数和自定义函数的曲线。对于sin函数,我们指定了fun = sin,表示绘制sin函数的曲线;对于自定义函数,我们定义了一个名为my_func的函数,并将其作为fun参数传递给stat_function()函数。

+

在每个stat_function()函数调用中,我们还可以通过其他参数(例如colorsize等)来设置曲线的颜色、线条粗细等样式。

+

最后,我们将每个stat_function()函数调用与基础的ggplot对象相加,以生成包含函数曲线的绘图。

+

使用stat_function()函数可以方便地在ggplot2中绘制各种函数的曲线,从而更好地可视化函数的形状和特征。

+

stat_function()和geom_smooth()函数的区别

+

stat_function()geom_smooth()函数在ggplot2包中都用于添加平滑曲线到图表中,但它们的实现方式和应用场景有一些区别。 +stat_function()适用于绘制通过给定函数计算的平滑曲线,而geom_smooth()则更为灵活,根据数据的特性自动选择平滑方法并生成平滑曲线。

+

stat_function()函数用于绘制通过给定函数计算的平滑曲线。你需要提供一个函数作为参数,该函数会在x轴范围内生成一系列的x值,并使用给定函数计算相应的y值来创建平滑曲线。这个函数可以是R中已有的内置函数,也可以是自定义的函数。使用stat_function()函数时,你可以通过args参数传递给函数的额外参数。 +以下是一个使用stat_function()的示例: +

library(ggplot2)
+
+# 创建一个示例数据集
+data <- data.frame(x = 1:10, y = c(2, 4, 6, 8, 10, 9, 7, 5, 3, 1))
+
+# 绘制散点图和平滑曲线
+ggplot(data, aes(x, y)) +
+  geom_point() +
+  stat_function(fun = function(x) x^2, color = "red", linetype = "dashed")
+
+在这个示例中,我们使用stat_function()函数通过函数 fun = function(x) x^2 绘制了一个平滑曲线,该曲线是x的平方。color参数和linetype参数设置了曲线的颜色和线型。

+

相比之下,geom_smooth()函数更为灵活,它可以根据数据的特性自动选择合适的平滑方法,并生成平滑曲线。geom_smooth()函数对于绘制回归曲线或光滑密度估计等常见用途非常方便。 +以下是一个使用geom_smooth()的示例: +

library(ggplot2)
+
+# 创建一个示例数据集
+data <- data.frame(x = 1:10, y = c(2, 4, 6, 8, 10, 9, 7, 5, 3, 1))
+
+# 绘制散点图和平滑曲线
+ggplot(data, aes(x, y)) +
+  geom_point() +
+  geom_smooth(method = "lm", se = FALSE, color = "blue")
+

+

在这个示例中,我们使用geom_smooth()函数绘制了一个回归曲线,通过设置method = "lm"来选择线性回归方法。se参数设置为FALSE,表示不显示曲线的置信区间。color参数设置了曲线的颜色。

+

~dnorm()

+

注意,binwidth组距要合理设置,不合理得出的图形有问题 +

a <- rnorm(1000)
+ggplot(data.frame(x = a), aes(x)) +
+  geom_histogram(binwidth = 0.25) +
+  stat_function(fun = ~ dnrom(.x) *0.25*1000,n =100) 
+
+
+# dnrom(.x) *0.25 相对频数
+# 总数1000其实为了计算实际频数
+
+在R语言中,波浪线(~)通常用作公式(formula)的符号,用于指示模型或函数的依赖关系。在公式中,波浪线左侧表示因变量(或响应变量),而右侧表示自变量(或预测变量)。 +在您提供的上下文中,~符号用于定义一个函数曲线,其中dnorm()函数被用作一个概率密度函数。在这种情况下,波浪线左侧的公式部分表示因变量(函数的输出),而右侧的部分表示自变量(函数的输入)。 +具体来说,dnorm()是R中用于计算正态分布的概率密度函数的函数。当将其用作公式的一部分时,即~ dnorm(.x) * 0.25 * 1000,它表示函数曲线的高度(因变量)由dnorm(.x) * 0.25 * 1000计算得出,其中.x表示自变量。 +波浪线符号在R中用于多个上下文中,其中最常见的是在公式中指定线性模型、广义线性模型和其他统计模型。它允许您定义变量之间的关系,并在建模和数据分析中起到重要作用。

+

蒙特卡罗模拟???

+

用正态分布去拟合直方图?

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/stat_summary()/index.html b/R/ggplot2/stat_summary()/index.html new file mode 100644 index 00000000..b9cb49a3 --- /dev/null +++ b/R/ggplot2/stat_summary()/index.html @@ -0,0 +1,1516 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Stat summary() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Stat summary()

+ +

在ggplot2中,函数用于计算和绘制统计摘要图形。它可以用于显示数据的汇总统计信息,例如均值、中位数、标准差等。 +

stat_summary(
+  mapping = NULL,
+  data = NULL,
+  fun = NULL,
+  geom = "pointrange",
+  position = "identity",
+  ...,
+  width = NULL,
+  fun.args = list()
+)
+

+

参数说明: +- mapping: 用于定义数据变量与图形属性的映射关系,例如x轴、y轴、颜色等。 +- data: 数据框,包含要绘制的变量。 +- fun: 要应用于数据的统计函数,例如mean、median、sd等。可以是内置的函数或自定义的函数。 +- geom: 统计摘要图形的类型,常用的有"pointrange"(点范围图)和"crossbar"(十字杆图)。 +- position: 统计摘要图形的摆放方式,常用的有"identity"(默认,与原始数据对齐)和"dodge"(并列)。 +- width: 统计摘要图形的宽度,可以是一个常量值或一个表示宽度的表达式。 +- fun.args: 传递给统计函数的其他参数。

+

以下是一个示例,展示如何使用stat_summary()函数创建统计摘要图形:

+
library(ggplot2)
+
+# 创建一个数据框
+data <- data.frame(
+  category = rep(c("A", "B"), each = 10),
+  value = rnorm(20)
+)
+
+# 创建统计摘要图形
+ggplot(data, aes(x = category, y = value)) +
+  stat_summary(fun = mean, geom = "pointrange", color = "blue") +
+  stat_summary(fun.data = mean_cl_normal, geom = "errorbar", width = 0.2, color = "red")
+
+

在这个示例中,我们创建了一个数据框data,其中包含了一个类别变量category和一个数值变量value。然后,使用ggplot()函数创建一个基本的绘图对象,并使用stat_summary()函数添加统计摘要图形。

+

在第一个stat_summary()函数中,我们设置fun参数为mean,表示计算均值,并将geom参数设置为"pointrange",表示使用点范围图形。通过设置color参数为"blue",我们为统计摘要图形指定了颜色。

+

在第二个stat_summary()函数中,我们设置fun.data参数为mean_cl_normal,表示计算均值的置信区间,并将geom参数设置为"errorbar",表示使用误差线图形。通过设置width参数为0.2,我们调整了误差线的宽度。通过设置color参数为"red",我们为统计摘要图形指定了颜色。

+

这个示例将创建一个带有均值点和置信区间误差线的统计摘要图形,其中x轴表示类别,y轴表示数值。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/ggplot2/theme()/index.html b/R/ggplot2/theme()/index.html new file mode 100644 index 00000000..2ccb888f --- /dev/null +++ b/R/ggplot2/theme()/index.html @@ -0,0 +1,1903 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Theme() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Theme()

+ +

theme()函数用于自定义绘图的外观和样式,包括背景、标题、轴标签等。 +函数定义: +

theme(...)
+
+参数: +theme()函数没有固定的参数列表,它接受一系列参数,用于自定义绘图的外观和样式。

+

在具体使用中逐步补充! +常用参数: +以下是theme()函数中常用的参数(不完全列表): +- axis.text: 轴标签样式。axis.text.x修改 x 轴刻度标签,axis.text.y修改 y 轴刻度标签。 +axis.text.x = element_text(angle = 90),本身是x的标签样式是横着的,旋转90度,变成竖的。能不能将具体的字符保持横着(歪着头看很费劲)??? +Pasted image 20231226170320

+
    +
  • +

    axis.title: 轴标题的样式。axis.title.x修改 x 轴标题,axis.title.y修改 y 轴标题。

    +
  • +
  • +

    axis.ticks: 轴刻度线和刻度标签的样式,axis.ticks.x修改 x 轴刻度线,axis.ticks.y修改 y 轴刻度线。

    +
  • +
  • +

    legend.title: 图例标题的样式。

    +
  • +
  • +

    legend.text: 图例标签的样式。

    +
  • +
  • +

    panel.background: 绘图区域的背景样式。

    +
  • +
  • +

    panel.grid: 绘图区域的网格样式。panel.grid.major.x修改 x 轴的主要网格线,panel.grid.minor.y修改 y 轴的次要网格线。 +

    library(ggplot2)
    +
    +# 创建一个简单的散点图
    +p <- ggplot(mtcars, aes(x = mpg, y = wt)) +
    +  geom_point()
    +
    +# 设置线条的颜色为红色,粗细为2,类型为虚线,端点样式为圆形
    +p + theme(
    +  panel.grid.major = element_line(color = "red", size = 2, linetype = "dashed", lineend = "round")
    +)
    +

    +
  • +
  • +

    plot.background: 整个图形的背景样式。

    +
  • +
  • plot.title: 图形标题的样式。
  • +
  • plot.subtitle: 修改图形副标题的外观。
  • +
  • +

    plot.caption: 修改图形注释的外观。

    +
  • +
  • +

    strip.text: 修改分面图中子图标签的外观。

    +
  • +
+

示例: +以下是一个使用theme()函数自定义绘图样式的示例: +

library(ggplot2)
+
+# 创建数据集
+data <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c(2, 4, 6, 8, 10)
+)
+
+# 创建基本图形
+p <- ggplot(data, aes(x, y)) +
+  geom_line() +
+  labs(title = "My Plot", x = "X", y = "Y")
+
+# 自定义绘图样式
+p + theme(
+  plot.title = element_text(color = "blue", size = 16),
+  axis.title = element_text(color = "red", size = 14),
+  axis.text = element_text(color = "green", size = 12),
+  panel.background = element_rect(fill = "gray")
+)
+

+
library(ggplot2)
+
+# 示例数据集
+df <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))
+
+# 创建绘图对象,定义映射关系
+p <- ggplot(data = df, mapping = aes(x = x, y = y))
+
+# 添加点图层
+p <- p + geom_point()
+
+# 修改图形主题
+p <- p + theme(
+  plot.title = element_text(color = "blue", size = 16),
+  axis.title.x = element_text(face = "bold"),
+  axis.text.y = element_text(angle = 90),
+  legend.position = "bottom"
+)
+
+# 显示图形
+print(p)
+
+

样式函数

+

element_rect()矩形元素(如图例背景、面板背景等)的样式

+

ggplot2中,theme()函数用于自定义绘图的外观和样式。element_rect()函数是theme()函数中的一个子函数,用于设置矩形元素的样式,如图例背景、面板背景等。下面是一些常用的element_rect()函数的参数及其详细介绍和示例: +1. fill: 设置矩形填充的颜色。 +

# 示例
+ggplot() +
+  theme(
+    legend.background = element_rect(fill = "lightblue"),
+    panel.background = element_rect(fill = "lightgray")
+  )
+

+
    +
  1. +

    colourcolor: 设置矩形边框的颜色。 +

    # 示例
    +ggplot() +
    +  theme(
    +    legend.background = element_rect(color = "blue"),
    +    panel.background = element_rect(color = "gray")
    +  )
    +

    +
  2. +
  3. +

    size: 设置矩形边框的粗细。 +

    # 示例
    +ggplot() +
    +  theme(
    +    legend.background = element_rect(size = 1),
    +    panel.background = element_rect(size = 0.5)
    +  )
    +

    +
  4. +
  5. +

    linetype: 设置矩形边框的类型,如实线("solid")、虚线("dashed")、点线("dotted")等。 +

    # 示例
    +ggplot() +
    +  theme(
    +    legend.background = element_rect(linetype = "dashed"),
    +    panel.background = element_rect(linetype = "dotted")
    +  )
    +

    +
  6. +
  7. +

    inherit.blank: 设置是否继承element_blank()函数的效果,即是否隐藏矩形元素。 +

    # 示例
    +ggplot() +
    +  theme(
    +    legend.background = element_rect(inherit.blank = TRUE)  # 继承隐藏
    +  )
    +

    +
  8. +
+

这些是element_rect()函数中一些常用的参数,你可以根据需要进行调整。通过在theme()函数中使用element_rect()函数,并设置相应的参数,你可以自定义绘图中矩形元素的样式,例如图例背景、面板背景等。

+

element_text()文本元素的样式

+

ggplot2中,theme()函数用于自定义绘图的外观和样式。element_text()函数是theme()函数中的一个子函数,用于设置文本元素的样式。下面是一些常用的element_text()函数的参数及其详细介绍和示例: +1. family: 设置文本的字体系列。可以指定多个字体作为备选项,用逗号分隔。默认值为NULL,表示使用默认字体。"Songti SC"宋体 +

# 示例
+ggplot() +
+  theme(
+    axis.text = element_text(family = "Arial")
+  )
+

+
    +
  1. +

    face: 设置文本的字体样式,如粗体("bold")、斜体("italic")、正常("plain")等。默认值为"plain"。 +

    # 示例
    +ggplot() +
    +  theme(
    +    axis.text = element_text(face = "bold")
    +  )
    +

    +
  2. +
  3. +

    colorcolour: 设置文本的颜色。 +

    # 示例
    +ggplot() +
    +  theme(
    +    axis.text = element_text(colour = "red")
    +  )
    +

    +
  4. +
  5. +

    size: 设置文本的大小。 +

    # 示例
    +ggplot() +
    +  theme(
    +    axis.text = element_text(size = 12)
    +  )
    +

    +
  6. +
  7. +

    angle: 设置文本的旋转角度(以为单位)。 +

    # 示例
    +ggplot() +
    +  theme(
    +    axis.text = element_text(angle = 45)
    +  )
    +

    +
  8. +
  9. +

    hjustvjust: 设置文本的水平对齐和垂直对齐方式,取值范围为0到1之间。 +

    # 示例
    +ggplot() +
    +  theme(
    +    axis.text = element_text(hjust = 0.5, vjust = 0.5)
    +  )
    +

    +
  10. +
  11. +

    lineheight: 设置文本的行高,取值范围为0到1之间。 +

    # 示例
    +ggplot() +
    +  theme(
    +    axis.text = element_text(lineheight = 0.8)
    +  )
    +

    +
  12. +
+

这些是element_text()函数中一些常用的参数,你可以根据需要进行调整。通过在theme()函数中使用element_text()函数,并设置相应的参数,你可以自定义绘图的文本元素样式,包括坐标轴标签、图例标签、标题等。

+

element_line()线条元素的样式

+

ggplot2中,theme()函数用于自定义绘图的外观和样式。element_line()函数是theme()函数中的一个子函数,用于设置线条元素的样式。下面是一些常用的element_line()函数的参数及其详细介绍和示例: +1. colourcolor: 设置线条的颜色。 +

# 示例
+ggplot() +
+  theme(
+    panel.grid.major = element_line(colour = "gray"),
+    panel.grid.minor = element_line(colour = "lightgray")
+  )
+

+
    +
  1. +

    size: 设置线条的粗细。 +

    # 示例
    +ggplot() +
    +  theme(
    +    panel.grid.major = element_line(size = 1),
    +    panel.grid.minor = element_line(size = 0.5)
    +  )
    +

    +
  2. +
  3. +

    linetype: 设置线条的类型,如实线("solid")、虚线("dashed")、点线("dotted")等。 +

    # 示例
    +ggplot() +
    +  theme(
    +    panel.grid.major = element_line(linetype = "dashed"),
    +    panel.grid.minor = element_line(linetype = "dotted")
    +  )
    +

    +
  4. +
  5. +

    lineend: 设置线条的端点样式,如圆形("round")、平直("butt")等。 +

    # 示例
    +ggplot() +
    +  theme(
    +    panel.grid.major = element_line(lineend = "round"),
    +    panel.grid.minor = element_line(lineend = "butt")
    +  )
    +

    +
  6. +
  7. +

    linejoin: 设置线条的连接样式,如圆滑("round")、直角("mitre")等。 +

    # 示例
    +ggplot() +
    +  theme(
    +    panel.border = element_line(linejoin = "round")
    +  )
    +

    +
  8. +
+

这些是element_line()函数中一些常用的参数,你可以根据需要进行调整。通过在theme()函数中使用element_line()函数,并设置相应的参数,你可以自定义绘图的线条元素样式,包括网格线、边框线等。

+

element_blank()隐藏特定元素

+

element_blank()函数是theme()函数中的一个子函数,用于隐藏特定的元素,使其不显示。element_blank()函数没有可调整的参数,只需将其作为参数传递给相应的元素即可。以下是一些常见的使用示例: +1. 隐藏坐标轴标题: +

# 示例
+ggplot() +
+  theme(
+    axis.title.x = element_blank(),
+    axis.title.y = element_blank()
+  )
+

+
    +
  1. +

    隐藏图例: +legend.position = "none" 隐藏了图例! +

    # 示例
    +ggplot() +
    +  theme(
    +    legend.position = "none",
    +    legend.title = element_blank()
    +  )
    +

    +
  2. +
  3. +

    隐藏网格线: +

    # 示例
    +ggplot() +
    +  theme(
    +    panel.grid.major = element_blank(),
    +    panel.grid.minor = element_blank()
    +  )
    +

    +
  4. +
  5. +

    隐藏面板边框: +

    # 示例
    +ggplot() +
    +  theme(
    +    panel.border = element_blank()
    +  )
    +
    +通过将element_blank()函数作为参数传递给相应的元素,可以轻松地隐藏这些元素,从而实现绘图中特定元素的隐藏效果。请注意,element_blank()函数通常与其他的element_XXX()函数(如element_text()element_line()等)一起使用,以完全自定义绘图的外观和样式。

    +
  6. +
+

element_point()

+

element_point()函数是theme()函数中的一个子函数,用于设置散点图中点元素的样式。下面是一些常用的element_point()函数的参数及其详细介绍和示例: +1. size: 设置点的大小。 +

# 示例
+ggplot() +
+  theme(
+    plot.symbol = element_point(size = 3)
+  )
+

+
    +
  1. +

    shape: 设置点的形状,可以是整数或字符值。常见的形状包括圆形(16)、三角形(17)、正方形(15)等。 +

    # 示例
    +ggplot() +
    +  theme(
    +    plot.symbol = element_point(shape = 16)
    +  )
    +

    +
  2. +
  3. +

    colourcolor: 设置点的颜色。 +

    # 示例
    +ggplot() +
    +  theme(
    +    plot.symbol = element_point(colour = "red")
    +  )
    +

    +
  4. +
  5. +

    fill: 设置点的填充颜色。 +

    # 示例
    +ggplot() +
    +  theme(
    +    plot.symbol = element_point(fill = "blue")
    +  )
    +

    +
  6. +
+

这些是element_point()函数中一些常用的参数,你可以根据需要进行调整。通过在theme()函数中使用element_point()函数,并设置相应的参数,你可以自定义散点图中点元素的样式,包括大小、形状、颜色等。这样可以使得你的散点图更加符合你的设计需求。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/index.html b/R/index.html new file mode 100644 index 00000000..bb0c3a9f --- /dev/null +++ b/R/index.html @@ -0,0 +1,1524 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 推荐资料 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

推荐资料

+

【R语言数据分析从入门到进阶(已完结。第6部分可视化作图请移步至 R语言数据可视化)】

+

北京大学李东风老师开设的《统计软件》

+

985博后大师兄分享,chatGPT+R语言科研数据作图!

+

关于课堂笔记还在抓紧整理在。(不好意思,时间不太够用,建议个人结合平时作业进行查漏补缺)

+

R markdown

+

R Markdown 指南

+

关于R语言字典的建议

+

R语言字典的主要功能是辅助查找函数参数、快速了解函数作用,以及有没有类似的函数,该功能利用Rstudio自带的help函数也能部分实现。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/attachments/Pasted image 20231227124326.png b/R/other packages/attachments/Pasted image 20231227124326.png new file mode 100644 index 00000000..f0559288 Binary files /dev/null and b/R/other packages/attachments/Pasted image 20231227124326.png differ diff --git a/R/other packages/attachments/Pasted image 20231227124351.png b/R/other packages/attachments/Pasted image 20231227124351.png new file mode 100644 index 00000000..580410dd Binary files /dev/null and b/R/other packages/attachments/Pasted image 20231227124351.png differ diff --git a/R/other packages/attachments/Pasted image 20231227125205.png b/R/other packages/attachments/Pasted image 20231227125205.png new file mode 100644 index 00000000..94487ea0 Binary files /dev/null and b/R/other packages/attachments/Pasted image 20231227125205.png differ diff --git a/R/other packages/attachments/Pasted image 20231227125256.png b/R/other packages/attachments/Pasted image 20231227125256.png new file mode 100644 index 00000000..896c5ab3 Binary files /dev/null and b/R/other packages/attachments/Pasted image 20231227125256.png differ diff --git a/R/other packages/attachments/Pasted image 20231227125312.png b/R/other packages/attachments/Pasted image 20231227125312.png new file mode 100644 index 00000000..9ecee65e Binary files /dev/null and b/R/other packages/attachments/Pasted image 20231227125312.png differ diff --git a/R/other packages/attachments/Pasted image 20231227154219.png b/R/other packages/attachments/Pasted image 20231227154219.png new file mode 100644 index 00000000..cf051041 Binary files /dev/null and b/R/other packages/attachments/Pasted image 20231227154219.png differ diff --git a/R/other packages/package-EnvStats/index.html b/R/other packages/package-EnvStats/index.html new file mode 100644 index 00000000..fd6a6f43 --- /dev/null +++ b/R/other packages/package-EnvStats/index.html @@ -0,0 +1,1533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + package EnvStats - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

package EnvStats

+ +

varTest()方差比较检验,检验单个样本

+

varTest()

+

在 R 语言中,EnvStats 包中的 varTest() 函数用于进行方差比较检验。它可以用来比较两个或多个样本的方差是否显著不同。下面是对 varTest() 函数的参数进行详细介绍和举例: +函数语法: +

varTest(data, formula = NULL, method = c("bartlett", "fligner", "levene"), na.action = na.fail, ...)
+

+

参数说明: +- data: 包含数据的数据框或向量。如果使用公式(formula),则 data 应该是一个数据框。 +- formula: 可选参数,用于指定方差比较的公式。公式的形式为 response ~ group,其中 response 是一个数值型的响应变量,group 是一个分类变量,表示不同的组别。 +- method: 用于指定方差比较的方法。可选值为 "bartlett"(巴特利特检验)、"fligner"(弗里格尼检验)和 "levene"(莱文检验)。 +- na.action: 用于处理缺失值的方法。默认值是 na.fail,表示如果数据中存在缺失值,则函数会返回错误。 +- ...: 其他参数,可用于传递给特定方法的选项。 +返回值: +函数返回一个包含方差检验结果的对象,其中包括统计量、自由度、p 值等。

+

示例: +下面是一个使用 varTest() 函数进行方差比较检验的示例: +

# 导入 EnvStats 包
+library(EnvStats)
+
+# 创建一个示例数据框
+data <- data.frame(
+  response = c(10, 12, 15, 9, 11, 14, 8, 13),
+  group = factor(rep(c("A", "B"), each = 4))
+)
+
+# 使用 varTest() 进行方差比较检验
+result <- varTest(data, formula = response ~ group, method = "bartlett")
+
+# 打印方差比较检验结果
+print(result)
+

+

在上述示例中,我们首先导入 EnvStats 包,然后创建一个名为 data 的数据框,其中包含一个数值型的响应变量 response 和一个分类变量 group。我们使用 varTest() 函数进行方差比较检验,指定了公式 response ~ group 和方法为 "bartlett"。最后,我们打印出方差比较检验的结果。

+

请注意,在实际使用中,你可以根据需要选择不同的方法("bartlett"、"fligner" 或 "levene")进行方差比较检验,并根据检验结果进行数据分析和解释。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-car/index.html b/R/other packages/package-car/index.html new file mode 100644 index 00000000..6020ba8d --- /dev/null +++ b/R/other packages/package-car/index.html @@ -0,0 +1,1581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package car - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package car

+ +

计量经济学的包。car包(Companion to Applied Regression)

+

car::leveneTest()

+

^8f93ec

+

功能: leveneTest()函数用于执行Levene's test(列文检验),用于检验多个组的方差是否相等。这个检验通常用于方差分析(ANOVA)等统计方法,因为这些方法在假设组内方差相等的情况下更为有效。

+

定义: +

leveneTest(y, group, center = "median")
+

+

参数介绍:

+
    +
  • +

    y 数值型向量,包含观测值。

    +
  • +
  • +

    group 分组变量,用于指定观测值所属的组别。

    +
  • +
  • +

    center 中心化选项,用于指定如何中心化数据。默认为"median",可选的还有"mean"。

    +
  • +
+

示例:

+
# 安装并加载car包
+install.packages("car")
+library(car)
+
+# 创建两个组的数据(示例数据)
+group1 <- c(23, 25, 28, 30, 32)
+group2 <- c(18, 20, 24, 28, 30)
+
+# 执行Levene's test
+result <- leveneTest(c(group1, group2), group = rep(c("Group1", "Group2"), each = 5), center = "median")
+
+# 显示结果
+print(result)
+
+

输出:

+

示例中的输出结果将包含Levene's test的统计量(W)、自由度(DF1,DF2)和p值(Pr(>W))。具体输出信息将类似于:

+
Levene's Test for Homogeneity of Variance (center = median)
+      Df F value Pr(>F)
+group  1  0.0667 0.7996
+      8
+
+

这个输出提供了Levene's test的统计量(F value)、自由度(DF1,DF2)以及p值(Pr(>F))。在这个示例中,你可以查看p值来判断是否拒绝了组内方差相等的假设。

+

car::vif()

+

^2792de

+

在 R 语言中,vif() 函数通常属于 car 包,用于计算线性回归模型中各个预测变量的方差膨胀因子(VIF,Variance Inflation Factor)。VIF用于检测模型中存在多重共线性的情况。

+

功能: 计算线性回归模型中各个预测变量的方差膨胀因子

+

定义: +

vif(model, ...)
+

+

参数介绍: +- model:线性回归模型对象。 +- ...:其他参数,用于传递给底层的 vif() 方法。

+

返回值: +返回包含各个预测变量的方差膨胀因子的列表。

+

举例: +

# 使用 vif() 计算方差膨胀因子
+library(car)
+
+# 创建一个线性回归模型
+model <- lm(mpg ~ wt + hp + qsec, data = mtcars)
+
+# 计算方差膨胀因子
+vif_result <- vif(model)
+
+# 打印结果
+print(vif_result)
+

+

输出: +

       wt        hp      qsec 
+3.333146 4.442017 1.772618 
+

+

在这个例子中,vif(model) 使用 car 包的 vif() 函数计算了线性回归模型中预测变量的方差膨胀因子。结果显示了每个预测变量的VIF值。通常,VIF值大于10可能表示存在多重共线性的问题

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-e1071/index.html b/R/other packages/package-e1071/index.html new file mode 100644 index 00000000..1c8c2eb4 --- /dev/null +++ b/R/other packages/package-e1071/index.html @@ -0,0 +1,1584 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package e1071 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package e1071

+ +

skewness()

+

^93ddaf

+

在R语言的e1071包中,skewness()函数用于计算数据的偏度(skewness)。 +函数定义: +

skewness(x, na.rm = FALSE)
+
+参数: +- x:要计算偏度的数据向量或数据框。 +- na.rm:可选参数,用于指定是否在计算时删除缺失值。默认为FALSE,即不删除缺失值。 +示例: +
library(e1071)
+
+# 示例:计算数据偏度
+data <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+
+# 计算数据偏度
+skew <- skewness(data)
+print(skew)
+
+在示例中,我们首先加载e1071包使用library(e1071)。然后,我们创建了一个数据向量data,其中包含了一组数值。

+

接下来,我们使用skewness()函数计算了数据向量data的偏度,并将结果赋值给skew变量。最后,我们打印计算得到的偏度值。

+

注意,skewness()函数计算数据的偏度,它度量了数据分布的不对称性。当偏度值为0时,数据分布呈现对称性;当偏度值大于0时,数据分布向右倾斜(右尾较长);当偏度值小于0时,数据分布向左倾斜(左尾较长)。

+

偏度介绍

+

偏度(skewness)是一种统计量,用于衡量数据分布的对称性或偏斜程度。它描述了数据分布在平均值附近的偏斜方向和程度。 +常见的偏度计算方法是通过计算数据的三阶中心矩来获得。三阶中心矩是指数据值减去均值后的立方值的平均数。 +下面是偏度的计算公式: +

Skewness = (Sum((X - Mean)^3) / (N * StdDev^3))
+
+其中: +- X 是每个数据点的值 +- Mean 是数据的均值 +- StdDev 是数据的标准差 +- N 是数据点的数量

+

计算过程如下: +1. 计算数据的均值 Mean 和标准差 StdDev。 +2. 对于每个数据点,计算 (X - Mean)^3 的立方值。 +3. 将所有 (X - Mean)^3 的立方值相加得到总和。 +4. 将总和除以 (N * StdDev^3) 得到偏度值。

+

根据计算结果的正负和大小,可以判断数据的偏斜方向和程度: +- 当偏度为0时,表示数据分布近似对称。 +- 当偏度大于0时,表示数据右偏(正偏),即数据尾部向右延伸,右侧的极值较多。 +- 当偏度小于0时,表示数据左偏(负偏),即数据尾部向左延伸,左侧的极值较多。

+

需要注意的是,偏度是对数据分布形态的一种度量,它并不提供关于数据分布形状的完整信息。因此,在分析数据时,还需要结合其他统计量和可视化方法来全面了解数据的特征。

+

kurtosis()

+

^6c120d

+

在R语言中,kurtosis()函数是e1071包中的一个函数,用于计算数据的峰度系数。峰度系数是描述数据分布形态陡缓程度的统计量,其计算公式为样本的四阶矩除以样本的二阶矩的平方。

+

函数定义:kurtosis(x, corrected = TRUE)

+

参数介绍:

+
    +
  • x: 待计算峰度系数的数据。
  • +
  • corrected: 是否进行修正,默认为TRUE。如果为TRUE,则计算峰度系数时进行样本标准化,即除以(n-1)和(n-2)的组合数,其中n为样本数量。如果为FALSE,则直接计算原始数据的峰度系数。
  • +
+

举例:

+

假设我们有一个名为data的数据框,其中包含一些数值数据。要计算这些数据的峰度系数,可以使用以下代码:

+
r复制代码# 导入e1071包  library(e1071)    # 计算峰度系数  data <- c(2, 4, 6, 8, 10)  result <- kurtosis(data)  print(result)
+
+

输出结果为:

+
复制代码[1] 1.75
+
+

在上面的示例中,我们使用kurtosis()函数计算了数据data的峰度系数,并将结果存储在result变量中。最后,我们使用print()函数输出结果。由于数据data只有5个样本,因此计算出的峰度系数为1.75。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-gvlma/index.html b/R/other packages/package-gvlma/index.html new file mode 100644 index 00000000..103c9432 --- /dev/null +++ b/R/other packages/package-gvlma/index.html @@ -0,0 +1,1498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package gvlma - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package gvlma

+ +

"gvlma" 是一个R包,提供了对线性回归模型进行全面诊断和评估的功能。它包含了多个函数,用于检验回归模型的各种假设和诊断模型的合适性。以下是"gvlma"包中一些主要的功能函数的介绍:

+
    +
  1. +

    gvlma(): 这是"gvlma"包的主要函数,用于执行广义线性模型诊断。它可以对线性回归模型的几个重要假设进行检验,包括线性关系、正态性、同方差性和独立性。该函数返回一个包含多个诊断统计量和p值的报告。

    +
  2. +
  3. +

    plot.gvlma(): 这个函数用于绘制"gvlma()"函数的结果报告。它可以生成一个图形化的可视化诊断,帮助用户理解模型的问题和假设的违反情况。

    +
  4. +
  5. +

    summary.gvlma(): 这个函数用于总结"gvlma()"函数的结果报告。它提供了一个更简洁的摘要,包含了各个诊断统计量、p值和诊断结论,帮助用户快速了解模型的问题。

    +
  6. +
+

这些函数的结合使用可以帮助用户评估线性回归模型的合适性,并检测模型中可能存在的问题,例如非线性关系、异方差性、多重共线性等。通过使用"gvlma"包,用户可以更全面地评估模型的假设,并采取必要的措施来改进模型的拟合和解释能力。

+

请注意,为了使用"gvlma"包,您需要首先安装该包并加载到R环境中。您可以使用以下命令安装包: +

install.packages("gvlma")
+
+然后,使用以下命令加载包: +
library(gvlma)
+

+

接下来,您可以调用上述函数来执行线性回归模型的诊断和评估。如需更详细的使用说明和函数选项,请参考"gvlma"包的官方文档和示例。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-infer/index.html b/R/other packages/package-infer/index.html new file mode 100644 index 00000000..fe64350e --- /dev/null +++ b/R/other packages/package-infer/index.html @@ -0,0 +1,1583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package infer - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package infer

+ +

infer 包是一款现代化的统计推断包,它提供了一套统一的语法来执行假设检验和置信区间估计,特别注重随机模拟和置换测试

+

infer::prop_test()

+

^8af298

+

500

+

列表内容

+

prop_test() 函数的输出是一个包含检验结果的列表,通常包括以下组件: +- statistic: 检验统计量的值。 +- chisq_df:? +- p_value: 检验的 p 值。 +- alternative: 指定的备择假设类型。 +- lower_ci:? +- upper_ci:? +- estimate: 样本中成功事件的比例估计。 +- null.value: 在零假设下的比例值。

+
    +
  • method: 所使用检验的方法描述。
  • +
+

prop_test() 函数主要用来进行比例的假设检验,它可以用来检验一个样本比例是否等于某个指定的值(单样本比例检验),或者比较两个独立样本的比例(两个样本比例的检验)。

+

函数定义通常如下: +

prop_test(x, success = NULL, p = NULL, alternative = c("two-sided", "greater", "less"), ...)
+

+
    +
  • +

    x: 一个因子、逻辑、整数或数值向量。在两个比例进行比较时,x 是一个因子,代表分组变量。

    +
  • +
  • +

    response:如果x是一个数据框,这里需要指定对象。 +

    prop_test(data_q4, response = have_children,success = "Yes") # Yes作为成功事件
    +

    +
  • +
  • +

    success: 用来指定哪个水平作为“成功”的事件。在两个比例进行比较时,success 是一个字符向量,长度为 1。

    +
  • +
  • +

    p: 零假设下的比例值。在两个比例进行比较时,p 不需要指定。

    +
  • +
  • +

    alternative: 一个字符字符串,指定备择假设的类型。可以是 "two-sided""greater""less"

    +
  • +
  • +

    ...: 其他可能的参数,例如数据集(使用 data 参数)。

    +
  • +
+

举例

+

假设我们有一组数据,记录了100个人中是否吸烟的情况,其中有70个人吸烟。我们可以使用prop_test()函数来进行比例检验,判断吸烟者在总体中的比例是否显著不同于一个特定的比例。

+

首先,我们需要将数据转换为二项式数据,即将吸烟者记为1,非吸烟者记为0。然后,我们可以使用prop_test()函数进行比例检验。

+
library(infer)
+
+# 创建数据
+smokers <- rep(1, 70)
+nonsmokers <- rep(0, 30)
+data <- c(smokers, nonsmokers)
+
+# 进行比例检验
+prop_test(data, ~ response == 1, null = 0.5, alternative = "twosided")
+
+

在上述示例中,response参数指定了二项式数据中表示吸烟者的变量。我们使用formula语法~ response == 1来指定response变量为1表示吸烟者

+

在prop_test()函数中,我们还需要指定null参数来表示我们要检验的比例值,这里我们假设为0.5。alternative参数用于指定检验的方向,这里我们选择"twosided"表示双侧检验。

+

函数的输出结果将提供比例检验的统计量和p值等信息,用于评估吸烟者在总体中的比例是否显著不同于0.5。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-kableExtra/index.html b/R/other packages/package-kableExtra/index.html new file mode 100644 index 00000000..4d991e53 --- /dev/null +++ b/R/other packages/package-kableExtra/index.html @@ -0,0 +1,1538 @@ + + + + + + + + + + + + + + + + + + + + + + + + + package kableExtra - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

package kableExtra

+ +

kable_styling()

+

^cf2b37

+

kable()的结果 +Pasted image 20231227124326

+

kable() %>% kable_styling() +Pasted image 20231227124351

+

在 R 语言中,kable_styling() 函数通常与 kable() 函数一起使用,用于添加表格的样式。这个函数属于 knitr 包的扩展包 kableExtra

+

以下是 kable_styling() 函数的基本信息:

+

所属包: kableExtra

+

定义: +

kableExtra::kable_styling(kable_input, ...)
+

+

参数介绍: +- kable_inputkable() 函数的输出,即希望添加样式的表格。 +- ...:其他设置参数,用于指定表格的样式。

+

功能: +为使用 kable() 函数创建的表格添加样式。

+

举例: +

library(knitr)
+library(kableExtra)
+
+# 创建一个简单的数据框
+data <- data.frame(
+  Name = c("Alice", "Bob", "Charlie"),
+  Age = c(25, 30, 22),
+  Score = c(95, 89, 75)
+)
+
+# 使用 kable() 函数创建表格
+kable_table <- kable(data, format = "html", caption = "Sample Table")
+
+# 使用 kable_styling() 添加样式
+styled_table <- kable_styling(kable_table, full_width = FALSE, bootstrap_options = "striped")
+
+# 打印结果
+print(styled_table)
+

+

在这个例子中,首先使用 kable() 函数创建一个简单的表格,然后使用 kable_styling() 函数添加样式。full_width = FALSE 表示表格不占满整个宽度,bootstrap_options = "striped" 表示使用 Bootstrap 的条纹样式。输出是一个带有样式的 HTML 表格。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-knitr/index.html b/R/other packages/package-knitr/index.html new file mode 100644 index 00000000..73c11fd8 --- /dev/null +++ b/R/other packages/package-knitr/index.html @@ -0,0 +1,1550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package knitr - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package knitr

+ +

kable()

+

^b057f4

+

在R语言中,kable()函数是knitr包中提供的一个函数,用于创建漂亮的表格输出。它通常与R Markdown和knitr文档一起使用,以方便地将R代码和结果转换为可发布的文档。 +函数定义: +

kable(x, format = "default", ...)
+

+

参数: +- x:要生成表格的对象,通常为数据框或矩阵。 +- format:可选参数,用于指定输出表格的格式。默认情况下,格式为"default",还有其他可用的格式,如"html", "latex"等。 +- ...:其他可选参数,用于进一步定制表格的外观和样式。 +1. 对数据框生成漂亮的表格:

+
# 准备数据
+data <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c("A", "B", "C", "D", "E"),
+  z = c(TRUE, FALSE, TRUE, FALSE, TRUE)
+)
+
+# 生成漂亮的表格
+kable(data)
+
+

输出(在R Markdown中): +

|  x|y |z    |
+|--:|--|:----|
+|  1|A | TRUE|
+|  2|B |FALSE|
+|  3|C | TRUE|
+|  4|D |FALSE|
+|  5|E | TRUE|
+

+
    +
  1. 对矩阵生成漂亮的表格:
  2. +
+
# 准备数据
+matrix_data <- matrix(1:9, nrow = 3)
+
+# 生成漂亮的表格
+kable(matrix_data)
+
+

输出(在R Markdown中): +

| X1| X2| X3|
+|--:|--:|--:|
+|  1|  4|  7|
+|  2|  5|  8|
+|  3|  6|  9|
+

+

kable()函数能够根据对象的类型生成相应的漂亮表格。对于数据框,它会生成格式整齐的表格。对于矩阵,它会将矩阵的行和列转换为表格。

+

请注意,kable()函数的输出格式取决于所选的格式参数。您可以根据需要选择适合的格式来生成不同类型的表格,如HTML格式、LaTeX格式等。

+

此外,kable()函数还支持其他参数,如caption用于添加表格标题、align用于指定表格列的对齐方式等。您可以根据实际需求进一步定制表格的外观和样式。

+

希望这些示例能帮助您理解kable()函数的用法和功能。请注意,knitr包还提供了其他功能,如更高级的表格定制和添加表格脚注等。您可以查阅knitr包的文档以获取更多详细信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-lubridate/index.html b/R/other packages/package-lubridate/index.html new file mode 100644 index 00000000..1c53bc82 --- /dev/null +++ b/R/other packages/package-lubridate/index.html @@ -0,0 +1,1521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package lubridate - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package lubridate

+ +

lubridate::mdy()

+

^c21a07

+

将日期字符串解析为日期对象

+

定义: +

lubridate::mdy(date_string)
+

+

参数介绍: +- date_string:日期字符串,格式为 "Month Day, Year",例如 "January 1, 2022"。

+

举例: +

library(lubridate)
+
+# 使用 mdy() 解析日期字符串
+date <- mdy("January 1, 2022")
+
+# 打印结果
+print(date)
+

+

输出: +

[1] "2022-01-01"
+

+

在这个例子中,mdy() 函数用于将日期字符串 "January 1, 2022" 解析为日期对象。结果是一个包含日期信息的对象,可以在 R 中进行日期相关的操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-pander/index.html b/R/other packages/package-pander/index.html new file mode 100644 index 00000000..47672ac5 --- /dev/null +++ b/R/other packages/package-pander/index.html @@ -0,0 +1,1554 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package pander - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package pander

+ +

pander()

+

在R语言中,pander()函数是pander包提供的一个功能强大的工具,用于生成漂亮的表格和报告。它可以应用于各种对象,如数据框、线性模型、统计摘要等。 +函数定义: +

pander(..., style = "default", ...)
+
+参数: +- ...:要生成报告或表格的对象,如数据框、线性模型、统计摘要等。 +- style:可选参数,用于指定报告或表格的样式。默认情况下,样式为"default",还有其他可用的样式,如"grid", "rmarkdown", "html"等。

+
    +
  1. 对数据框生成漂亮的表格:
  2. +
+
# 创建一个数据框
+data <- data.frame(
+  x = c(1, 2, 3, 4, 5),
+  y = c("A", "B", "C", "D", "E"),
+  z = c(TRUE, FALSE, TRUE, FALSE, TRUE)
+)
+
+# 生成漂亮的表格
+pander(data)
+
+

输出: +

| x | y |  z   |
+|:-:|:-:|:----:|
+| 1 | A | TRUE |
+| 2 | B |FALSE |
+| 3 | C | TRUE |
+| 4 | D |FALSE |
+| 5 | E | TRUE |
+

+
    +
  1. 对线性模型生成漂亮的报告:
  2. +
+
# 创建一个线性模型
+model <- lm(mpg ~ cyl + hp, data = mtcars)
+
+# 生成漂亮的报告
+pander(model)
+
+

输出: +

--------------------------------------------------------------
+         &nbsp;                   Est.   S.E.   t val.   p
+------------------------- ---------- ------ ------- ------
+        **(Intercept)**       37.88   2.07    18.26   0.00 
+
+              **cyl**          -2.88   0.32    -8.92   0.00 
+
+               **hp**          -0.03   0.01    -2.61   0.01 
+
+--------------------------------------------------------------
+

+

pander()函数根据对象的类型生成相应的漂亮表格或报告。对于数据框,它会生成格式整齐的表格。对于线性模型,它会生成包含估计值、标准误差、t值和p值的报告。

+

请注意,pander()函数的输出样式取决于所选的样式参数。您可以根据需要选择适合的样式来生成漂亮的表格和报告。

+

希望这些示例能帮助您理解pander()函数的用法和功能。请注意,pander包还提供了其他功能,如自定义表格样式、添加标题和脚注等。您可以查阅pander包的文档以获取更多详细信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-readxl/index.html b/R/other packages/package-readxl/index.html new file mode 100644 index 00000000..05f3f994 --- /dev/null +++ b/R/other packages/package-readxl/index.html @@ -0,0 +1,1535 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package readxl - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package readxl

+ +

read_excel()

+

在 R 语言中,readxl 包中的 read_excel() 函数用于读取 Excel 文件数据。它提供了灵活的功能,可以从 Excel 文件中读取不同的工作表、指定读取的行列范围,以及处理日期和时间数据等。下面是对 read_excel() 函数的参数进行详细介绍和举例:

+

函数语法: +

read_excel(path, sheet = 1, range = NULL, col_names = TRUE, col_types = NULL, na = "", trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress(), .name_repair = "unique", .xlsx_format(path))
+

+

参数说明: +- path:一个字符向量,表示 Excel 文件的路径或 URL。 +- sheet:一个字符向量或整数,表示要读取的工作表名称或索引。默认为 1,表示读取第一个工作表。 +- range:一个字符向量,表示要读取的单元格范围。格式为 "A1:B10",其中 "A1" 表示起始单元格,"B10" 表示结束单元格。默认为 NULL,表示读取整个工作表。 +- col_names:一个逻辑值或字符向量,用于指定是否读取列名。如果为 TRUE,则读取列名;如果为 FALSE,则不读取列名;如果为字符向量,则指定自定义的列名。默认为 TRUE。 +- col_types:一个字符向量,用于指定每列的数据类型。例如,"numeric" 表示数值型,"character" 表示字符型,"date" 表示日期型。默认为 NULL,表示自动推断数据类型。 +- na:一个字符向量,表示 Excel 中用于表示缺失值的字符。默认为 "",表示空字符串。 +- trim_ws:一个逻辑值,用于指定是否去除单元格中的前导和尾随空格。默认为 TRUE。 +- skip:一个整数,表示跳过读取的行数。默认为 0,表示不跳过任何行。 +- n_max:一个正整数,表示读取的最大行数。默认为 Inf,表示读取所有行。 +- guess_max:一个正整数,表示用于自动推断列类型的最大行数。默认为 min(1000, n_max),即最多使用 1000 行进行类型推断。 +- progress:一个函数,用于显示读取进度的回调函数。默认为 show_progress()。 +- .name_repair:一个字符向量,用于指定列名修复策略。默认为 "unique",表示自动修复冲突的列名。 +- .xlsx_format:一个字符向量,表示 Excel 文件的格式。默认为 .xlsx_format(path)

+

返回值: +函数返回一个数据框,包含从 Excel 文件读取的数据。

+

示例: +下面是使用 read_excel() 函数读取 Excel 文件数据的示例:

+
# 安装并加载 readxl 包
+install.packages("readxl")
+library(readxl)
+
+# 读取 Excel 文件中的数据
+data <- read_excel("path/to/file.xlsx", sheet = "Sheet1", range = "A1:B10")
+
+# 打印读取的数据
+print(data)
+
+

在上述示例中,我们首先安装并加载了 readxl 包。然后,我们使用 read_excel() 函数读取 Excel 文件中的数据,指定要读取的工作表名称为 "Sheet1",要读取的单元格范围为 "A1:B10"。最后,我们打印出读取的数据。

+

你可以根据需要调整参数,例如指定其他工作表、自定义列名、指定数据类型等。根据 Excel 文件的结构和内容,适当调整参数可以正确读取和处理数据。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-sampling/index.html b/R/other packages/package-sampling/index.html new file mode 100644 index 00000000..4c06c45f --- /dev/null +++ b/R/other packages/package-sampling/index.html @@ -0,0 +1,1549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package sampling - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package sampling

+ +

抽样! +无法确定哪个包更好用,因为选择使用哪个包取决于具体的需求和使用情境。

+

sampling包和stats包都是R中常用的统计分析相关的包,但它们的功能和设计目标略有不同。

+
    +
  • +

    sampling包:这个包提供了一系列用于抽样的函数和方法。它专注于各种抽样方法的实现,包括简单随机抽样、分层抽样、无放回抽样等。如果你的主要任务是进行抽样,选择sampling包可能更适合,因为它提供了针对不同抽样方法的特定函数和功能。

    +
  • +
  • +

    stats包:这个包是R的核心统计分析包,提供了广泛的统计函数和方法。它包括了许多经典的统计方法,如假设检验、回归分析、方差分析等。如果你需要进行更一般的统计分析,或者使用经典的统计方法,stats包是一个很好的选择,因为它是R中最基本、最全面的统计分析包之一。

    +
  • +
+

要决定使用哪个包,你可以考虑以下因素:

+
    +
  • 分析需求:确定你需要进行的具体统计分析任务和方法。如果主要是抽样相关的任务,sampling包可能更合适。如果需要更一般的统计分析功能,stats包是更常用的选择。
  • +
  • 包的功能和文档:查看每个包的功能和文档,了解其提供的函数、方法和参数。比较它们的功能是否满足你的需求,并查阅相关文档以了解如何正确使用这些功能。
  • +
  • 社区支持和更新:考虑每个包的活跃程度、社区支持和最新更新的情况。活跃的开发者和社区支持可以提供更好的支持和解决问题的能力。
  • +
+

最终,选择使用哪个包应该根据你的具体需求、熟悉程度和个人偏好来决定。你也可以根据具体任务的要求,结合使用多个包来完成统计分析工作。

+

cluster()

+

我对之前提供的回答中的函数签名和参数介绍有误解,请接受我的道歉。

+

在R语言的sampling包中,确实存在cluster()函数,但其功能与之前提到的聚类操作无关。cluster()函数用于创建一个聚类抽样设计,根据指定的聚类标识和大小生成样本。

+

以下是cluster()函数的正确的详细介绍和示例:

+

函数定义: +

cluster(data, clustername, size, method = c("srswor", "srswr", "poisson", "systematic"), pik, description = FALSE)
+

+

参数: +- data:要进行抽样的数据集。 +- clustername:指定数据集中的聚类变量,用于定义聚类抽样单元。 +- size:指定每个聚类抽样单元中的样本大小。 +- method:可选参数,指定抽样方法。默认为"srswor",表示简单随机有放回抽样(SRSWOR)。还可以选择"srswr"(简单随机无放回抽样)、"poisson"(泊松抽样)或 "systematic"(系统抽样)。 +- pik:可选参数,用于指定抽样概率。当使用泊松抽样方法时,可以通过pik参数指定每个聚类抽样单元的概率。 +- description:可选参数,逻辑值,表示是否返回抽样设计的描述信息。

+

示例: +以下是使用cluster()函数创建聚类抽样设计的示例:

+
library(sampling)
+
+# 示例:聚类抽样设计
+data(survey)
+
+# 创建聚类抽样设计
+cluster_design <- cluster(data = survey, clustername = "PSU", size = 2, method = "srswor")
+
+# 打印聚类抽样设计
+print(cluster_design)
+
+

在示例中,我们首先加载sampling包使用library(sampling)。然后,我们使用内置的数据集survey,该数据集包含了关于调查的信息。

+

接下来,我们使用cluster()函数创建聚类抽样设计。我们指定了要进行抽样的数据集为survey,聚类变量为"PSU",每个聚类抽样单元的样本大小为2,抽样方法为简单随机有放回抽样(SRSWOR)。

+

通过打印cluster_design,我们可以看到生成的聚类抽样设计的结果。

+

请注意,cluster()函数和聚类操作无关,它用于创建聚类抽样设计,根据指定的聚类标识和大小生成样本。如果您对聚类操作感兴趣,可以考虑使用其他包(例如dplyr)中的聚类函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-scales/index.html b/R/other packages/package-scales/index.html new file mode 100644 index 00000000..5c0d4908 --- /dev/null +++ b/R/other packages/package-scales/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package scales - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package scales

+ +

cut_width()## cut_width() +^8b9777 +在 R 语言中,cut_width() 函数属于 scales 包,用于将连续型的变量分成指定宽度的区间。这个函数常用于绘图中,以便更好地展示数据的分布。返回因子型变量。

+

以下是 cut_width() 函数的基本信息:

+

所属包: scales

+

定义: +

scales::cut_width(x, width, boundary = 0, labels = NULL, include.lowest = FALSE, right = TRUE)
+

+

参数介绍: +- x:要被切割的连续型变量

+
    +
  • +

    width:每个区间的宽度

    +
  • +
  • +

    boundary第一个区间的起始值

    +
  • +
  • labels:可选,区间标签。
  • +
  • include.lowest:是否将第一个区间的左边界包含在内。
  • +
  • right:是否包含右边界。
  • +
+

功能: +将连续型的变量 x 分成指定宽度的区间。

+

举例: +

library(scales)
+
+# 创建一个连续型的变量
+values <- c(1, 5, 8, 12, 15, 20)
+
+# 使用 cut_width() 将变量分成宽度为 5 的区间
+cut_result <- cut_width(values, width = 5)
+
+# 打印结果
+print(cut_result)
+

+

输出: +

[1] [0,5] [0,5] [5,10] [10,15] [15,20] [15,20]
+Levels: [0,5] < [5,10] < [10,15] < [15,20]
+

+

在这个例子中,cut_width() 函数将连续型变量 values 分成了宽度为 5 的区间。结果是一个带有区间标签的因子变量。每个区间表示为 [a, b],表示区间的左闭右开区间。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-skimr/index.html b/R/other packages/package-skimr/index.html new file mode 100644 index 00000000..c0749267 --- /dev/null +++ b/R/other packages/package-skimr/index.html @@ -0,0 +1,1577 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package skimr - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package skimr

+ +

skim()

+

^4ba0bb +得到三张更详细的统计表: +1, +Pasted image 20231227125312

+

2, +Pasted image 20231227125256

+

3, +Pasted image 20231227125205

+

skim() 函数属于 skimr 包,用于生成数据框的摘要统计信息。以下是关于 skim() 函数的基本信息:

+

skim 函数概述:

+

功能: 生成数据框的摘要统计信息。

+

所属包: skim() 函数属于 skimr 包。

+

定义: +

skim(x, ...)
+

+

参数介绍:

+
    +
  • +

    x 要摘要的数据框、数据集或变量。

    +
  • +
  • +

    ... 其他参数,用于设置摘要的选项。

    +
  • +
+

示例:

+
# 安装并加载skimr包
+install.packages("skimr")
+library(skimr)
+
+# 生成数据框
+data <- data.frame(
+  ID = 1:10,
+  Age = c(25, 30, 22, 35, 28, 40, 33, 29, 26, 31),
+  Salary = c(50000, 60000, 45000, 70000, 55000, 80000, 65000, 58000, 52000, 61000),
+  Gender = c("Male", "Female", "Male", "Male", "Female", "Male", "Female", "Female", "Male", "Female")
+)
+
+# 生成数据摘要
+summary_result <- skim(data)
+
+# 显示摘要信息
+print(summary_result)
+
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-stargazar/index.html b/R/other packages/package-stargazar/index.html new file mode 100644 index 00000000..7655cf3a --- /dev/null +++ b/R/other packages/package-stargazar/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package stargazar - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Package stargazar

+ +

用户图片输出

+

在R语言中,stargazer包是一个用于生成统计模型结果的漂亮表格的工具包。它可以将各种统计模型的结果输出为格式化的表格,以便于展示和分享。 +stargazer包中的函数可以根据其功能进行分类,下面是一些常用的函数和其功能分类: +1. 模型输出函数: + - stargazer(): 将一个或多个模型的结果输出为表格形式。 + - screenreg(): 在R控制台上直接显示一个或多个模型的结果。 +2. 模型设置函数: + - title(): 设置输出表格的标题。 + - label(): 为模型结果添加标签。 + - omit(): 指定要忽略的模型结果的某些部分。 +3. 格式控制函数: + - type = "text": 输出为文本格式的表格。 + - type = "html": 输出为HTML格式的表格。 + - type = "latex": 输出为LaTeX格式的表格。 + - digits =: 控制数字的显示精度。 + - style =: 设置表格的样式。 +4. 模型选择函数: + - out参数: 指定要输出的模型结果。 + - order参数: 指定输出的模型结果的顺序。 + - column.labels参数: 自定义列标签。 +这些函数提供了灵活的选项和参数,以满足不同的需求,例如定制表格样式、选择特定模型输出、设置标签等。 +请注意,以上列出的函数并不详尽,stargazer包还提供了其他功能和选项。建议查阅stargazer包的官方文档或使用?命令在R中获取更详细的帮助文档,以了解更多关于stargazer包函数的信息。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/other packages/package-stats/index.html b/R/other packages/package-stats/index.html new file mode 100644 index 00000000..3299ba60 --- /dev/null +++ b/R/other packages/package-stats/index.html @@ -0,0 +1,1754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Package stats - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + + + + + + +

Package stats

+ +

stats::prop.test()

+

^26daec

+

在R语言中,prop.test()函数用于进行两个比例之间的假设检验。

+

# 创建观测数据
+x <- c(50, 70)  # 成功的观测数
+n <- c(100, 100)  # 总的观测数
+
+# 进行比例假设检验
+result <- prop.test(x, n)
+
+# 输出结果
+print(result)
+
+以下是打印出的内容示例: +
    2-sample test for equality of proportions with continuity correction
+
+data:  x out of n
+X-squared = 0.24752, df = 1, p-value = 0.6188
+alternative hypothesis: two.sided
+95 percent confidence interval:
+ -0.1562211  0.2562211
+sample estimates:
+prop 1 prop 2 
+   0.5    0.7
+

+

函数定义: +

prop.test(x, n, p = NULL, alternative = "two.sided", conf.level = 0.95, correct = TRUE)
+

+

参数: +- x:一个包含两个水平的向量或矩阵,表示成功的观测数。

+
    +
  • +

    n:一个包含两个水平的向量或矩阵,表示总的观测数。

    +
  • +
  • +

    p:一个包含两个水平的向量或矩阵,表示预期的比例。如果不提供,则使用样本的比例。

    +
  • +
  • +

    alternative:可选参数,表示备择假设的类型。可以是"two.sided"(默认值)、"less"或"greater"。

    +
  • +
  • +

    conf.level:可选参数,表示置信水平。默认值为0.95,表示95%的置信水平。

    +
  • +
  • +

    correct:可选参数,表示是否进行修正。默认值为TRUE,表示进行连续性修正

    +
  • +
+

需要注意的是,prop.test()函数用于比较两个比例之间的差异,并进行假设检验。它适用于独立样本或配对样本的情况。在使用函数时,请根据具体的问题设置参数和数据。

+

stats::var.test()

+

^e4a61d

+

在R语言中,var.test()函数是stats包中的函数,用于执行方差齐性检验。

+

函数定义: +

var.test(x, y, ratio = 1, alternative = "two.sided", ...)
+

+

参数: +- x:第一个数值向量或数据框。

+
    +
  • +

    y:可选参数,第二个数值向量或数据框。

    +
  • +
  • +

    ratio:可选参数,指定xy的方差比例。默认为1,表示方差相等。

    +
  • +
  • +

    alternative:可选参数,指定备择假设。可选有"two.sided"(默认,双侧)、"less"(单侧小于)和"greater"(单侧大于)。

    +
  • +
  • +

    ...:其他可选参数,用于控制方差齐性检验的计算。

    +
  • +
+

返回值: +函数返回一个包含方差齐性检验的结果的对象,其中包括统计量值、自由度和p值。

+

示例: +以下是使用var.test()函数执行方差齐性检验的示例:

+
# 创建示例数据向量
+group1 <- c(1, 2, 3, 4, 5)
+group2 <- c(2, 4, 6, 8, 10)
+
+# 执行方差齐性检验
+var_test_result <- var.test(group1, group2)
+
+# 查看检验结果
+print(var_test_result)
+
+

在上述示例中,我们首先创建了两个示例数据向量group1group2,分别包含了两个组的数据。

+

然后,我们使用var.test()函数对两个组的方差进行齐性检验。将group1group2作为参数传递给函数。

+

齐性检验的结果保存在var_test_result中。

+

最后,我们打印出检验结果,其中包括统计量值、自由度和p值。

+

以下是打印出的内容示例:

+
    F test to compare two variances
+
+data:  group1 and group2
+F = 0.25, num df = 4, denom df = 4, p-value = 0.7619
+alternative hypothesis: true ratio of variances is not equal to 1
+95 percent confidence interval:
+ 0.02730984 2.27916179
+sample estimates:
+ratio of variances
+          0.25
+
+

在上述输出中,我们可以看到执行方差齐性检验的结果,其中包括F统计量的值、自由度、p值以及置信区间。根据p值的大小,我们可以判断两个组的方差是否显著不同。在本例中,p值为0.7619,大于通常的显著性水平(如0.05),因此无法拒绝原假设,即两个组的方差可以认为是相等的。

+

stats::cor.test()

+

^0603c1

+

在 R 语言中,cor.test() 函数用于进行两个变量之间的相关性检验。这个函数通常属于基础的 stats 包,不需要额外导入。以下是 cor.test() 函数的基本信息:

+

功能: 执行两个变量之间的相关性检验

+

定义: +

cor.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), method = c("pearson", "kendall", "spearman"), exact = NULL, continuity = TRUE, ... )
+

+

参数介绍: +- x:第一个数值向量。 +- y:第二个数值向量。如果未指定,则默认使用 x。 +- alternative:替代假设的类型,可选值为 "two.sided"(双侧检验,默认)、"less"(小于检验)、"greater"(大于检验)。 +- method:计算相关性的方法,可选值为 "pearson"(皮尔逊相关系数, 默认)、"kendall"(肯德尔相关系数)、"spearman"(斯皮尔曼相关系数)。 +- exact:是否进行精确检验,通常在样本量较小时使用。 +- continuity:是否使用修正连续性校正,默认为 TRUE。 +- ...:其他参数,用于传递给底层的 cor.test 方法。

+

返回值: +返回一个包含相关性检验结果的列表。

+

举例: +

# 使用 cor.test() 进行相关性检验
+set.seed(123)
+x <- rnorm(100)
+y <- 2 * x + rnorm(100)
+
+cor_test_result <- cor.test(x, y, method = "pearson", alternative = "two.sided")
+
+# 打印结果
+print(cor_test_result)
+

+

输出: +

    Pearson's product-moment correlation
+
+data:  x and y
+t = 22.656, df = 98, p-value < 2.2e-16
+alternative hypothesis: true correlation is not equal to 0
+95 percent confidence interval:
+ 0.8933621 0.9569031
+sample estimates:
+      cor 
+0.9291175 
+

+

在这个例子中,cor.test(x, y, method = "pearson", alternative = "two.sided") 使用 cor.test() 函数进行皮尔逊相关性检验。相关性检验的结果包括 t 统计量、自由度、p 值、替代假设、95% 置信区间以及相关性的点估计。

+

stats::bartlett.test()

+

^ca9b41

+

功能: bartlett.test()函数用于执行Bartlett's test(巴特利特检验),检验多个组的方差是否相等。这个检验通常用于方差分析(ANOVA)等统计方法,因为这些方法在假设组内方差相等的情况下更为有效。

+

所属包: bartlett.test函数属于stats包,这是R语言的基础统计包,通常默认加载。

+

定义: +

bartlett.test(formula, data, subset, na.action)
+

+

参数介绍:

+
    +
  • +

    formula 一个公式,通常表示为response ~ group,其中response是数值型变量,而group是分组变量。

    +
  • +
  • +

    data 包含相关变量的数据框。

    +
  • +
  • +

    subset 可选参数,用于指定一个子集进行分析。

    +
  • +
  • +

    na.action 一个函数,用于处理缺失值。

    +
  • +
+

示例:

+
# 创建三个组的数据(示例数据)
+group1 <- c(23, 25, 28, 30, 32)
+group2 <- c(18, 20, 24, 28, 30)
+group3 <- c(22, 24, 26, 28, 30)
+
+# 创建数据框
+data <- data.frame(
+  Group = rep(c("Group1", "Group2", "Group3"), each = 5),
+  Value = c(group1, group2, group3)
+)
+
+# 执行Bartlett's test
+result <- bartlett.test(Value ~ Group, data = data)
+
+# 显示结果
+print(result)
+
+

输出:

+

示例中的输出结果将包含Bartlett's test的统计量(Bartlett's K-squared)、自由度(df)和p值(p-value)。具体输出信息将类似于:

+
Bartlett test of homogeneity of variances
+           Df = 2 
+           Chisquare = 0.55071 
+           Pr(>Chisq) = 0.7595
+
+

这个输出提供了Bartlett's test的统计量、自由度以及p值。在这个示例中,你可以查看p值来判断是否拒绝了组内方差相等的假设。

+

stats::AIC()

+

^3db05b

+

在 R 语言中,AIC() 函数通常属于 stats 包,用于计算模型的赤池信息准则(AIC,Akaike Information Criterion)。AIC是模型选择的一个常用指标,它考虑了模型的拟合优度和模型的复杂性,用于在多个模型中进行比较。 +功能: 计算模型的赤池信息准则。

+

定义: +

AIC(object, ..., k = 2)
+

+

参数介绍: +- object:一个拟合的模型对象。 +- ...:其他参数,用于传递给底层的 AIC() 方法。 +- k:AIC中的惩罚项,通常为2。可以根据需要修改。

+

返回值: +返回一个包含AIC值的数字。

+

举例: +

# 使用 AIC() 计算赤池信息准则
+# 假设有一个线性回归模型
+model <- lm(mpg ~ wt + hp + qsec, data = mtcars)
+
+# 计算赤池信息准则
+aic_value <- AIC(model)
+
+# 打印结果
+print(aic_value)
+

+

输出: +

[1] 171.7134
+

+

在这个例子中,AIC(model) 使用 stats 包的 AIC() 函数计算了线性回归模型的赤池信息准则。AIC的值越小表示模型越好,可以用于比较不同模型的拟合优度和复杂性。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/readr/read_csv()/index.html b/R/readr/read_csv()/index.html new file mode 100644 index 00000000..28d1beae --- /dev/null +++ b/R/readr/read_csv()/index.html @@ -0,0 +1,1541 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Read csv() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Read csv()

+ +

readr包中的一个函数,用于读取逗号分隔的文本文件(CSV格式)。它是readr包中最常用的函数之一,具有高效和快速读取大型数据集的能力。 +

read_csv(file, col_names = TRUE, col_types = NULL, skip = 0, na = c("", "NA"), ...)
+
+参数说明: +- file:要读取的CSV文件的路径或URL。

+
    +
  • +

    sep:设置数据分隔符,默认应该是空格。

    +
  • +
  • +

    col_names:一个逻辑值,指示是否将文件的第一行作为列名。默认为TRUE

    +
  • +
  • +

    col_types:一个列类型的字符向量,用于指定每列的数据类型。默认为NULL,表示自动推断数据类型。

    +
  • +
  • +

    skip:要跳过的行数。默认为0,表示不跳过任何行。

    +
  • +
+

1, 跳过第一行,以便正确识别列标题。

+
    +
  • +

    na:一个字符向量,用于指定要解析为缺失值的字符串。默认为c("", "NA"),表示空字符串和"NA"被解析为缺失值

    +
  • +
  • +

    ...:其他参数,用于进一步控制数据读取过程,如localecomment等。

    +

    show_col_types = FALSE 回避错误提示信息?

    +
  • +
+

以下是一个示例,展示了如何使用read_csv()函数读取CSV文件: +

library(readr)
+
+data <- read_csv("data.csv")
+

+

上述代码将从名为"data.csv"的文件中读取数据,并将结果存储在名为"data"的数据框中。 +read_csv()函数还提供了许多其他选项,使您可以更精确地控制数据的读取过程。您可以使用read_csv命令在R中获取有关函数的详细帮助文档,其中包含了更多参数和示例。

+

常见错误

+

读取CSV文件并存储为数据框 +data <- read.csv("your_file.csv")

+

如果CSV文件使用了分号作为分隔符,可以指定sep参数 +data <- read.csv("your_file.csv", sep = ";")

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/readr/read_excel()/index.html b/R/readr/read_excel()/index.html new file mode 100644 index 00000000..3935fb22 --- /dev/null +++ b/R/readr/read_excel()/index.html @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Read excel() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Read excel()

+ +

readxl包中的一个函数,用于读取Excel文件。它提供了一种高效和简便的方式来将Excel文件中的数据加载到R中进行进一步的分析和处理。 +以下是read_excel()函数的基本语法: +

read_excel(path, sheet = 1, range = NULL, col_names = TRUE, col_types = NULL, na = "", skip = 0, ...)
+
+参数说明: +- path:要读取的Excel文件的路径或URL。 +- sheet:要读取的工作表的索引或名称。默认为1,表示第一个工作表。 +- range:要读取的单元格范围。默认为NULL,表示读取所有数据。 +- col_names:一个逻辑值,指示是否将文件的第一行作为列名。默认为TRUE。 +- col_types:一个列类型的字符向量,用于指定每列的数据类型。默认为NULL,表示自动推断数据类型。 +- na:一个字符向量,用于指定要解析为缺失值的字符串。默认为空字符串。 +- skip:要跳过的行数。默认为0,表示不跳过任何行。 +- ...:其他参数,用于进一步控制数据的读取过程,如localeguess_max等。 +以下是一个示例,展示了如何使用read_excel()函数读取Excel文件: +
library(readr)
+
+data <- read_excel("data.xlsx", sheet = 1)
+
+上述代码将从名为"data.xlsx"的文件的第一个工作表中读取数据,并将结果存储在名为"data"的数据框中。 +read_excel()函数支持读取多个工作表、指定特定的单元格范围、指定列类型和解析选项等。您可以使用?read_excel命令在R中获取有关函数的详细帮助文档,其中包含了更多参数和示例。 +请注意,在使用read_excel()函数之前,您需要安装并加载readxl包,因为read_excel()函数是readxl包中的一部分。您可以使用以下命令安装readxl包: +
install.packages("readxl")
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/readr/readxl\357\274\232\357\274\232read_excel()/index.html" "b/R/readr/readxl\357\274\232\357\274\232read_excel()/index.html" new file mode 100644 index 00000000..ad9e89de --- /dev/null +++ "b/R/readr/readxl\357\274\232\357\274\232read_excel()/index.html" @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Readxl::read excel() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Readxl::read excel()

+ +

readxl包中的一个函数,用于读取Excel文件。它提供了一种高效和简便的方式来将Excel文件中的数据加载到R中进行进一步的分析和处理。 +以下是read_excel()函数的基本语法: +

read_excel(path, sheet = 1, range = NULL, col_names = TRUE, col_types = NULL, na = "", skip = 0, ...)
+
+参数说明: +- path:要读取的Excel文件的路径或URL。 +- sheet:要读取的工作表的索引或名称。默认为1,表示第一个工作表。 +- range:要读取的单元格范围。默认为NULL,表示读取所有数据。 +- col_names:一个逻辑值,指示是否将文件的第一行作为列名。默认为TRUE。 +- col_types:一个列类型的字符向量,用于指定每列的数据类型。默认为NULL,表示自动推断数据类型。 +- na:一个字符向量,用于指定要解析为缺失值的字符串。默认为空字符串。 +- skip:要跳过的行数。默认为0,表示不跳过任何行。 +- ...:其他参数,用于进一步控制数据的读取过程,如localeguess_max等。 +以下是一个示例,展示了如何使用read_excel()函数读取Excel文件: +
library(readr)
+
+data <- read_excel("data.xlsx", sheet = 1)
+
+上述代码将从名为"data.xlsx"的文件的第一个工作表中读取数据,并将结果存储在名为"data"的数据框中。 +read_excel()函数支持读取多个工作表、指定特定的单元格范围、指定列类型和解析选项等。您可以使用?read_excel命令在R中获取有关函数的详细帮助文档,其中包含了更多参数和示例。 +请注意,在使用read_excel()函数之前,您需要安装并加载readxl包,因为read_excel()函数是readxl包中的一部分。您可以使用以下命令安装readxl包: +
install.packages("readxl")
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/readr/scan()/index.html b/R/readr/scan()/index.html new file mode 100644 index 00000000..e5843596 --- /dev/null +++ b/R/readr/scan()/index.html @@ -0,0 +1,1538 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Scan() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Scan()

+ +

在R语言中,scan()函数是用于从文件或用户输入中读取数据的基本函数之一。它允许您逐行读取数据,并将其存储在R对象中。

+

函数定义: +

scan(file = "", what = double(), nmax = -1, n = -1, sep = "", quiet = FALSE, fill = FALSE, strip.white = FALSE, skip = 0, multi.line = TRUE, comment.char = "", allowEscapes = FALSE, flush = FALSE, encoding = getOption("encoding"), skipNul = FALSE)
+

+

参数: +- file:一个包含数据的文件名或URL,如果为空字符串或未指定,则从标准输入读取数据。

+
    +
  • +

    what:一个用于指定读取数据的类型的R对象。默认为double(),即读取数值类型。 +what = character(),输出解释为字符型数据,而不是默认的数值型数据

    +
  • +
  • +

    nmax:控制读取的最大元素数量,默认为-1表示读取所有元素。

    +
  • +
  • +

    n:控制读取的行数,默认为-1表示读取所有行。

    +
  • +
  • +

    sep:指定数据的分隔符,默认为空格字符。

    +
  • +
  • +

    quiet:一个逻辑值,控制是否显示读取进度信息。默认为FALSE,即显示进度信息。

    +
  • +
  • +

    fill:一个逻辑值,控制是否填充不完整的行。默认为FALSE,即不填充不完整的行。

    +
  • +
  • +

    strip.white:一个逻辑值,控制是否去除元素周围的额外空白字符。默认为FALSE,即不去除额外空白字符。

    +
  • +
  • +

    skip:一个整数值,跳过读取的起始行数。默认为0,即不跳过任何行。

    +
  • +
  • +

    multi.line:一个逻辑值,控制是否允许跨行读取数据。默认为TRUE,即允许跨行读取数据。

    +
  • +
  • +

    comment.char:一个字符,用于指定注释符号。默认为空字符串,表示没有注释符号。

    +
  • +
  • +

    allowEscapes:一个逻辑值,控制是否允许在字符串中使用转义字符。默认为FALSE,即不允许使用转义字符。

    +
  • +
  • +

    flush:一个逻辑值,控制是否刷新输入缓冲区。默认为FALSE,即不刷新输入缓冲区。

    +
  • +
  • +

    encoding:一个字符,用于指定文件的编码方式。默认为getOption("encoding"),即使用系统默认编码方式。

    +
  • +
  • +

    skipNul:一个逻辑值,控制是否跳过空字符。默认为FALSE,即不跳过空字符。

    +
  • +
+

下面是一个示例:

+
# 从文件中读取数据
+data <- scan("data.txt", what = character())
+
+# 从用户输入中读取数据
+data <- scan(file = "", what = character())
+
+

在上面的示例中,我们使用scan()函数从文件或用户输入中读取数据。在第一个示例中,我们从名为"data.txt"的文件中读取数据,并将其存储在data对象中。在第二个示例中,我们从用户输入中读取数据,并将其存储在data对象中。

+

通过使用适当的参数配置,您可以根据需要灵活地使用scan()函数来读取数据。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/readr/write_csv()/index.html b/R/readr/write_csv()/index.html new file mode 100644 index 00000000..952b73c4 --- /dev/null +++ b/R/readr/write_csv()/index.html @@ -0,0 +1,1500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Write csv() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Write csv()

+ +

readr包中的一个函数,用于将数据以逗号分隔的形式写入CSV文件。它提供了一种简单而高效的方法,将R中的数据保存为CSV文件,以便在其他程序中使用或进行数据交换。 +以下是write_csv()函数的基本语法: +

write_csv(x, path, col_names = !is.null(names(x)), ...)
+
+参数说明: +- x:要写入CSV文件的数据,可以是数据框(data frame)、矩阵(matrix)或其他类似结构。 +- path:CSV文件的路径,指定文件的位置和名称。 +- col_names:一个逻辑值,指示是否在输出的CSV文件中包含列名。默认情况下,如果数据对象x有列名,则将列名写入文件。 +- ...:其他参数,用于进一步控制写入CSV文件的选项,如quotena等。

+

以下是一个示例,展示了如何使用write_csv()函数将数据写入CSV文件: +

library(readr)
+
+data <- data.frame(
+  Name = c("John", "Alice", "Bob"),
+  Age = c(25, 30, 35),
+  Salary = c(50000, 60000, 70000)
+)
+
+write_csv(data, "data.csv")
+

+

上述代码将名为"data"的数据框写入到名为"data.csv"的CSV文件中。

+

write_csv()函数还提供了其他选项,如控制引号的使用、处理缺失值等。您可以使用?write_csv命令在R中获取有关函数的详细帮助文档,其中包含了更多参数和示例。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/attachments/Pasted image 20231123193620.png b/R/stringr/attachments/Pasted image 20231123193620.png new file mode 100644 index 00000000..6f02066a Binary files /dev/null and b/R/stringr/attachments/Pasted image 20231123193620.png differ diff --git a/R/stringr/attachments/Pasted image 20231125210825.png b/R/stringr/attachments/Pasted image 20231125210825.png new file mode 100644 index 00000000..d3779d27 Binary files /dev/null and b/R/stringr/attachments/Pasted image 20231125210825.png differ diff --git a/R/stringr/identical()/index.html b/R/stringr/identical()/index.html new file mode 100644 index 00000000..4c9deac9 --- /dev/null +++ b/R/stringr/identical()/index.html @@ -0,0 +1,1553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Identical() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Identical()

+ +

identical() 函数是 R 中用于比较两个对象是否完全相同的函数。以下是关于 identical() 函数的一些基本信息:

+

identical 函数概述:

+

功能: 检查两个对象是否完全相同。

+

定义: +

identical(x, y)
+

+

参数介绍:

+
    +
  • xy 要比较的两个对象。
  • +
+

示例:

+
# 创建两个相同的向量
+vec1 <- c(1, 2, 3)
+vec2 <- c(1, 2, 3)
+
+# 使用 identical 检查两个向量是否相同
+result <- identical(vec1, vec2)
+
+# 显示结果
+print(result)
+
+

输出:

+
[1] TRUE
+
+

在上述示例中,identical() 函数用于检查两个向量 vec1vec2 是否完全相同。输出结果将是 TRUE,表示这两个向量是相同的。

+

请注意,identical() 不仅检查值是否相同,还检查对象的属性和结构是否相同。这使得它与 \== 操作符有所不同,后者只检查值是否相等。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_c()/index.html b/R/stringr/str_c()/index.html new file mode 100644 index 00000000..beb84004 --- /dev/null +++ b/R/stringr/str_c()/index.html @@ -0,0 +1,1538 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str c() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str c()

+ +

在R语言中,str_c()函数是字符串处理包stringr中的一个函数,用于将多个字符串连接起来

+
# 加载 stringr 包
+library(stringr)
+
+# 基本字符串连接
+str_c("Hello", "World") # 输出 "HelloWorld"
+str_c("Hello", "World"sep = "") # 输出 "HelloWorld"
+
+# 使用分隔符连接字符串
+str_c("Hello", "World", sep = " ") # 输出 "Hello World"
+
+
+
+# 连接多个字符串
+vector <- c("apple", "banana", "cherry")
+str_c(vector, sep = "-") # 输出 [1] "apple"  "banana" "cherry"
+
+# 连接多个字符串
+vector <- c("apple", "banana", "cherry")
+str_c("前面", vector, "后面", sep = "-") # [1] "前面-apple-后面"  "前面-banana-后面" "前面-cherry-后面"
+
+
+
+# 将字符串向量连接成单个字符串
+vector <- c("apple", "banana", "cherry")
+str_c(vector, collapse = ", ") # 输出 "apple, banana, cherry"
+
+
+
+# 结合使用 sep 和 collapse
+days <- c("Monday", "Tuesday", "Wednesday")
+str_c(days, sep = " & ", collapse = " | ") # 输出 "Monday | Tuesday | Wednesday"
+
+# 结合使用 sep 和 collapse
+days <- c("Monday", "Tuesday", "Wednesday")
+str_c("前面", days, "后面", sep = " & ", collapse = " | ")
+# [1] "前面 & Monday & 后面 | 前面 & Tuesday & 后面 | 前面 & Wednesday & 后面"
+
+
+
+# 连接数字和字符串(数字会自动转换成字符串)
+str_c("The answer is ", 42) # 输出 "The answer is 42"
+
+

函数定义: +

str_c(..., sep = "", collapse = NULL)
+

+

参数

+
    +
  • +

    ...:一个或多个字符串向量。你可以传递任意数量的字符串向量给 str_c(),它们将会按顺序被连接。

    +
  • +
  • +

    sep:分隔符,用于分隔要连接的字符串。默认为空字符串 "",表示没有分隔符。

    +
  • +
+

字符串元素+连接的对象

+
    +
  • collapse:如果不是 NULL,则会将结果向量折叠成一个单一的字符串,使用 collapse 参数指定的值作为分隔符。
  • +
+

将字符串向量中的元素合并为一个字符串

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_conv()/index.html b/R/stringr/str_conv()/index.html new file mode 100644 index 00000000..b8344f7b --- /dev/null +++ b/R/stringr/str_conv()/index.html @@ -0,0 +1,1506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str conv() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str conv()

+ +

在 R 语言中,并没有名为 str_conv() 的内置函数。也许你可能是想到了 iconv() 函数,该函数用于进行字符编码的转换

+

以下是 iconv() 函数的基本信息:

+

所属包: 无需加载包,是 R 的基础函数。

+

定义: +

iconv(x, from = "", to = "", sub = NA, mark = FALSE)
+

+

参数介绍: +- x:要转换的字符向量或表达式。 +- from:源编码,要转换的字符的当前编码。 +- to:目标编码,希望得到的字符的编码。 +- sub:替换非法字符的方式。可以是一个字符向量或字符串,或者一个函数。 +- mark:逻辑值,表示是否在结果中标记非法字符。

+

功能: +进行字符编码的转换。

+

举例: +

# 创建一个包含非 ASCII 字符的字符向量
+text <- c("héllo", "wörld", "你好")
+
+# 使用 iconv() 进行字符编码转换
+converted_text <- iconv(text, from = "UTF-8", to = "latin1")
+
+# 打印结果
+print(converted_text)
+

+

输出: +

[1] "h\xe9llo" "w\xf6rld" "浣犲ソ"
+

+

在这个例子中,iconv() 函数被用于将包含非 ASCII 字符的字符向量从 UTF-8 编码转换为 Latin1 编码。输出中的每个字符串都被相应地转换为新的编码。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_count()/index.html b/R/stringr/str_count()/index.html new file mode 100644 index 00000000..e5b4c0f9 --- /dev/null +++ b/R/stringr/str_count()/index.html @@ -0,0 +1,1555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str count() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str count()

+ +

在R语言中,str_count()函数是字符串处理包stringr中的一个函数,用于计算字符串中指定模式的出现次数。 +函数定义: +

str_count(string, pattern)
+
+参数: +- string:一个字符向量,包含要计算的字符串。

+
    +
  • pattern:一个字符向量,包含要匹配的模式。
  • +
+
library(stringr)
+
+# 计算字符串中指定模式的出现次数
+count1 <- str_count("Hello World", pattern = "o")
+print(count1)  # 输出: 2
+
+count2 <- str_count("Hello World", pattern = "z")
+print(count2)  # 输出: 0
+
+

在上面的示例中,我们首先加载了stringr包,然后使用str_count()函数计算字符串中指定模式的出现次数。

+

在第一个示例中,我们计算字符串"Hello World"中模式"o"的出现次数。由于字符串中有两个"o"字符,因此结果为2。

+

在第二个示例中,我们计算字符串"Hello World"中模式"z"的出现次数。由于字符串中没有"z"字符,因此结果为0。

+

通过使用str_count()函数,您可以方便地计算字符串中指定模式的出现次数,从而用于统计和分析字符串数据。

+

匹配不会重叠

+

2次而非3次

+
str_count("abababa", "aba")
+#> [1] 2
+
+

字符串向量

+

当处理字符串向量时,str_count() 函数可以用于计算每个字符串中指定模式的出现次数。以下是一个示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 创建一个字符串向量
+text_vector <- c("apple123", "banana456", "orange789", "grape12345")
+
+# 计数每个字符串中数字的出现次数
+count_numbers_vector <- str_count(text_vector, "\\d")
+
+# 显示结果
+print(count_numbers_vector)
+
+

输出结果将是:

+
[1] 3 3 3 5
+
+

这表示在每个字符串中,数字的出现次数分别为 3、3、3、5。在这个例子中,正则表达式 \\d 匹配数字,因此 str_count() 返回了每个字符串中数字的出现次数。你可以根据需要调整模式以匹配不同的字符或模式。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_detect()/index.html b/R/stringr/str_detect()/index.html new file mode 100644 index 00000000..a3cbf647 --- /dev/null +++ b/R/stringr/str_detect()/index.html @@ -0,0 +1,1546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str detect() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str detect()

+ +

在R语言中,str_detect()函数是字符串处理包stringr中的一个函数,用于检测字符串中是否存在指定的模式

+
library(stringr)
+
+# 检测字符串中是否存在指定模式
+result1 <- str_detect("Hello World", pattern = "o")
+print(result1)  # 输出: TRUE
+
+result2 <- str_detect("Hello World", pattern = "z")
+print(result2)  # 输出: FALSE
+
+
+# 字符串向量
+x <- c("apple", "banana", "pear")
+str_detect(x, "e")
+#> [1] TRUE FALSE TRUE
+
+
+# 找出至少包含一个元音字母的所有单词,然后取反
+no_vowels_1 <- !str_detect(words, "[aeiou]")
+# 找出仅包含辅音字母(非元音字母)的所有单词
+no_vowels_2 <- str_detect(words, "^[^aeiou]+$")
+identical(no_vowels_1, no_vowels_2)
+#> [1] TRUE
+
+

函数定义: +

str_detect(string, pattern)
+
+参数: +- string:一个字符向量,包含要检测的字符串。

+
    +
  • pattern:一个字符向量,包含要匹配的模式。
  • +
+

在上面的示例中,我们首先加载了stringr包,然后使用str_detect()函数检测字符串中是否存在指定的模式。

+

在第一个示例中,我们检测字符串"Hello World"中是否存在模式"o"。由于字符串中有两个"o"字符,因此结果为TRUE

+

在第二个示例中,我们检测字符串"Hello World"中是否存在模式"z"。由于字符串中没有"z"字符,因此结果为FALSE

+

通过使用str_detect()函数,您可以方便地检测字符串中是否存在指定的模式,从而进行模式匹配和条件判断等操作。

+

str_detect()的妙用

+

其中words是字符串向量。只要涉及到布尔值的筛选都能用到! +

words[str_detect(words, "x$")]
+#> [1] "box" "sex" "six" "tax"
+str_subset(words, "x$")
+#> [1] "box" "sex" "six" "tax"
+
+df %>%
+  filter(str_detect(words, "x$"))
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_dup()/index.html b/R/stringr/str_dup()/index.html new file mode 100644 index 00000000..c38209c5 --- /dev/null +++ b/R/stringr/str_dup()/index.html @@ -0,0 +1,1560 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str dup() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str dup()

+ +

这个函数用于复制字符串。以下是 str_dup() 函数的一些基本信息:

+

str_dup 函数概述:

+

功能: 复制字符串。

+

所属包: stringi 包。

+

定义: +

stringi::stri_dup(str, times = 1)
+

+

参数介绍:

+
    +
  • +

    str复制的字符串

    +
  • +
  • +

    times 复制的次数,默认为 1。

    +
  • +
+

示例:

+
# 安装并加载stringi包
+install.packages("stringi")
+library(stringi)
+
+# 使用str_dup复制字符串
+original_str <- "abc"
+duplicated_str <- stri_dup(original_str, times = 3)
+
+# 显示结果
+print(duplicated_str)
+
+

输出:

+

在上述示例中,stri_dup() 函数用于复制字符串 "abc",并指定复制的次数为 3。输出结果将是:

+
[1] "abcabcabc"
+
+

这表示成功复制了字符串 "abc" 三次。请确保在使用此函数之前安装并加载 stringi 包。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_extract()/index.html b/R/stringr/str_extract()/index.html new file mode 100644 index 00000000..ad503ecc --- /dev/null +++ b/R/stringr/str_extract()/index.html @@ -0,0 +1,1510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str extract() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str extract()

+ +

在R语言中,str_extract()函数提取匹配上的第一个内容,匹配到就输出,后面相同的内容不管。

+
library(stringr)
+
+# 从字符串中提取与指定模式匹配的部分
+extract1 <- str_extract("Hello World", pattern = "[aeiou]")
+print(extract1) 
+输出: "e"
+
+extract1 <- str_extract("Hello World e e e", pattern = "[aeiou]")
+print(extract1) 
+输出: "e"
+
+extract2 <- str_extract("Hello World", pattern = "\\d+")
+print(extract2)  
+输出: NA  # 空字符向量(`character(0)`) 
+
+extract3 <- str_extract("Hell3 World45", pattern = "\\d+")
+print(extract2)  
+输出: [1] "3"
+
+

函数定义: +

str_extract(string, pattern)
+

+

参数

+
    +
  • +

    string:字符串集,包含要从中提取部分的字符串。

    +
  • +
  • +

    pattern:查找目标字符串,包含要匹配的模式

    +
  • +
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_extract_all/index.html b/R/stringr/str_extract_all/index.html new file mode 100644 index 00000000..b309d6e2 --- /dev/null +++ b/R/stringr/str_extract_all/index.html @@ -0,0 +1,1606 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str extract all - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + + + + + + +

Str extract all

+ +

在R语言中,str_extract_all() 函数属于 stringr 包,用于从字符串中提取满足指定正则表达式模式的所有匹配项。

+
text_vector <- c("apple123", "banana456", "orange789", "grape12345")
+
+str_extract_all(text_vector, "\\d")
+
+输出:
+[[1]]
+[1] "1" "2" "3"
+
+[[2]]
+[1] "4" "5" "6"
+
+[[3]]
+[1] "7" "8" "9"
+
+[[4]]
+[1] "1" "2" "3" "4" "5"
+
+str_extract_all(text_vector, "\\d", simplify = TRUE)
+
+输出:
+     [,1] [,2] [,3] [,4] [,5]
+[1,] "1"  "2"  "3"  ""   ""  
+[2,] "4"  "5"  "6"  ""   ""  
+[3,] "7"  "8"  "9"  ""   ""  
+[4,] "1"  "2"  "3"  "4"  "5"
+
+

所属包: str_extract_all() 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_extract_all(string, pattern, simplify = FALSE)
+

+

参数介绍:

+
    +
  • +

    string 要提取匹配项的字符串或字符向量。

    +
  • +
  • +

    pattern 一个正则表达式模式,用于匹配要提取的内容。

    +
  • +
  • +

    simplify 一个逻辑值,用于指定是否简化结果为矩阵,默认为 FALSE

    +
  • +
+

在上述示例中,str_extract_all() 函数用于从字符串向量中提取每个字符串中的数字。输出结果将是一个列表,每个元素都包含相应字符串中的所有匹配项。

+

这表示成功从每个字符串中提取了数字。如果设置了 simplify = TRUE,输出将被简化为一个矩阵。

+

其输出结果的列表元素是字符串向量

+

str_extract_all() 函数是 stringr 包中的函数,用于提取字符串中所有符合给定正则表达式的子串。它返回的是一个列表,其中每个元素都是一个字符向量,包含匹配到的所有子串。

+

具体而言,如果你有一个包含多个字符串的向量,对每个字符串应用 str_extract_all(),它将返回一个列表,其中每个元素是一个字符向量,包含匹配到的所有子串。

+

举例说明,假设有一个向量 text_vector,其中包含多个字符串,使用 str_extract_all() 后,你会得到一个列表,每个列表元素都是一个字符向量,包含匹配到的子串。

+
library(stringr)
+
+str_extract_all(v_txta, pattern = "[,.]")
+
+# result_list 是一个列表,每个元素是一个字符向量
+print(result_list)
+
+

Pasted image 20231125210825 +在这个例子中,result_list 的每个元素都是一个字符向量,包含了相应字符串中的单词。

+

character(0)???

+

character(0) 表示一个长度为0的字符向量,它具有以下性质:

+
    +
  1. +

    空向量: 它是一个空的字符向量,不包含任何字符。

    +
  2. +
  3. +

    表示缺失: 在某些情况下,character(0) 可以表示缺失的信息,即没有找到匹配或没有有效的结果。

    +
  4. +
  5. +

    结果为空: 在涉及字符匹配、提取或过滤等操作时,如果没有找到匹配项或符合条件的字符,结果可能是 character(0)

    +
  6. +
+

在处理数据时,理解和处理 character(0) 是很重要的,以确保对空结果的情况进行适当的处理。例如,可以使用条件语句检查结果是否为空,并采取相应的措施。

+

在逻辑运算中,character(0) 表示空字符向量,其与逻辑表达式的结果通常被视为逻辑假(FALSE)。这是因为在逻辑上,空向量被认为是假的。

+

举例说明:

+
# 示例:逻辑运算中的空字符向量
+empty_vector <- character(0)
+
+# 在逻辑表达式中,空向量被视为逻辑假(FALSE)
+result <- empty_vector == "some_value"
+print(result)
+# Output: logical(0), 表示逻辑假
+
+# 也可以使用length()函数检查向量的长度
+is_empty <- length(empty_vector) == 0
+print(is_empty)
+# Output: TRUE,表示向量为空
+
+

在上述示例中,empty_vector == "some_value" 的结果是 logical(0),表示逻辑假。而使用 length() 函数检查向量的长度,可以得知向量为空,即 is_emptyTRUE

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_flatten()/index.html b/R/stringr/str_flatten()/index.html new file mode 100644 index 00000000..6134642a --- /dev/null +++ b/R/stringr/str_flatten()/index.html @@ -0,0 +1,1548 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str flatten() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str flatten()

+ +

确实在 stringr 包中存在 str_flatten() 函数。将字符串向量连接成一个单一的字符串

+
# 使用 str_flatten() 函数连接字符串向量
+result <- str_flatten(c("hello", "world"), collapse = ", ")
+
+输出:
+[1] "hello, world"
+
+

定义: +

stringr::str_flatten(..., collapse = NULL)
+

+

参数介绍: +- ...:要连接的字符串向量。

+
    +
  • +

    collapse:String to insert between each piece. Defaults to ""

    +
  • +
  • +

    last:Optional string to use in place of the final separator.

    +
  • +
  • +

    na.rm:Remove missing values? If FALSE (the default), the result will be NA if any element of string is NA.

    +
  • +
+

在这个例子中,str_flatten() 函数被用于将两个字符串 "hello" 和 "world" 连接在一起,并在它们之间插入了逗号和空格,生成了字符串 "hello, world"。感谢纠正,希望这次能解决你的疑问。

+

str_c()和str_flatten()的区别

+

str_c()str_flatten() 是R语言中处理字符串的函数,它们都用于字符串的连接,但是用法和上下文略有不同。

+
    +
  1. str_c() 函数来源于stringr包,这是一个非常流行的字符串操作包。str_c() 用于将多个字符串向量连接在一起,它可以接收多个参数,并且可以指定分隔符。如果提供了分隔符,那么在连接时,分隔符将会被插入到每一对字符串之间。
  2. +
+

例如: +

library(stringr)
+str1 <- "Hello"
+str2 <- "World"
+result <- str_c(str1, str2, sep = ", ")
+print(result)
+# 输出: "Hello, World"
+

+
    +
  1. str_flatten() 函数通常与purrr包一起使用,尽管它也可以在其他上下文中单独使用。str_flatten() 主要用于将字符串列表或向量扁平化为单个字符串,并且可以指定分隔符。
  2. +
+

例如: +

library(stringr)
+str_vec <- c("Hello", "World")
+result <- str_flatten(str_vec, collapse = ", ")
+print(result)
+# 输出: "Hello, World"
+

+

简而言之,str_c() 更通用,可以连接任意数量的字符串向量,而 str_flatten() 主要用于将一个字符串列表或向量扁平化为一个字符串。在实际应用中,根据需要连接字符串的具体情况,可以选择使用这两个函数中的任意一个。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_flatten_comma()/index.html b/R/stringr/str_flatten_comma()/index.html new file mode 100644 index 00000000..a54c9a3d --- /dev/null +++ b/R/stringr/str_flatten_comma()/index.html @@ -0,0 +1,1490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str flatten comma() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str flatten comma()

+ +

str_flatten_comma()函数的功能是将字符串向量(character vector)中的元素使用逗号连接起来,并返回一个新的字符串

+

str_flatten_comma(string, last = NULL, na.rm = FALSE)
+
+参数介绍: +- x: 需要连接的字符串向量。

+
x <- c("A", "B", "C", "D")
+result <- str_flatten_comma(x)
+
+输出:
+"A, B, C, D"
+
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_glue()/index.html b/R/stringr/str_glue()/index.html new file mode 100644 index 00000000..32dca7d4 --- /dev/null +++ b/R/stringr/str_glue()/index.html @@ -0,0 +1,1516 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str glue() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str glue()

+ +

在 R 语言中,stringr 包中的 str_glue() 函数用于将变量的值插入到字符串模板中,生成新的字符串

+
library(stringr)
+
+# 使用 str_glue() 函数生成新的字符串
+name <- "John"
+age <- 30
+result <- str_glue("My name is {name} and I am {age} years old.")
+
+# 打印结果
+print(result)
+
+
+输出:
+[1] "My name is John and I am 30 years old."
+
+

定义: +

stringr::str_glue(..., .sep = "", .envir = parent.frame(), .open = "{", .close = "}")
+

+

参数介绍: +- ...:字符串模板,其中用花括号 {} 括起来的部分表示要插入的变量

+
# 类似python中的
+"插入的内容{}".format(i)
+
+
    +
  • +

    .sep:连接多个字符串模板时使用的分隔符,默认为空字符串。

    +
  • +
  • +

    .envir:用于解析变量的环境,默认为父环境。

    +
  • +
  • +

    .open:打开花括号的字符串,默认为 {

    +
  • +
  • +

    .close:关闭花括号的字符串,默认为 }

    +
  • +
+

在这个例子中,str_glue() 函数将变量 nameage 的值插入到字符串模板中,生成新的字符串 "My name is John and I am 30 years old."。花括号 {} 中的部分会被变量的值替换。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_glue_data()/index.html b/R/stringr/str_glue_data()/index.html new file mode 100644 index 00000000..68bb4a88 --- /dev/null +++ b/R/stringr/str_glue_data()/index.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str glue data() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str glue data()

+ +

str_glue_data()数据框中的列值插入到字符串模板中

+
# 创建一个数据框
+data <- data.frame(
+  name = c("John", "Jane", "Bob"),
+  age = c(30, 25, 35)
+)
+
+# 使用 str_glue_data() 函数将数据框的列值插入到字符串模板中
+result <- str_glue_data(data, "My name is {name} and I am {age} years old.")
+
+输出:
+[1] "My name is John and I am 30 years old."
+[2] "My name is Jane and I am 25 years old."
+[3] "My name is Bob and I am 35 years old."
+
+

定义: +

stringr::str_glue_data(data, ..., .sep = "")
+

+

参数介绍: +- data:数据框。

+
    +
  • +

    ...:要插入到模板中的变量。

    +
  • +
  • +

    .sep:可选,要在字符串之间插入的分隔符,默认为空字符串。

    +
  • +
+

在这个例子中,str_glue_data() 函数被用于将数据框 data 中的列值插入到字符串模板中,生成包含不同行信息的多个字符串。此函数是 stringr 包中用于字符串插值的功能之一。感谢纠正,希望这能解决你的疑问。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_length/index.html b/R/stringr/str_length/index.html new file mode 100644 index 00000000..c447d5e5 --- /dev/null +++ b/R/stringr/str_length/index.html @@ -0,0 +1,1551 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str length - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str length

+ +

在R语言中,str_length()函数属于stringr包,用于计算字符串的长度。以下是关于str_length()函数的一些基本信息:

+

str_length函数概述:

+

功能: 计算字符串的长度

+

所属包: str_length函数属于stringr包,可以通过tidyverse加载。

+

定义: +

str_length(string)
+

+

参数介绍:

+
    +
  • string 要计算长度的字符向量、字符串或因子。
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_length计算字符串的长度
+str_length("Hello, World!")
+
+

输出:

+

在上述示例中,str_length()函数用于计算字符串 "Hello, World!" 的长度。这个函数没有返回一个新的字符串,而是直接输出计算的长度。在这个例子中,输出结果将是:

+
[1] 13
+
+

这表示字符串 "Hello, World!" 的长度为13个字符。你可以用不同的字符串替换示例中的输入来进行测试。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_locate()/index.html b/R/stringr/str_locate()/index.html new file mode 100644 index 00000000..670dedef --- /dev/null +++ b/R/stringr/str_locate()/index.html @@ -0,0 +1,1563 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str locate() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str locate()

+ +

在 R 语言中,str_locate() 函数属于 stringr 包,用于定位字符串中指定模式的第一个匹配项的开始和结束位置。以下是关于 str_locate() 函数的基本信息:

+

str_locate 函数概述:

+

功能: 定位字符串中指定模式的第一个匹配项的开始和结束位置。

+

所属包: str_locate() 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_locate(string, pattern)
+

+

参数介绍:

+
    +
  • +

    string 要搜索的字符串。

    +
  • +
  • +

    pattern 一个正则表达式模式,用于匹配要定位的内容。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_locate定位字符串中的数字的位置
+text <- "abc123def456ghi789"
+
+# 定位第一个数字的位置
+location <- str_locate(text, "\\d")
+
+# 显示结果
+print(location)
+
+

输出:

+

在上述示例中,str_locate() 函数用于定位字符串 "abc123def456ghi789" 中第一个数字的位置。输出结果将是:

+
     start end
+[1,]     4   4
+
+

这表示第一个数字 "1" 位于字符串的第4个位置。start 表示匹配项的开始位置,end 表示匹配项的结束位置。如果模式没有匹配项,则返回 NA。如果需要定位所有匹配项的位置,可以使用 str_locate_all() 函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_locate_all()/index.html b/R/stringr/str_locate_all()/index.html new file mode 100644 index 00000000..49e93b6c --- /dev/null +++ b/R/stringr/str_locate_all()/index.html @@ -0,0 +1,1569 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str locate all() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str locate all()

+ +

在R语言中,str_locate_all() 函数属于 stringr 包,用于定位字符串中指定模式的所有匹配项的开始和结束位置。以下是关于 str_locate_all() 函数的基本信息:

+

str_locate_all 函数概述:

+

功能: 定位字符串中指定模式的所有匹配项的开始和结束位置。

+

所属包: str_locate_all() 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_locate_all(string, pattern, ...)
+

+

参数介绍:

+
    +
  • +

    string 要搜索的字符串。

    +
  • +
  • +

    pattern 一个正则表达式模式,用于匹配要定位的内容。

    +
  • +
  • +

    ... 其他参数,用于传递给 stringr::str_locate_all() 函数。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_locate_all定位字符串中的数字的所有位置
+text <- "abc123def456ghi789"
+
+# 定位所有数字的位置
+all_locations <- str_locate_all(text, "\\d")
+
+# 显示结果
+print(all_locations)
+
+

输出:

+

在上述示例中,str_locate_all() 函数用于定位字符串 "abc123def456ghi789" 中所有数字的位置。输出结果将是一个列表,其中每个元素都包含相应数字的位置。示例中的输出结果可能类似于:

+
[[1]]
+     start end
+[1,]     4   4
+[2,]     8   8
+[3,]    12  12
+
+

这表示数字 "1" 位于位置4,数字 "2" 位于位置8,数字 "3" 位于位置12。如果在文本中有多个匹配项,它们会被依次列出。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_match()/index.html b/R/stringr/str_match()/index.html new file mode 100644 index 00000000..f8c4d04a --- /dev/null +++ b/R/stringr/str_match()/index.html @@ -0,0 +1,1567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str match() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str match()

+ +

str_match() 函数是 stringr 包中的一个函数,它的主要功能是从字符串中提取匹配正则表达式的子串。 +str_match() 函数用于对字符串应用正则表达式,并返回一个矩阵,其中包含正则表达式的匹配以及任何捕获的子组。第一列总是完整的匹配,后续列是每个捕获组的匹配。

+

定义:

+
stringr::str_match(string, pattern)
+
+

参数介绍:

+
    +
  • +

    string: 输入的字符向量。

    +
  • +
  • +

    pattern: 一个用来匹配的正则表达式字符串。

    +
  • +
+

举例:

+
library(stringr)
+
+# 定义一个字符串向量
+strings <- c("123 ABC", "456 DE", "789 HIJ")
+
+# 匹配数字和随后的空格,然后是大写字母
+pattern <- "(\\d+) ([A-Z]+)"
+
+# 使用str_match()查找匹配
+matches <- str_match(strings, pattern)
+
+print(matches)
+
+

输出:

+

执行上述代码会输出一个矩阵,其中包含匹配的结果。例如,对于这个例子,输出可能如下:

+
     [,1]      [,2]  [,3]
+[1,] "123 ABC" "123" "ABC"
+[2,] "456 DE"  "456" "DE"
+[3,] "789 HIJ" "789" "HIJ"
+
+

解释输出: +- 第一列 ([,1]) 表示整个匹配的字符串。 +- 第二列 ([,2]) 表示正则表达式中第一个捕获组的匹配,即数字部分。 +- 第三列 ([,3]) 表示第二个捕获组的匹配,即大写字母部分

+

注意,如果 pattern 没有捕获组,那么 str_match() 返回的矩阵只有一列,包含完整匹配的部分。如果没有找到匹配,对应行的元素将会是 NA

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_order()/index.html b/R/stringr/str_order()/index.html new file mode 100644 index 00000000..d5bbeb16 --- /dev/null +++ b/R/stringr/str_order()/index.html @@ -0,0 +1,1560 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str order() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str order()

+ +

str_order()函数是stringr包中的一个函数,用于按字母顺序对字符向量进行排序,并返回排序后的元素在原始向量中的索引。以下是关于str_order()函数的一些基本信息:

+

str_order函数概述:

+

功能: 对字符向量进行按字母顺序排序,并返回排序后的元素在原始向量中的索引。

+

所属包: str_order函数属于stringr包,可以通过tidyverse加载。

+

定义: +

str_order(string, decreasing = FALSE)
+

+

参数介绍:

+
    +
  • +

    string 要排序的字符向量。

    +
  • +
  • +

    decreasing 一个逻辑值,指定是否降序排序。默认为FALSE,表示升序。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_order对字符向量进行排序
+vec <- c("banana", "apple", "orange", "grape")
+ordered_indices <- str_order(vec)
+
+# 显示排序后的索引
+print(ordered_indices)
+
+

输出:

+

在上述示例中,str_order()函数对字符向量 vec 进行升序排序,并返回排序后的元素在原始向量中的索引。输出结果将是:

+
[1] 2 4 1 3
+
+

这表示排序后,原始向量中的元素 "apple" 在第2位,"grape" 在第4位,"banana" 在第1位,"orange" 在第3位。你可以尝试不同的向量和参数来进行测试。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_pad()/index.html b/R/stringr/str_pad()/index.html new file mode 100644 index 00000000..d7c79e53 --- /dev/null +++ b/R/stringr/str_pad()/index.html @@ -0,0 +1,1573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str pad() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str pad()

+ +

在R语言中,str_pad() 函数属于 stringr 包,用于在字符串的左侧或右侧填充特定字符,以达到指定的宽度。以下是关于 str_pad() 函数的基本信息:

+

str_pad 函数概述:

+

功能: 在字符串的左侧或右侧填充特定字符,以达到指定的宽度。

+

所属包: str_pad() 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_pad(string, width, side = c("left", "right"), pad = " ")
+

+

参数介绍:

+
    +
  • +

    string 要填充的字符串。

    +
  • +
  • +

    width 最终字符串的宽度。

    +
  • +
  • +

    side 指定填充的位置,可以是 "left"(左侧填充,默认)或 "right"(右侧填充)。

    +
  • +
  • +

    pad 用于填充的字符,默认是空格。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_pad填充字符串
+text <- "123"
+
+# 在左侧填充0,使得宽度达到5
+padded_text_left <- str_pad(text, width = 5, side = "left", pad = "0")
+
+# 在右侧填充空格,使得宽度达到7
+padded_text_right <- str_pad(text, width = 7, side = "right")
+
+# 显示结果
+cat("Left-padded text:", padded_text_left, "\n")
+cat("Right-padded text:", padded_text_right, "\n")
+
+

输出:

+

在上述示例中,str_pad() 函数被用于在字符串 "123" 的左侧和右侧进行填充。输出结果将是:

+
Left-padded text: 00123 
+Right-padded text: 123    
+
+

这表示成功在字符串的左侧填充了0,使得宽度达到5,以及在右侧填充了空格,使得宽度达到7。你可以根据需要更改填充的字符和宽度。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_remove()/index.html b/R/stringr/str_remove()/index.html new file mode 100644 index 00000000..ffaa7abd --- /dev/null +++ b/R/stringr/str_remove()/index.html @@ -0,0 +1,1495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str remove() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str remove()

+ +

在 R 语言的 stringr 包中,str_remove() 函数用于从字符串中移除匹配的文本

+
# 使用 str_remove() 函数移除字符串中的匹配文本
+result <- str_remove("hello world", "llo")
+
+输出:
+[1] "he world"
+
+

定义: +

stringr::str_remove(string, pattern)
+

+

参数介绍: +- string:要操作的字符串或字符向量。

+
    +
  • pattern:一个正则表达式模式,用于匹配要移除的文本。
  • +
+

在这个例子中,str_remove() 函数将字符串 "hello world" 中匹配正则表达式模式 "llo" 的文本移除,结果是 "he world"。

+

请注意,str_remove() 只移除第一个匹配项。如果你希望移除所有匹配项,可以使用 str_remove_all() 函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_replace()/index.html b/R/stringr/str_replace()/index.html new file mode 100644 index 00000000..cfc1942f --- /dev/null +++ b/R/stringr/str_replace()/index.html @@ -0,0 +1,1526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str replace() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str replace()

+ +

在 R 语言中,str_replace() 函数属于 stringr 包,用于替换字符串中满足正则表达式模式的第一个匹配项。以下是关于 str_replace() 函数的基本信息:

+
# 使用str_replace替换字符串中的数字
+text <- "abc123def"
+
+# 替换第一个数字
+result <- str_replace(text, "\\d", "X")
+
+输出:
+[1] "abcX23def"
+
+

定义: +

str_replace(string, pattern, replacement)
+

+

参数介绍:

+
    +
  • +

    string 要进行替换的字符串。

    +
  • +
  • +

    pattern 一个正则表达式模式,用于匹配要替换的内容。

    +
  • +
  • +

    replacement 替换的内容。

    +
  • +
+

这表示成功替换了字符串中的第一个数字为 "X"。如果要替换所有匹配项,可以使用 str_replace_all() 函数。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_replace_all()/index.html b/R/stringr/str_replace_all()/index.html new file mode 100644 index 00000000..f5526802 --- /dev/null +++ b/R/stringr/str_replace_all()/index.html @@ -0,0 +1,1565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str replace all() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str replace all()

+ +

在 R 语言中,str_replace_all() 函数属于 stringr 包,用于替换字符串中满足正则表达式模式的所有匹配项。以下是关于 str_replace_all() 函数的基本信息:

+

str_replace_all 函数概述:

+

功能: 替换字符串中满足正则表达式模式的所有匹配项

+

所属包: str_replace_all() 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_replace_all(string, pattern, replacement)
+

+

参数介绍:

+
    +
  • +

    string 要进行替换的字符串。

    +
  • +
  • +

    pattern 一个正则表达式模式,用于匹配要替换的内容。

    +
  • +
  • +

    replacement 替换的内容。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_replace_all替换字符串中的数字
+text <- "abc123def456ghi789"
+
+# 替换所有数字
+result <- str_replace_all(text, "\\d", "X")
+
+# 显示结果
+print(result)
+
+

输出:

+

在上述示例中,str_replace_all() 函数用于替换字符串 "abc123def456ghi789" 中所有数字。输出结果将是:

+
[1] "abcXXXdefXXXghiXXX"
+
+

这表示成功替换了字符串中的所有数字为 "X"。与 str_replace() 不同,str_replace_all() 会替换所有匹配项,而不仅仅是第一个。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_sort()/index.html b/R/stringr/str_sort()/index.html new file mode 100644 index 00000000..2d6cd2e0 --- /dev/null +++ b/R/stringr/str_sort()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str sort() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str sort()

+ +

在R语言中,str_sort()函数是stringr包中的一个函数,用于对字符向量进行排序

+

函数定义:
+

str_sort(x, locale = "en", order = "asc"...)
+

+

参数介绍:

+
    +
  • +

    x: 要排序的字符向量。

    +
  • +
  • +

    locale: 用于排序的区域设置。默认情况下,使用系统的当前区域设置进行排序。可以设置为其他区域设置,如"en_US.utf8"表示使用美式英语进行排序,简写"en"就行。

    +
  • +
  • +

    order: 排序顺序。默认情况下,按照升序排序asc。如果设置为desc,则按照降序排序。

    +
  • +
  • +

    ...: 可选参数,用于传递其他参数给底层排序函数。

    +
  • +
+

举例:

+

假设我们有一个字符向量vec,我们想要对其进行字母升序排序。

+
library(stringr)  
+vec <- c("banana", "apple", "cherry", "date")  
+sorted_vec <- str_sort(vec)  
+print(sorted_vec)
+
+

输出:

+
csharp复制代码[1] "apple"   "banana"  "cherry"  "date"
+
+

可以看到,str_sort()函数将字符向量按照字母升序排列。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_split()/index.html b/R/stringr/str_split()/index.html new file mode 100644 index 00000000..42db0ddf --- /dev/null +++ b/R/stringr/str_split()/index.html @@ -0,0 +1,1570 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str split() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str split()

+ +

str_split() 函数属于 stringr 包,用于将字符串按照指定的分隔符拆分成子串。以下是关于 str_split() 函数的一些基本信息:

+

str_split 函数概述:

+

功能: 将字符串按照指定的分隔符拆分成子串。

+

所属包: str_split 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_split(string, pattern, n = Inf, simplify = FALSE)
+

+

参数介绍:

+
    +
  • +

    string 要拆分的字符向量、字符串或因子。

    +
  • +
  • +

    pattern 用于指定分隔符的正则表达式。

    +
  • +
+

"[,\s.]+"表示使用逗号、空格和句号作为分隔符将字符串拆分为多个部分,其中 [,] 匹配逗号,\\s 匹配空格,. 匹配句号,+ 表示匹配一个或多个

+
    +
  • +

    n 一个整数,指定最多拆分出多少个子串。默认为 Inf,表示尽可能多地拆分。

    +
  • +
  • +

    simplify 一个逻辑值,指定是否简化结果矩阵。如果为 TRUE,则结果为字符矩阵,否则为列表。默认为 FALSE

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_split拆分字符串
+text <- "apple,orange,banana"
+split_result <- str_split(text, ",")
+
+# 显示拆分结果
+print(split_result)
+
+

输出:

+

在上述示例中,str_split() 函数使用逗号 , 作为分隔符将字符串 "apple,orange,banana" 拆分成子串。输出结果将是一个列表,每个元素都是一个字符向量:

+
[[1]]
+[1] "apple"   "orange"  "banana"
+
+

这表示字符串被成功拆分成了三个子串。你可以尝试不同的字符串和分隔符来进行测试。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_split_fixed()/index.html b/R/stringr/str_split_fixed()/index.html new file mode 100644 index 00000000..881212fb --- /dev/null +++ b/R/stringr/str_split_fixed()/index.html @@ -0,0 +1,1566 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str split fixed() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str split fixed()

+ +

在 R 语言中,str_split_fixed() 函数属于 stringr 包,用于将字符串拆分为固定数量的部分。这个函数返回一个矩阵,每一列包含拆分后的字符串的一部分。以下是关于 str_split_fixed() 函数的基本信息:

+

正则表达式表示分隔符,将字符串拆分为固定数量的部分。

+

定义: +

str_split_fixed(string, pattern, n)
+

+

参数介绍:

+
    +
  • +

    string 要进行拆分的字符串。

    +
  • +
  • +

    pattern正则表达式表示分隔符

    +
  • +
  • +

    n 拆分成的数量

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_split_fixed将字符串拆分为固定数量的部分
+text <- "apple,orange,banana,grape"
+
+# 将字符串拆分为4个部分
+result <- str_split_fixed(text, ",", 4)
+result1 <- str_split_fixed(text, ",", 3)
+result2 <- str_split_fixed(text, ",", 6)
+
+# 显示结果
+print(result)
+print(result1)
+print(result2)
+
+

输出:

+

在上述示例中,str_split_fixed() 函数用于将字符串 "apple,orange,banana,grape" 按照逗号 , 拆分为4个部分。输出结果将是一个矩阵,其中每一列包含拆分后的字符串的一部分:

+
     [,1]    [,2]      [,3]      [,4]
+[1,] "apple" "orange" "banana"  "grape"
+
+
+     [,1]    [,2]     [,3]          
+[1,] "apple" "orange" "banana,grape"
+
+     [,1]    [,2]     [,3]     [,4]    [,5] [,6]
+[1,] "apple" "orange" "banana" "grape" ""   ""
+
+

这表示成功将字符串拆分为4个部分,分别是 "apple"、"orange"、"banana" 和 "grape"。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_sub()/index.html b/R/stringr/str_sub()/index.html new file mode 100644 index 00000000..55b6b9ca --- /dev/null +++ b/R/stringr/str_sub()/index.html @@ -0,0 +1,1517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str sub() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str sub()

+ +

在 R 语言中,str_sub() 函数属于 stringr 包,用于提取或替换字符串中的子串。 +

library(stringr)
+# 构造一个字符串向量
+c <- c("hello world", "I am a string", "helo-word", "you are_you")
+# 用str_sub()函数截取字符串向量
+str_sub(c, 1, 5)
+
+输出:
+[1] "hello" "I am " "helo-" "you a"
+
+对字符串向量也适用!

+

定义: +

stringr::str_sub(string, start = 1, end = -1)
+

+

参数介绍: +- string:要操作的字符串。

+
    +
  • +

    start:子串的起始位置,可以是正整数或负整数。正整数表示从字符串的起始位置开始,负整数表示从字符串的末尾位置开始。

    +
  • +
  • +

    end:子串的结束位置,可以是正整数或负整数。正整数表示从字符串的起始位置开始,负整数表示从字符串的末尾位置开始。

    +
  • +
+

功能: +提取字符串中指定位置范围的子串。

+

举例: +

library(stringr)
+
+# 使用 str_sub() 提取字符串的子串
+result <- str_sub("hello world", start = 1, end = 5)
+
+# 打印结果
+print(result)
+

+

输出: +

[1] "hello"
+

+

在这个例子中,str_sub() 函数被用于提取字符串 "hello world" 中位置从 1 到 5 的子串,即 "hello"。这个函数的使用方式允许从字符串的起始位置或末尾位置开始提取子串。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_subset()/index.html b/R/stringr/str_subset()/index.html new file mode 100644 index 00000000..48542188 --- /dev/null +++ b/R/stringr/str_subset()/index.html @@ -0,0 +1,1508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str subset() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str subset()

+ +

在R语言中,str_subset()函数是字符串处理包stringr中的一个函数,用于从字符向量中选择匹配指定模式的子集

+
library(stringr)
+
+# 从字符向量中选择匹配指定模式的子集
+subset1 <- str_subset(c("apple", "banana", "orange"), pattern = "a")
+print(subset1)  
+
+输出: "apple" "banana"
+
+subset2 <- str_subset(c("apple", "banana", "orange"), pattern = "z")
+print(subset2)  
+
+输出: character(0)
+
+

函数定义: +

str_subset(string, pattern)
+

+

参数

+
    +
  • +

    string:一个字符向量,包含要选择子集的字符串。

    +
  • +
  • +

    pattern:一个字符向量,包含要匹配的模式。

    +
  • +
+

在上面的示例中,我们首先加载了stringr包,然后使用str_subset()函数从字符向量中选择匹配指定模式的子集。

+

在第一个示例中,我们选择字符向量中匹配模式"a"的子集。由于在字符向量中有两个元素包含字母"a"("apple"和"banana"),因此结果为"apple"和"banana"。

+

在第二个示例中,我们选择字符向量中匹配模式"z"的子集。由于字符向量中没有元素包含字母"z",因此结果为空向量(character(0))。

+

通过使用str_subset()函数,您可以方便地从字符向量中选择匹配指定模式的子集,从而进行数据筛选和提取等操作。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_to_lower()/index.html b/R/stringr/str_to_lower()/index.html new file mode 100644 index 00000000..60a76086 --- /dev/null +++ b/R/stringr/str_to_lower()/index.html @@ -0,0 +1,1551 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str to lower() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str to lower()

+ +

str_to_lower()函数属于stringr包,用于将字符串转换为小写形式。以下是关于str_to_lower()函数的一些基本信息:

+

str_to_lower函数概述:

+

功能: 将字符串转换为小写形式

+

所属包: str_to_lower函数属于stringr包,可以通过tidyverse加载。

+

定义: +

str_to_lower(string)
+

+

参数介绍:

+
    +
  • string 要转换为小写的字符向量、字符串或因子。
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_to_lower将字符串转换为小写
+str_to_lower("Hello, World!")
+
+

输出:

+

在上述示例中,str_to_lower()函数用于将字符串 "Hello, World!" 转换为小写形式。这个函数没有返回一个新的字符串,而是直接输出转换后的结果。在这个例子中,输出结果将是:

+
[1] "hello, world!"
+
+

这表示字符串 "Hello, World!" 被成功转换为小写形式。你可以用不同的字符串替换示例中的输入来进行测试。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_to_title()/index.html b/R/stringr/str_to_title()/index.html new file mode 100644 index 00000000..4fb18bbd --- /dev/null +++ b/R/stringr/str_to_title()/index.html @@ -0,0 +1,1497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str to title() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str to title()

+ +

在 R 语言中,str_to_title()stringr 包中的函数,用于将字符串的每个单词的首字母大写

+

定义: +

stringr::str_to_title(string, locale = "en")
+

+

参数介绍: +- string:要转换的字符串。

+
**空格、逗号、句号、-** 隔开字符都被当作单词!**下划线**不行!
+
+
    +
  • locale:可选,指定转换的区域设置。默认为 "en"(英语)
  • +
+

举例: +

library(stringr)
+c <- "hello world, I am a string,helo-word. you are_you."
+str_to_title(c)
+

+

输出: +

[1] "Hello World, I Am A String,Helo-Word. You Are_you."
+

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_trim()/index.html b/R/stringr/str_trim()/index.html new file mode 100644 index 00000000..6d156942 --- /dev/null +++ b/R/stringr/str_trim()/index.html @@ -0,0 +1,1560 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str trim() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str trim()

+ +

str_trim()函数是stringr包中的一个函数,用于移除字符串开头和结尾的空格。以下是关于str_trim()函数的一些基本信息:

+

str_trim函数概述:

+

功能: 移除字符串开头和结尾的空格。

+

所属包: str_trim函数属于stringr包,可以通过tidyverse加载。

+

定义: +

str_trim(string, side = c("both", "left", "right"))
+

+

参数介绍:

+
    +
  • +

    string 要处理的字符向量、字符串或因子。

    +
  • +
  • +

    side 字符串两侧要移除的空格的位置。可选值有"both"(默认,表示两侧都移除)、"left"(表示只移除左侧)、"right"(表示只移除右侧)。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_trim移除字符串开头和结尾的空格
+text <- "   Hello, World!   "
+trimmed_text <- str_trim(text)
+
+# 显示处理后的文本
+cat(trimmed_text)
+
+

输出:

+

在上述示例中,str_trim()函数用于移除字符串 " Hello, World! " 开头和结尾的空格。输出结果将是:

+
Hello, World!
+
+

这表示字符串已经被成功处理,开头和结尾的空格已被移除。你可以尝试不同的字符串和参数来进行测试。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_trunc()/index.html b/R/stringr/str_trunc()/index.html new file mode 100644 index 00000000..ff724a2c --- /dev/null +++ b/R/stringr/str_trunc()/index.html @@ -0,0 +1,1504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str trunc() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str trunc()

+ +

在 R 语言的 stringr 包中,str_trunc() 函数用于截断字符串到指定的长度

+
# 使用 str_trunc() 函数截断字符串
+result <- str_trunc("This is a long sentence.", width = 10)
+
+输出:
+[1] "This is..."
+
+

定义: +

stringr::str_trunc(string, width, side = c("right", "left", "center"), ellipsis = "...")
+

+

参数介绍:

+
    +
  • +

    string:要截断的字符串。

    +
  • +
  • +

    width:要截断的宽度,即最终字符串的字符数。

    +
  • +
  • +

    side:可选,指定截断的位置。可以是 "right"(默认,从右边截断),"left"(从左边截断)或 "center"(从中间截断)。

    +
  • +
  • +

    ellipsis:可选,当截断字符串时要添加的省略号,默认为 "..."。

    +
  • +
+

在这个例子中,str_trunc() 函数被用于将字符串 "This is a long sentence." 截断到宽度为 10,省略号 "..." 被添加到字符串的末尾。默认情况下,截断是从右边开始的。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_view()/index.html b/R/stringr/str_view()/index.html new file mode 100644 index 00000000..bb3b7564 --- /dev/null +++ b/R/stringr/str_view()/index.html @@ -0,0 +1,1522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str view() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str view()

+ +

在R语言中,str_view() 函数属于 stringr 包,用于查看字符串中指定模式的第一个匹配项。以下是关于 str_view() 函数的基本信息:

+

Pasted image 20231123193620

+
library(stringr)
+
+string <- "Hello, my name is John. Nice to meet you."
+pattern <- "John"
+
+str_view(string, pattern)
+
+# 输出
+[1]  Hello, my name is <John>. Nice to meet you.
+
+

library(stringr)
+v <- c("Hello", "World", "I", "am", "here")
+pattern <- "e"
+str_view(v, pattern)
+
+# 输出:
+[1]  H<e>llo
+[5]  h<e>r<e>
+
+str_view()函数是R语言中stringr包提供的一个函数,用于查看字符串中与正则表达式匹配的部分。

+

定义: +

str_view(string, pattern, match = TRUE, html = FALSE,
+  use_escapes = FALSE)
+

+

参数介绍: +- string: 要查看的字符串。

+
    +
  • +

    pattern: 正则表达式模式。

    +
  • +
  • +

    match:

    +
  • +
+

TRUE, the default, shows only elements that match the pattern. +NA shows all elements. +FALSE shows only elements that don't match the pattern.

+
    +
  • ...: 其他参数。
  • +
+

html

+

use_escapes

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_view_all()/index.html b/R/stringr/str_view_all()/index.html new file mode 100644 index 00000000..93256b4c --- /dev/null +++ b/R/stringr/str_view_all()/index.html @@ -0,0 +1,1579 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str view all() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str view all()

+ +

在R语言中,str_view_all() 函数属于 stringr 包,用于查看字符串中指定模式的所有匹配项。以下是关于 str_view_all() 函数的基本信息:

+

str_view_all 函数概述:

+

功能: 查看字符串中指定模式的所有匹配项。

+

所属包: str_view_all() 函数属于 stringr 包,可以通过 tidyverse 加载。

+

定义: +

str_view_all(string, pattern, match = FALSE, ...)
+

+

参数介绍:

+
    +
  • +

    string 要搜索的字符串。

    +
  • +
  • +

    pattern 一个正则表达式模式,用于匹配要查看的内容。

    +
  • +
  • +

    match 一个逻辑值,用于指定是否返回匹配的部分,默认为 FALSE。 +match = TRUE,则返回匹配的部分内容,而没有位置

    +
  • +
  • +

    ... 其他参数,用于传递给 stringr::str_view_all() 函数。

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_view_all查看字符串中的数字
+text <- "abc123def456ghi789"
+
+# 查看所有数字的位置
+view_all_result <- str_view_all(text, "\\d")
+
+# 显示结果
+print(view_all_result)
+
+

输出:

+

在上述示例中,str_view_all() 函数用于查看字符串 "abc123def456ghi789" 中所有数字的位置。输出结果将是一个列表,其中每个元素都包含相应数字的匹配信息。示例中的输出结果可能类似于:

+
[[1]]
+   match start end
+1     1     4   4
+
+[[2]]
+   match start end
+1     2     8   8
+
+[[3]]
+   match start end
+1     3    12  12
+
+

这表示数字 "1" 位于位置4,数字 "2" 位于位置8,数字 "3" 位于位置12。如果设置了 match = TRUE,则返回匹配的部分内容,而不是位置。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/str_wrap()/index.html b/R/stringr/str_wrap()/index.html new file mode 100644 index 00000000..9bb17d26 --- /dev/null +++ b/R/stringr/str_wrap()/index.html @@ -0,0 +1,1574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Str wrap() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Str wrap()

+ +

str_wrap()函数是stringr包中的一个函数,用于在指定的列宽度内将字符串拆分成多行。以下是关于str_wrap()函数的一些基本信息:

+

str_wrap函数概述:

+

功能: 在指定的列宽度内将字符串拆分成多行。

+

所属包: str_wrap函数属于stringr包,可以通过tidyverse加载。

+

定义: +

str_wrap(string, width = 80, indent = 0, exdent = 0, prefix = "")
+

+

参数介绍:

+
    +
  • +

    string 要拆分的字符向量、字符串或因子。

    +
  • +
  • +

    width 一个整数,指定列宽度,即每行的字符数。默认为80。

    +
  • +
  • +

    indent 一个整数,指定每行的缩进字符数。默认为0。

    +
  • +
  • +

    exdent 一个整数,指定每个段落的缩进字符数。默认为0。

    +
  • +
  • +

    prefix 一个字符串,添加到每行的开头

    +
  • +
+

示例:

+
# 安装并加载tidyverse包
+install.packages("tidyverse")
+library(tidyverse)
+
+# 使用str_wrap将字符串拆分成多行
+text <- "This is a long piece of text that we want to wrap to fit within a specified width. Let's see how str_wrap handles this!"
+
+wrapped_text <- str_wrap(text, width = 30)
+
+# 显示拆分后的文本
+cat(wrapped_text)
+
+

输出:

+

在上述示例中,str_wrap()函数用于将文本拆分成多行,每行不超过30个字符。输出结果将是:

+
This is a long piece of text
+that we want to wrap to fit
+within a specified width.
+Let's see how str_wrap handles
+this!
+
+

这表示文本已经被成功拆分成多行,每行不超过30个字符。你可以尝试不同的文本和参数来进行测试。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/stringr/stringr\357\274\232\357\274\232word()/index.html" "b/R/stringr/stringr\357\274\232\357\274\232word()/index.html" new file mode 100644 index 00000000..b5035184 --- /dev/null +++ "b/R/stringr/stringr\357\274\232\357\274\232word()/index.html" @@ -0,0 +1,1507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Stringr::word() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Stringr::word()

+ +

在 R 语言中,stringr::word() 函数用于提取文本中的单词。从文本中提取指定位置的单词

+
library(stringr)
+
+# 使用 word() 函数提取字符串中的单词
+result <- word("This is a sentence.", start = 2, end = 4)
+
+# 打印结果
+print(result)
+
+输出
+[1] "is"  "a"   "sentence."
+
+

定义: +

stringr::word(string, start = 1, end = start, sep = "\\s+")
+

+

参数介绍: +- string:要操作的字符串或字符向量。

+
    +
  • +

    start:要提取的单词的起始位置。

    +
  • +
  • +

    end:要提取的单词的结束位置。

    +
  • +
  • +

    sep分隔符,分隔单词的正则表达式模式,默认为空格。

    +
  • +
+

在这个例子中,stringr::word() 函数被用于从字符串 "This is a sentence." 中提取位置从 2 到 4 的单词。默认情况下,sep 参数使用正则表达式模式 "\s+",表示使用空格作为单词的分隔符。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/R/stringr/writeLines()/index.html b/R/stringr/writeLines()/index.html new file mode 100644 index 00000000..1267b305 --- /dev/null +++ b/R/stringr/writeLines()/index.html @@ -0,0 +1,1558 @@ + + + + + + + + + + + + + + + + + + + + + + + + + writeLines() - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

writeLines()

+ +

writeLines() 是 R 中用于将文本写入文件的基本函数。以下是关于 writeLines() 函数的一些基本信息:

+

writeLines 函数概述:

+

功能: 将字符向量的内容写入文件中。

+

定义: +

writeLines(text, con = "123.txt")
+

+

参数介绍:

+
    +
  • +

    text 包含要写入文件的字符向量。

    +
  • +
  • +

    con 要写入的文件的连接。可以是文件名的字符字符串,也可以是连接到已打开文件的连接。

    +
  • +
+

示例:

+
# 创建一个字符向量
+lines <- c("Line 1", "Line 2", "Line 3")
+
+# 将字符向量写入文件
+writeLines(lines, "output.txt")
+
+

上述示例创建了一个字符向量 lines,然后使用 writeLines() 函数将其写入名为 "output.txt" 的文件中。

+

输出:

+

"output.txt" 文件的内容将如下所示:

+
Line 1
+Line 2
+Line 3
+
+

这表示字符向量中的每行文本已成功写入文件。

+

请注意,在实际使用中,你可能需要提供完整的文件路径,或者确保 R 工作目录下有写入权限。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/R/\351\241\271\347\233\2561-\346\225\260\346\215\256\345\210\206\346\236\220/index.html" "b/R/\351\241\271\347\233\2561-\346\225\260\346\215\256\345\210\206\346\236\220/index.html" new file mode 100644 index 00000000..a96ab69c --- /dev/null +++ "b/R/\351\241\271\347\233\2561-\346\225\260\346\215\256\345\210\206\346\236\220/index.html" @@ -0,0 +1,1721 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 项目1-数据分析 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

数据输入和输出

+

读取数据

+

read_csv()

+

readxl::read_excel()

+
    +
  • [x] rename()修改列名,新列名替换指定旧列名,局部替换
  • +
+

set_names()修改列名,直接用新列名依次替换旧列名,整体替换,跟rename()功能相重复

+

数据输出

+

print()、printf()、sprintf()进行变量输出格式化输出格式化字符串输出

+

cat()结合paste()将多个字符串数据进行输出,比sprintf输出更灵活

+

paste()将多个对象(字符串、数字等)连接成一个字符串,字符串间会自带空格,用paste0()不带空格

+

文件输出

+

write_csv() 写入csv文件

+

数据清洗

+

基础操作

+

1,概览

+
    +
  • 查看数据 +glimpse() df数据展示,推荐
  • +
+

str() 跟上面功能重复。在现实列表列时会显示得更全些

+

head()显示指定前几行

+

View()打开一个交互式的数据框查看器窗口,其中以表格形式显示整个数据框的内容。

+

2,类型、结构转换

+
    +
  • +

    常见数据类型

    +

    常见数据类型 数据类型判断和转换

    +
  • +
  • +

    逻辑型

    +

    data$value <-ifelse(data$value == "Yes",TRUE,FALSE)

    +
  • +
  • +

    时间

    +

    lubridate::mdy()字符串日期时间转化为标准的数字形式的日期时间

    +
  • +
  • +

    转化为分类变量

    +

    factor()

    +

    as.factor()

    +
  • +
+

3,查漏补缺和去重

+
    +
  • +

    查漏补缺

    +

    规划化缺失值,read_csv(..., na = c("", "N/A")),将指定内容识读取为缺失值

    +
  • +
  • +

    补缺

    +

    tidyr::fill() 指定列,进行上下值补缺

    +

    data$age <- ifelse(is.na(data$age), mean(data$age, na.rm = TRUE), data$age)

    +
  • +
  • +

    去除缺失值

    +
      +
    • [x] data <- data %>% drop_na(),tidyr::drop_na(),更精确,可以指定需要考虑的列
    • +
    +

    data <- na.omit(data),na.omit() 简单处理,含缺失就删除

    +
  • +
  • +

    去重

    +
      +
    • [x] distinct()去重,可以根据指定列进行行数据去重,只返回去重后的指定列的内容(F),或去重后的所有列的内容(T)
    • +
    +

    unique()返回向量或因子中的唯一值

    +

    duplicated()标识向量或数据框中的重复元素,返回对应布尔值,重复为TRUE

    +
  • +
+

数据增、改、删

+

mutate() 根据旧列添加新列,或者替换旧列数,配上across()多个列上应用相同的变换或统计函数,替换旧列或生成新列

+

filter() 行操作

+

map()对每个元素应用同一个函数,类比python中的apply()

+

分组聚合

+

group_by() 指定列进行分组,分组后再用summarize()后会保留分组列

+

cut()函数,进行固定范围值添加新组

+

ungroup() 取消分组,在使用管道符进行参数传递中使用的是同一个源数据,所以要及时撤销分组操作!

+ +

nrow() 计算数据框行数

+

n() 计算行数

+

count()计算唯一值出现次数,跟python不同

+

n_distinct()计算种类数,跟上面的唯一值次数指频数不同

+

多表连接

+

inner_join() 内连接

+

left_join()左连接

+

right_join()右连接

+

full_join() 全连接

+

semi_join()半连接,目的筛选左表数据类似交集但只保留做表数据。以右表数据作为标准,筛选左表中存在于右表中的数据,并不会返回右表中任何数据。右有左也有的数据。

+

anti_join()反连接,目的是筛选左表数据,跟半连接相反筛选右表没有的数据,返回在第一个数据框中存在而在第二个数据框中不存在的行。右无,左有的数据。

+

数据分析

+

描述性统计

+
    +
  • +

    概览

    +

    summary() 描述统计函数,pander(summary(data_set))更漂亮地展示。连续型变量处理为数值型,离散型变量处理为因子型,这样统计就能得到相应结果

    +

    skim() 描述统计函数,展示的内容会更加详细,一般skim() %>% %>% kable_styling()

    +

    table(cut_width(data_q2$PPG,2,boundary = 10))/50 实现连续变量分类化,计算每组的频率

    +

    table()计算 factor对象中每个水平的频数

    +

    cut_width()连续型的变量分成指定宽度的区间,返回因子型结果

    +
  • +
  • +

    集中趋势指标

    +

    skewness()计算数据偏度

    +

    kurtosis()计算数据峰度系数

    +
  • +
  • +

    离散趋势指标

    +

    更多内容详看01 基础函数和数理统计

    +
  • +
+

推断性统计

+

01 基础函数和数理统计

+

t-value、p-value、置信区间(及对应的置信度)、样本均值x_bar

+

t.test()通过假设检验,然后直接选取结果中的参数

+

aov() ANOVA方差分析,单因素、双因素、多因素

+

数据可视化

+

05 ggplot2

+

factor()在同一个图中展示x轴不用类别的箱线图用得到

+

模型

+

lm()拟合线性回归模型的内置函数,一般用summary(lm())呈现结果,其中参数的介绍详看summary()中的副标题!

+

glm()应该的更广,阶段性主要用于逻辑回归

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 00000000..1cf13b9f Binary files /dev/null and b/assets/images/favicon.png differ diff --git a/assets/javascripts/bundle.d7c377c4.min.js b/assets/javascripts/bundle.d7c377c4.min.js new file mode 100644 index 00000000..6a0bcf88 --- /dev/null +++ b/assets/javascripts/bundle.d7c377c4.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Mi=Object.create;var gr=Object.defineProperty;var Li=Object.getOwnPropertyDescriptor;var _i=Object.getOwnPropertyNames,Ft=Object.getOwnPropertySymbols,Ai=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty,ro=Object.prototype.propertyIsEnumerable;var to=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&to(e,r,t[r]);if(Ft)for(var r of Ft(t))ro.call(t,r)&&to(e,r,t[r]);return e};var oo=(e,t)=>{var r={};for(var o in e)xr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Ft)for(var o of Ft(e))t.indexOf(o)<0&&ro.call(e,o)&&(r[o]=e[o]);return r};var yr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ci=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _i(t))!xr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Li(t,n))||o.enumerable});return e};var jt=(e,t,r)=>(r=e!=null?Mi(Ai(e)):{},Ci(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var no=(e,t,r)=>new Promise((o,n)=>{var i=c=>{try{a(r.next(c))}catch(p){n(p)}},s=c=>{try{a(r.throw(c))}catch(p){n(p)}},a=c=>c.done?o(c.value):Promise.resolve(c.value).then(i,s);a((r=r.apply(e,t)).next())});var ao=yr((Er,io)=>{(function(e,t){typeof Er=="object"&&typeof io!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(C){return!!(C&&C!==document&&C.nodeName!=="HTML"&&C.nodeName!=="BODY"&&"classList"in C&&"contains"in C.classList)}function c(C){var ct=C.type,Ve=C.tagName;return!!(Ve==="INPUT"&&s[ct]&&!C.readOnly||Ve==="TEXTAREA"&&!C.readOnly||C.isContentEditable)}function p(C){C.classList.contains("focus-visible")||(C.classList.add("focus-visible"),C.setAttribute("data-focus-visible-added",""))}function l(C){C.hasAttribute("data-focus-visible-added")&&(C.classList.remove("focus-visible"),C.removeAttribute("data-focus-visible-added"))}function f(C){C.metaKey||C.altKey||C.ctrlKey||(a(r.activeElement)&&p(r.activeElement),o=!0)}function u(C){o=!1}function d(C){a(C.target)&&(o||c(C.target))&&p(C.target)}function y(C){a(C.target)&&(C.target.classList.contains("focus-visible")||C.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(C.target))}function b(C){document.visibilityState==="hidden"&&(n&&(o=!0),D())}function D(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function Q(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(C){C.target.nodeName&&C.target.nodeName.toLowerCase()==="html"||(o=!1,Q())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",b,!0),D(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var Kr=yr((kt,qr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof kt=="object"&&typeof qr=="object"?qr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof kt=="object"?kt.ClipboardJS=r():t.ClipboardJS=r()})(kt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Oi}});var s=i(279),a=i.n(s),c=i(370),p=i.n(c),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(_){return!1}}var d=function(_){var O=f()(_);return u("cut"),O},y=d;function b(V){var _=document.documentElement.getAttribute("dir")==="rtl",O=document.createElement("textarea");O.style.fontSize="12pt",O.style.border="0",O.style.padding="0",O.style.margin="0",O.style.position="absolute",O.style[_?"right":"left"]="-9999px";var $=window.pageYOffset||document.documentElement.scrollTop;return O.style.top="".concat($,"px"),O.setAttribute("readonly",""),O.value=V,O}var D=function(_,O){var $=b(_);O.container.appendChild($);var N=f()($);return u("copy"),$.remove(),N},Q=function(_){var O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},$="";return typeof _=="string"?$=D(_,O):_ instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(_==null?void 0:_.type)?$=D(_.value,O):($=f()(_),u("copy")),$},J=Q;function C(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?C=function(O){return typeof O}:C=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},C(V)}var ct=function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=_.action,$=O===void 0?"copy":O,N=_.container,Y=_.target,ke=_.text;if($!=="copy"&&$!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&C(Y)==="object"&&Y.nodeType===1){if($==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if($==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(ke)return J(ke,{container:N});if(Y)return $==="cut"?y(Y):J(Y,{container:N})},Ve=ct;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(O){return typeof O}:Fe=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},Fe(V)}function vi(V,_){if(!(V instanceof _))throw new TypeError("Cannot call a class as a function")}function eo(V,_){for(var O=0;O<_.length;O++){var $=_[O];$.enumerable=$.enumerable||!1,$.configurable=!0,"value"in $&&($.writable=!0),Object.defineProperty(V,$.key,$)}}function gi(V,_,O){return _&&eo(V.prototype,_),O&&eo(V,O),V}function xi(V,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function");V.prototype=Object.create(_&&_.prototype,{constructor:{value:V,writable:!0,configurable:!0}}),_&&br(V,_)}function br(V,_){return br=Object.setPrototypeOf||function($,N){return $.__proto__=N,$},br(V,_)}function yi(V){var _=Ti();return function(){var $=Rt(V),N;if(_){var Y=Rt(this).constructor;N=Reflect.construct($,arguments,Y)}else N=$.apply(this,arguments);return Ei(this,N)}}function Ei(V,_){return _&&(Fe(_)==="object"||typeof _=="function")?_:wi(V)}function wi(V){if(V===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return V}function Ti(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(V){return!1}}function Rt(V){return Rt=Object.setPrototypeOf?Object.getPrototypeOf:function(O){return O.__proto__||Object.getPrototypeOf(O)},Rt(V)}function vr(V,_){var O="data-clipboard-".concat(V);if(_.hasAttribute(O))return _.getAttribute(O)}var Si=function(V){xi(O,V);var _=yi(O);function O($,N){var Y;return vi(this,O),Y=_.call(this),Y.resolveOptions(N),Y.listenClick($),Y}return gi(O,[{key:"resolveOptions",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof N.action=="function"?N.action:this.defaultAction,this.target=typeof N.target=="function"?N.target:this.defaultTarget,this.text=typeof N.text=="function"?N.text:this.defaultText,this.container=Fe(N.container)==="object"?N.container:document.body}},{key:"listenClick",value:function(N){var Y=this;this.listener=p()(N,"click",function(ke){return Y.onClick(ke)})}},{key:"onClick",value:function(N){var Y=N.delegateTarget||N.currentTarget,ke=this.action(Y)||"copy",It=Ve({action:ke,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(It?"success":"error",{action:ke,text:It,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(N){return vr("action",N)}},{key:"defaultTarget",value:function(N){var Y=vr("target",N);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(N){return vr("text",N)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(N){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(N,Y)}},{key:"cut",value:function(N){return y(N)}},{key:"isSupported",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof N=="string"?[N]:N,ke=!!document.queryCommandSupported;return Y.forEach(function(It){ke=ke&&!!document.queryCommandSupported(It)}),ke}}]),O}(a()),Oi=Si},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==n;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}o.exports=s},438:function(o,n,i){var s=i(828);function a(l,f,u,d,y){var b=p.apply(this,arguments);return l.addEventListener(u,b,y),{destroy:function(){l.removeEventListener(u,b,y)}}}function c(l,f,u,d,y){return typeof l.addEventListener=="function"?a.apply(null,arguments):typeof u=="function"?a.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(b){return a(b,f,u,d,y)}))}function p(l,f,u,d){return function(y){y.delegateTarget=s(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=c},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(o,n,i){var s=i(879),a=i(438);function c(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(y))throw new TypeError("Third argument must be a Function");if(s.node(u))return p(u,d,y);if(s.nodeList(u))return l(u,d,y);if(s.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function p(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(b){b.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(b){b.removeEventListener(d,y)})}}}function f(u,d,y){return a(document.body,u,d,y)}o.exports=c},817:function(o){function n(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),p=document.createRange();p.selectNodeContents(i),c.removeAllRanges(),c.addRange(p),s=c.toString()}return s}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function p(){c.off(i,p),s.apply(a,arguments)}return p._=s,this.on(i,p,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,p=a.length;for(c;c{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Wa=/["'&<>]/;Vn.exports=Ua;function Ua(e){var t=""+e,r=Wa.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function z(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function K(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||a(u,d)})})}function a(u,d){try{c(o[u](d))}catch(y){f(i[0][3],y)}}function c(u){u.value instanceof ot?Promise.resolve(u.value.v).then(p,l):f(i[0][2],u)}function p(u){a("next",u)}function l(u){a("throw",u)}function f(u,d){u(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function po(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof be=="function"?be(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),n(a,c,s.done,s.value)})}}function n(i,s,a,c){Promise.resolve(c).then(function(p){i({value:p,done:a})},s)}}function k(e){return typeof e=="function"}function pt(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Ut=pt(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function ze(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var je=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=be(s),c=a.next();!c.done;c=a.next()){var p=c.value;p.remove(this)}}catch(b){t={error:b}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(k(l))try{l()}catch(b){i=b instanceof Ut?b.errors:[b]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=be(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{lo(y)}catch(b){i=i!=null?i:[],b instanceof Ut?i=K(K([],z(i)),z(b.errors)):i.push(b)}}}catch(b){o={error:b}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new Ut(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)lo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&ze(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&ze(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=je.EMPTY;function Nt(e){return e instanceof je||e&&"closed"in e&&k(e.remove)&&k(e.add)&&k(e.unsubscribe)}function lo(e){k(e)?e():e.unsubscribe()}var He={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var lt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,s=n.isStopped,a=n.observers;return i||s?Tr:(this.currentObservers=null,a.push(r),new je(function(){o.currentObservers=null,ze(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,s=o.isStopped;n?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new I;return r.source=this,r},t.create=function(r,o){return new xo(r,o)},t}(I);var xo=function(e){se(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(x);var St={now:function(){return(St.delegate||Date).now()},delegate:void 0};var Ot=function(e){se(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=St);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,s=o._infiniteTimeWindow,a=o._timestampProvider,c=o._windowTime;n||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,s=n._buffer,a=s.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var s=r.actions;o!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==o&&(ut.cancelAnimationFrame(o),r._scheduled=void 0)},t}(zt);var wo=function(e){se(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(qt);var ge=new wo(Eo);var M=new I(function(e){return e.complete()});function Kt(e){return e&&k(e.schedule)}function Cr(e){return e[e.length-1]}function Ge(e){return k(Cr(e))?e.pop():void 0}function Ae(e){return Kt(Cr(e))?e.pop():void 0}function Qt(e,t){return typeof Cr(e)=="number"?e.pop():t}var dt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Yt(e){return k(e==null?void 0:e.then)}function Bt(e){return k(e[ft])}function Gt(e){return Symbol.asyncIterator&&k(e==null?void 0:e[Symbol.asyncIterator])}function Jt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Wi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Xt=Wi();function Zt(e){return k(e==null?void 0:e[Xt])}function er(e){return co(this,arguments,function(){var r,o,n,i;return Wt(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,ot(r.read())];case 3:return o=s.sent(),n=o.value,i=o.done,i?[4,ot(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,ot(n)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function tr(e){return k(e==null?void 0:e.getReader)}function F(e){if(e instanceof I)return e;if(e!=null){if(Bt(e))return Ui(e);if(dt(e))return Ni(e);if(Yt(e))return Di(e);if(Gt(e))return To(e);if(Zt(e))return Vi(e);if(tr(e))return zi(e)}throw Jt(e)}function Ui(e){return new I(function(t){var r=e[ft]();if(k(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Ni(e){return new I(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?v(function(n,i){return e(n,i,o)}):pe,ue(1),r?$e(t):Uo(function(){return new or}))}}function Rr(e){return e<=0?function(){return M}:g(function(t,r){var o=[];t.subscribe(E(r,function(n){o.push(n),e=2,!0))}function de(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new x}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(p){var l,f,u,d=0,y=!1,b=!1,D=function(){f==null||f.unsubscribe(),f=void 0},Q=function(){D(),l=u=void 0,y=b=!1},J=function(){var C=l;Q(),C==null||C.unsubscribe()};return g(function(C,ct){d++,!b&&!y&&D();var Ve=u=u!=null?u:r();ct.add(function(){d--,d===0&&!b&&!y&&(f=jr(J,c))}),Ve.subscribe(ct),!l&&d>0&&(l=new it({next:function(Fe){return Ve.next(Fe)},error:function(Fe){b=!0,D(),f=jr(Q,n,Fe),Ve.error(Fe)},complete:function(){y=!0,D(),f=jr(Q,s),Ve.complete()}}),F(C).subscribe(l))})(p)}}function jr(e,t){for(var r=[],o=2;oe.next(document)),e}function W(e,t=document){return Array.from(t.querySelectorAll(e))}function U(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function Ie(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}var ca=L(h(document.body,"focusin"),h(document.body,"focusout")).pipe(ye(1),q(void 0),m(()=>Ie()||document.body),Z(1));function vt(e){return ca.pipe(m(t=>e.contains(t)),X())}function qo(e,t){return L(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?ye(t):pe,q(!1))}function Ue(e){return{x:e.offsetLeft,y:e.offsetTop}}function Ko(e){return L(h(window,"load"),h(window,"resize")).pipe(Le(0,ge),m(()=>Ue(e)),q(Ue(e)))}function ir(e){return{x:e.scrollLeft,y:e.scrollTop}}function et(e){return L(h(e,"scroll"),h(window,"resize")).pipe(Le(0,ge),m(()=>ir(e)),q(ir(e)))}function Qo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Qo(e,r)}function S(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Qo(o,n);return o}function ar(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function gt(e){let t=S("script",{src:e});return H(()=>(document.head.appendChild(t),L(h(t,"load"),h(t,"error").pipe(w(()=>kr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),A(()=>document.head.removeChild(t)),ue(1))))}var Yo=new x,pa=H(()=>typeof ResizeObserver=="undefined"?gt("https://unpkg.com/resize-observer-polyfill"):R(void 0)).pipe(m(()=>new ResizeObserver(e=>{for(let t of e)Yo.next(t)})),w(e=>L(Ke,R(e)).pipe(A(()=>e.disconnect()))),Z(1));function le(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Se(e){return pa.pipe(T(t=>t.observe(e)),w(t=>Yo.pipe(v(({target:r})=>r===e),A(()=>t.unobserve(e)),m(()=>le(e)))),q(le(e)))}function xt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function sr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var Bo=new x,la=H(()=>R(new IntersectionObserver(e=>{for(let t of e)Bo.next(t)},{threshold:0}))).pipe(w(e=>L(Ke,R(e)).pipe(A(()=>e.disconnect()))),Z(1));function yt(e){return la.pipe(T(t=>t.observe(e)),w(t=>Bo.pipe(v(({target:r})=>r===e),A(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function Go(e,t=16){return et(e).pipe(m(({y:r})=>{let o=le(e),n=xt(e);return r>=n.height-o.height-t}),X())}var cr={drawer:U("[data-md-toggle=drawer]"),search:U("[data-md-toggle=search]")};function Jo(e){return cr[e].checked}function Ye(e,t){cr[e].checked!==t&&cr[e].click()}function Ne(e){let t=cr[e];return h(t,"change").pipe(m(()=>t.checked),q(t.checked))}function ma(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function fa(){return L(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(q(!1))}function Xo(){let e=h(window,"keydown").pipe(v(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:Jo("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),v(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!ma(o,r)}return!0}),de());return fa().pipe(w(t=>t?M:e))}function me(){return new URL(location.href)}function st(e,t=!1){if(G("navigation.instant")&&!t){let r=S("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function Zo(){return new x}function en(){return location.hash.slice(1)}function pr(e){let t=S("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function ua(e){return L(h(window,"hashchange"),e).pipe(m(en),q(en()),v(t=>t.length>0),Z(1))}function tn(e){return ua(e).pipe(m(t=>ce(`[id="${t}"]`)),v(t=>typeof t!="undefined"))}function At(e){let t=matchMedia(e);return nr(r=>t.addListener(()=>r(t.matches))).pipe(q(t.matches))}function rn(){let e=matchMedia("print");return L(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(q(e.matches))}function Dr(e,t){return e.pipe(w(r=>r?t():M))}function lr(e,t){return new I(r=>{let o=new XMLHttpRequest;o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network Error"))}),o.addEventListener("abort",()=>{r.error(new Error("Request aborted"))}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let i=Number(o.getResponseHeader("Content-Length"))||0;t.progress$.next(n.loaded/i*100)}}),t.progress$.next(5)),o.send()})}function De(e,t){return lr(e,t).pipe(w(r=>r.text()),m(r=>JSON.parse(r)),Z(1))}function on(e,t){let r=new DOMParser;return lr(e,t).pipe(w(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),Z(1))}function nn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function an(){return L(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(nn),q(nn()))}function sn(){return{width:innerWidth,height:innerHeight}}function cn(){return h(window,"resize",{passive:!0}).pipe(m(sn),q(sn()))}function pn(){return B([an(),cn()]).pipe(m(([e,t])=>({offset:e,size:t})),Z(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(te("size")),n=B([o,r]).pipe(m(()=>Ue(e)));return B([r,t,n]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:p}])=>({offset:{x:s.x-c,y:s.y-p+i},size:a})))}function da(e){return h(e,"message",t=>t.data)}function ha(e){let t=new x;return t.subscribe(r=>e.postMessage(r)),t}function ln(e,t=new Worker(e)){let r=da(t),o=ha(t),n=new x;n.subscribe(o);let i=o.pipe(ee(),oe(!0));return n.pipe(ee(),Re(r.pipe(j(i))),de())}var ba=U("#__config"),Et=JSON.parse(ba.textContent);Et.base=`${new URL(Et.base,me())}`;function he(){return Et}function G(e){return Et.features.includes(e)}function we(e,t){return typeof t!="undefined"?Et.translations[e].replace("#",t.toString()):Et.translations[e]}function Oe(e,t=document){return U(`[data-md-component=${e}]`,t)}function ne(e,t=document){return W(`[data-md-component=${e}]`,t)}function va(e){let t=U(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>U(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function mn(e){if(!G("announce.dismiss")||!e.childElementCount)return M;if(!e.hidden){let t=U(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return H(()=>{let t=new x;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),va(e).pipe(T(r=>t.next(r)),A(()=>t.complete()),m(r=>P({ref:e},r)))})}function ga(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function fn(e,t){let r=new x;return r.subscribe(({hidden:o})=>{e.hidden=o}),ga(e,t).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))}function Ct(e,t){return t==="inline"?S("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},S("div",{class:"md-tooltip__inner md-typeset"})):S("div",{class:"md-tooltip",id:e,role:"tooltip"},S("div",{class:"md-tooltip__inner md-typeset"}))}function un(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return S("aside",{class:"md-annotation",tabIndex:0},Ct(t),S("a",{href:r,class:"md-annotation__index",tabIndex:-1},S("span",{"data-md-annotation-id":e})))}else return S("aside",{class:"md-annotation",tabIndex:0},Ct(t),S("span",{class:"md-annotation__index",tabIndex:-1},S("span",{"data-md-annotation-id":e})))}function dn(e){return S("button",{class:"md-clipboard md-icon",title:we("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Vr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(c=>!e.terms[c]).reduce((c,p)=>[...c,S("del",null,p)," "],[]).slice(0,-1),i=he(),s=new URL(e.location,i.base);G("search.highlight")&&s.searchParams.set("h",Object.entries(e.terms).filter(([,c])=>c).reduce((c,[p])=>`${c} ${p}`.trim(),""));let{tags:a}=he();return S("a",{href:`${s}`,class:"md-search-result__link",tabIndex:-1},S("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&S("div",{class:"md-search-result__icon md-icon"}),r>0&&S("h1",null,e.title),r<=0&&S("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(c=>{let p=a?c in a?`md-tag-icon md-tag--${a[c]}`:"md-tag-icon":"";return S("span",{class:`md-tag ${p}`},c)}),o>0&&n.length>0&&S("p",{class:"md-search-result__terms"},we("search.result.term.missing"),": ",...n)))}function hn(e){let t=e[0].score,r=[...e],o=he(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),s=r.findIndex(l=>l.scoreVr(l,1)),...c.length?[S("details",{class:"md-search-result__more"},S("summary",{tabIndex:-1},S("div",null,c.length>0&&c.length===1?we("search.result.more.one"):we("search.result.more.other",c.length))),...c.map(l=>Vr(l,1)))]:[]];return S("li",{class:"md-search-result__item"},p)}function bn(e){return S("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>S("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?ar(r):r)))}function zr(e){let t=`tabbed-control tabbed-control--${e}`;return S("div",{class:t,hidden:!0},S("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function vn(e){return S("div",{class:"md-typeset__scrollwrap"},S("div",{class:"md-typeset__table"},e))}function xa(e){let t=he(),r=new URL(`../${e.version}/`,t.base);return S("li",{class:"md-version__item"},S("a",{href:`${r}`,class:"md-version__link"},e.title))}function gn(e,t){return S("div",{class:"md-version"},S("button",{class:"md-version__current","aria-label":we("select.version")},t.title),S("ul",{class:"md-version__list"},e.map(xa)))}var ya=0;function Ea(e,t){document.body.append(e);let{width:r}=le(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=sr(t),n=typeof o!="undefined"?et(o):R({x:0,y:0}),i=L(vt(t),qo(t)).pipe(X());return B([i,n]).pipe(m(([s,a])=>{let{x:c,y:p}=Ue(t),l=le(t),f=t.closest("table");return f&&t.parentElement&&(c+=f.offsetLeft+t.parentElement.offsetLeft,p+=f.offsetTop+t.parentElement.offsetTop),{active:s,offset:{x:c-a.x+l.width/2-r/2,y:p-a.y+l.height+8}}}))}function Be(e){let t=e.title;if(!t.length)return M;let r=`__tooltip_${ya++}`,o=Ct(r,"inline"),n=U(".md-typeset",o);return n.innerHTML=t,H(()=>{let i=new x;return i.subscribe({next({offset:s}){o.style.setProperty("--md-tooltip-x",`${s.x}px`),o.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),L(i.pipe(v(({active:s})=>s)),i.pipe(ye(250),v(({active:s})=>!s))).subscribe({next({active:s}){s?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Le(16,ge)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(_t(125,ge),v(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?o.style.setProperty("--md-tooltip-0",`${-s}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ea(o,e).pipe(T(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))}).pipe(qe(ie))}function wa(e,t){let r=H(()=>B([Ko(e),et(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:s,height:a}=le(e);return{x:o-i.x+s/2,y:n-i.y+a/2}}));return vt(e).pipe(w(o=>r.pipe(m(n=>({active:o,offset:n})),ue(+!o||1/0))))}function xn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return H(()=>{let i=new x,s=i.pipe(ee(),oe(!0));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),yt(e).pipe(j(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),L(i.pipe(v(({active:a})=>a)),i.pipe(ye(250),v(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Le(16,ge)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(_t(125,ge),v(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(j(s),v(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>{a.stopPropagation(),a.preventDefault()}),h(n,"mousedown").pipe(j(s),ae(i)).subscribe(([a,{active:c}])=>{var p;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(p=Ie())==null||p.blur()}}),r.pipe(j(s),v(a=>a===o),Qe(125)).subscribe(()=>e.focus()),wa(e,t).pipe(T(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ta(e){return e.tagName==="CODE"?W(".c, .c1, .cm",e):[e]}function Sa(e){let t=[];for(let r of Ta(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let p=i.splitText(s.index);i=p.splitText(a.length),t.push(p)}else{i.textContent=a,t.push(i);break}}}}return t}function yn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,s=new Map;for(let a of Sa(t)){let[,c]=a.textContent.match(/\((\d+)\)/);ce(`:scope > li:nth-child(${c})`,e)&&(s.set(c,un(c,i)),a.replaceWith(s.get(c)))}return s.size===0?M:H(()=>{let a=new x,c=a.pipe(ee(),oe(!0)),p=[];for(let[l,f]of s)p.push([U(".md-typeset",f),U(`:scope > li:nth-child(${l})`,e)]);return o.pipe(j(c)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of p)l?yn(f,u):yn(u,f)}),L(...[...s].map(([,l])=>xn(l,t,{target$:r}))).pipe(A(()=>a.complete()),de())})}function En(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return En(t)}}function wn(e,t){return H(()=>{let r=En(e);return typeof r!="undefined"?fr(r,e,t):M})}var Tn=jt(Kr());var Oa=0;function Sn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Sn(t)}}function Ma(e){return Se(e).pipe(m(({width:t})=>({scrollable:xt(e).width>t})),te("scrollable"))}function On(e,t){let{matches:r}=matchMedia("(hover)"),o=H(()=>{let n=new x,i=n.pipe(Rr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let s=[];if(Tn.default.isSupported()&&(e.closest(".copy")||G("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Oa++}`;let p=dn(c.id);c.insertBefore(p,e),G("content.tooltips")&&s.push(Be(p))}let a=e.closest(".highlight");if(a instanceof HTMLElement){let c=Sn(a);if(typeof c!="undefined"&&(a.classList.contains("annotate")||G("content.code.annotate"))){let p=fr(c,e,t);s.push(Se(a).pipe(j(i),m(({width:l,height:f})=>l&&f),X(),w(l=>l?p:M)))}}return Ma(e).pipe(T(c=>n.next(c)),A(()=>n.complete()),m(c=>P({ref:e},c)),Re(...s))});return G("content.lazy")?yt(e).pipe(v(n=>n),ue(1),w(()=>o)):o}function La(e,{target$:t,print$:r}){let o=!0;return L(t.pipe(m(n=>n.closest("details:not([open])")),v(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(v(n=>n||!o),T(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Mn(e,t){return H(()=>{let r=new x;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),La(e,t).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}var Ln=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Qr,Aa=0;function Ca(){return typeof mermaid=="undefined"||mermaid instanceof Element?gt("https://unpkg.com/mermaid@10.6.1/dist/mermaid.min.js"):R(void 0)}function _n(e){return e.classList.remove("mermaid"),Qr||(Qr=Ca().pipe(T(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Ln,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),Z(1))),Qr.subscribe(()=>no(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Aa++}`,r=S("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),s=r.attachShadow({mode:"closed"});s.innerHTML=n,e.replaceWith(r),i==null||i(s)})),Qr.pipe(m(()=>({ref:e})))}var An=S("table");function Cn(e){return e.replaceWith(An),An.replaceWith(vn(e)),R({ref:e})}function ka(e){let t=e.find(r=>r.checked)||e[0];return L(...e.map(r=>h(r,"change").pipe(m(()=>U(`label[for="${r.id}"]`))))).pipe(q(U(`label[for="${t.id}"]`)),m(r=>({active:r})))}function kn(e,{viewport$:t,target$:r}){let o=U(".tabbed-labels",e),n=W(":scope > input",e),i=zr("prev");e.append(i);let s=zr("next");return e.append(s),H(()=>{let a=new x,c=a.pipe(ee(),oe(!0));B([a,Se(e)]).pipe(j(c),Le(1,ge)).subscribe({next([{active:p},l]){let f=Ue(p),{width:u}=le(p);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=ir(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),B([et(o),Se(o)]).pipe(j(c)).subscribe(([p,l])=>{let f=xt(o);i.hidden=p.x<16,s.hidden=p.x>f.width-l.width-16}),L(h(i,"click").pipe(m(()=>-1)),h(s,"click").pipe(m(()=>1))).pipe(j(c)).subscribe(p=>{let{width:l}=le(o);o.scrollBy({left:l*p,behavior:"smooth"})}),r.pipe(j(c),v(p=>n.includes(p))).subscribe(p=>p.click()),o.classList.add("tabbed-labels--linked");for(let p of n){let l=U(`label[for="${p.id}"]`);l.replaceChildren(S("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(j(c),v(f=>!(f.metaKey||f.ctrlKey)),T(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return G("content.tabs.link")&&a.pipe(Ee(1),ae(t)).subscribe(([{active:p},{offset:l}])=>{let f=p.innerText.trim();if(p.hasAttribute("data-md-switching"))p.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of W("[data-tabs]"))for(let b of W(":scope > input",y)){let D=U(`label[for="${b.id}"]`);if(D!==p&&D.innerText.trim()===f){D.setAttribute("data-md-switching",""),b.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),a.pipe(j(c)).subscribe(()=>{for(let p of W("audio, video",e))p.pause()}),ka(n).pipe(T(p=>a.next(p)),A(()=>a.complete()),m(p=>P({ref:e},p)))}).pipe(qe(ie))}function Hn(e,{viewport$:t,target$:r,print$:o}){return L(...W(".annotate:not(.highlight)",e).map(n=>wn(n,{target$:r,print$:o})),...W("pre:not(.mermaid) > code",e).map(n=>On(n,{target$:r,print$:o})),...W("pre.mermaid",e).map(n=>_n(n)),...W("table:not([class])",e).map(n=>Cn(n)),...W("details",e).map(n=>Mn(n,{target$:r,print$:o})),...W("[data-tabs]",e).map(n=>kn(n,{viewport$:t,target$:r})),...W("[title]",e).filter(()=>G("content.tooltips")).map(n=>Be(n)))}function Ha(e,{alert$:t}){return t.pipe(w(r=>L(R(!0),R(!1).pipe(Qe(2e3))).pipe(m(o=>({message:r,active:o})))))}function $n(e,t){let r=U(".md-typeset",e);return H(()=>{let o=new x;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ha(e,t).pipe(T(n=>o.next(n)),A(()=>o.complete()),m(n=>P({ref:e},n)))})}function $a({viewport$:e}){if(!G("header.autohide"))return R(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Ce(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),X()),o=Ne("search");return B([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),X(),w(n=>n?r:R(!1)),q(!1))}function Pn(e,t){return H(()=>B([Se(e),$a(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),X((r,o)=>r.height===o.height&&r.hidden===o.hidden),Z(1))}function Rn(e,{header$:t,main$:r}){return H(()=>{let o=new x,n=o.pipe(ee(),oe(!0));o.pipe(te("active"),Ze(t)).subscribe(([{active:s},{hidden:a}])=>{e.classList.toggle("md-header--shadow",s&&!a),e.hidden=a});let i=fe(W("[title]",e)).pipe(v(()=>G("content.tooltips")),re(s=>Be(s)));return r.subscribe(o),t.pipe(j(n),m(s=>P({ref:e},s)),Re(i.pipe(j(n))))})}function Pa(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=le(e);return{active:o>=n}}),te("active"))}function In(e,t){return H(()=>{let r=new x;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=ce(".md-content h1");return typeof o=="undefined"?M:Pa(o,t).pipe(T(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))})}function Fn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),X()),n=o.pipe(w(()=>Se(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),te("bottom"))));return B([o,n,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:p}}])=>(p=Math.max(0,p-Math.max(0,s-c,i)-Math.max(0,p+c-a)),{offset:s-i,height:p,active:s-i<=c})),X((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function Ra(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return R(...e).pipe(re(r=>h(r,"change").pipe(m(()=>r))),q(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{media:r.getAttribute("data-md-color-media"),scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),Z(1))}function jn(e){let t=W("input",e),r=S("meta",{name:"theme-color"});document.head.appendChild(r);let o=S("meta",{name:"color-scheme"});document.head.appendChild(o);let n=At("(prefers-color-scheme: light)");return H(()=>{let i=new x;return i.subscribe(s=>{if(document.body.setAttribute("data-md-color-switching",""),s.color.media==="(prefers-color-scheme)"){let a=matchMedia("(prefers-color-scheme: light)"),c=document.querySelector(a.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");s.color.scheme=c.getAttribute("data-md-color-scheme"),s.color.primary=c.getAttribute("data-md-color-primary"),s.color.accent=c.getAttribute("data-md-color-accent")}for(let[a,c]of Object.entries(s.color))document.body.setAttribute(`data-md-color-${a}`,c);for(let a=0;a{let s=Oe("header"),a=window.getComputedStyle(s);return o.content=a.colorScheme,a.backgroundColor.match(/\d+/g).map(c=>(+c).toString(16).padStart(2,"0")).join("")})).subscribe(s=>r.content=`#${s}`),i.pipe(Me(ie)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),Ra(t).pipe(j(n.pipe(Ee(1))),at(),T(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))})}function Wn(e,{progress$:t}){return H(()=>{let r=new x;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(T(o=>r.next({value:o})),A(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Yr=jt(Kr());function Ia(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Un({alert$:e}){Yr.default.isSupported()&&new I(t=>{new Yr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Ia(U(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(T(t=>{t.trigger.focus()}),m(()=>we("clipboard.copied"))).subscribe(e)}function Fa(e){if(e.length<2)return[""];let[t,r]=[...e].sort((n,i)=>n.length-i.length).map(n=>n.replace(/[^/]+$/,"")),o=0;if(t===r)o=t.length;else for(;t.charCodeAt(o)===r.charCodeAt(o);)o++;return e.map(n=>n.replace(t.slice(0,o),""))}function ur(e){let t=__md_get("__sitemap",sessionStorage,e);if(t)return R(t);{let r=he();return on(new URL("sitemap.xml",e||r.base)).pipe(m(o=>Fa(W("loc",o).map(n=>n.textContent))),xe(()=>M),$e([]),T(o=>__md_set("__sitemap",o,sessionStorage,e)))}}function Nn(e){let t=ce("[rel=canonical]",e);typeof t!="undefined"&&(t.href=t.href.replace("//localhost:","//127.0.0.1:"));let r=new Map;for(let o of W(":scope > *",e)){let n=o.outerHTML;for(let i of["href","src"]){let s=o.getAttribute(i);if(s===null)continue;let a=new URL(s,t==null?void 0:t.href),c=o.cloneNode();c.setAttribute(i,`${a}`),n=c.outerHTML;break}r.set(n,o)}return r}function Dn({location$:e,viewport$:t,progress$:r}){let o=he();if(location.protocol==="file:")return M;let n=ur().pipe(m(l=>l.map(f=>`${new URL(f,o.base)}`))),i=h(document.body,"click").pipe(ae(n),w(([l,f])=>{if(!(l.target instanceof Element))return M;let u=l.target.closest("a");if(u===null)return M;if(u.target||l.metaKey||l.ctrlKey)return M;let d=new URL(u.href);return d.search=d.hash="",f.includes(`${d}`)?(l.preventDefault(),R(new URL(u.href))):M}),de());i.pipe(ue(1)).subscribe(()=>{let l=ce("link[rel=icon]");typeof l!="undefined"&&(l.href=l.href)}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),i.pipe(ae(t)).subscribe(([l,{offset:f}])=>{history.scrollRestoration="manual",history.replaceState(f,""),history.pushState(null,"",l)}),i.subscribe(e);let s=e.pipe(q(me()),te("pathname"),Ee(1),w(l=>lr(l,{progress$:r}).pipe(xe(()=>(st(l,!0),M))))),a=new DOMParser,c=s.pipe(w(l=>l.text()),w(l=>{let f=a.parseFromString(l,"text/html");for(let b of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...G("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let D=ce(b),Q=ce(b,f);typeof D!="undefined"&&typeof Q!="undefined"&&D.replaceWith(Q)}let u=Nn(document.head),d=Nn(f.head);for(let[b,D]of d)D.getAttribute("rel")==="stylesheet"||D.hasAttribute("src")||(u.has(b)?u.delete(b):document.head.appendChild(D));for(let b of u.values())b.getAttribute("rel")==="stylesheet"||b.hasAttribute("src")||b.remove();let y=Oe("container");return We(W("script",y)).pipe(w(b=>{let D=f.createElement("script");if(b.src){for(let Q of b.getAttributeNames())D.setAttribute(Q,b.getAttribute(Q));return b.replaceWith(D),new I(Q=>{D.onload=()=>Q.complete()})}else return D.textContent=b.textContent,b.replaceWith(D),M}),ee(),oe(f))}),de());return h(window,"popstate").pipe(m(me)).subscribe(e),e.pipe(q(me()),Ce(2,1),v(([l,f])=>l.pathname===f.pathname&&l.hash!==f.hash),m(([,l])=>l)).subscribe(l=>{var f,u;history.state!==null||!l.hash?window.scrollTo(0,(u=(f=history.state)==null?void 0:f.y)!=null?u:0):(history.scrollRestoration="auto",pr(l.hash),history.scrollRestoration="manual")}),e.pipe(Ir(i),q(me()),Ce(2,1),v(([l,f])=>l.pathname===f.pathname&&l.hash===f.hash),m(([,l])=>l)).subscribe(l=>{history.scrollRestoration="auto",pr(l.hash),history.scrollRestoration="manual",history.back()}),c.pipe(ae(e)).subscribe(([,l])=>{var f,u;history.state!==null||!l.hash?window.scrollTo(0,(u=(f=history.state)==null?void 0:f.y)!=null?u:0):pr(l.hash)}),t.pipe(te("offset"),ye(100)).subscribe(({offset:l})=>{history.replaceState(l,"")}),c}var qn=jt(zn());function Kn(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,s)=>`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(0,qn.default)(s).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function Ht(e){return e.type===1}function dr(e){return e.type===3}function Qn(e,t){let r=ln(e);return L(R(location.protocol!=="file:"),Ne("search")).pipe(Pe(o=>o),w(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:G("search.suggest")}}})),r}function Yn({document$:e}){let t=he(),r=De(new URL("../versions.json",t.base)).pipe(xe(()=>M)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:s,aliases:a})=>s===i||a.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),w(n=>h(document.body,"click").pipe(v(i=>!i.metaKey&&!i.ctrlKey),ae(o),w(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&n.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&n.get(c)===s?M:(i.preventDefault(),R(c))}}return M}),w(i=>{let{version:s}=n.get(i);return ur(new URL(i)).pipe(m(a=>{let p=me().href.replace(t.base,"");return a.includes(p.split("#")[0])?new URL(`../${s}/${p}`,t.base):new URL(i)}))})))).subscribe(n=>st(n,!0)),B([r,o]).subscribe(([n,i])=>{U(".md-header__topic").appendChild(gn(n,i))}),e.pipe(w(()=>o)).subscribe(n=>{var s;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let a=((s=t.version)==null?void 0:s.default)||"latest";Array.isArray(a)||(a=[a]);e:for(let c of a)for(let p of n.aliases.concat(n.version))if(new RegExp(c,"i").test(p)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let a of ne("outdated"))a.hidden=!1})}function Da(e,{worker$:t}){let{searchParams:r}=me();r.has("q")&&(Ye("search",!0),e.value=r.get("q"),e.focus(),Ne("search").pipe(Pe(i=>!i)).subscribe(()=>{let i=me();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=vt(e),n=L(t.pipe(Pe(Ht)),h(e,"keyup"),o).pipe(m(()=>e.value),X());return B([n,o]).pipe(m(([i,s])=>({value:i,focus:s})),Z(1))}function Bn(e,{worker$:t}){let r=new x,o=r.pipe(ee(),oe(!0));B([t.pipe(Pe(Ht)),r],(i,s)=>s).pipe(te("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(te("focus")).subscribe(({focus:i})=>{i&&Ye("search",i)}),h(e.form,"reset").pipe(j(o)).subscribe(()=>e.focus());let n=U("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),Da(e,{worker$:t}).pipe(T(i=>r.next(i)),A(()=>r.complete()),m(i=>P({ref:e},i)),Z(1))}function Gn(e,{worker$:t,query$:r}){let o=new x,n=Go(e.parentElement).pipe(v(Boolean)),i=e.parentElement,s=U(":scope > :first-child",e),a=U(":scope > :last-child",e);Ne("search").subscribe(l=>a.setAttribute("role",l?"list":"presentation")),o.pipe(ae(r),Wr(t.pipe(Pe(Ht)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:s.textContent=f.length?we("search.result.none"):we("search.result.placeholder");break;case 1:s.textContent=we("search.result.one");break;default:let u=ar(l.length);s.textContent=we("search.result.other",u)}});let c=o.pipe(T(()=>a.innerHTML=""),w(({items:l})=>L(R(...l.slice(0,10)),R(...l.slice(10)).pipe(Ce(4),Nr(n),w(([f])=>f)))),m(hn),de());return c.subscribe(l=>a.appendChild(l)),c.pipe(re(l=>{let f=ce("details",l);return typeof f=="undefined"?M:h(f,"toggle").pipe(j(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(v(dr),m(({data:l})=>l)).pipe(T(l=>o.next(l)),A(()=>o.complete()),m(l=>P({ref:e},l)))}function Va(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=me();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function Jn(e,t){let r=new x,o=r.pipe(ee(),oe(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(j(o)).subscribe(n=>n.preventDefault()),Va(e,t).pipe(T(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))}function Xn(e,{worker$:t,keyboard$:r}){let o=new x,n=Oe("search-query"),i=L(h(n,"keydown"),h(n,"focus")).pipe(Me(ie),m(()=>n.value),X());return o.pipe(Ze(i),m(([{suggest:a},c])=>{let p=c.split(/([\s-]+)/);if(a!=null&&a.length&&p[p.length-1]){let l=a[a.length-1];l.startsWith(p[p.length-1])&&(p[p.length-1]=l)}else p.length=0;return p})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(v(({mode:a})=>a==="search")).subscribe(a=>{switch(a.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(v(dr),m(({data:a})=>a)).pipe(T(a=>o.next(a)),A(()=>o.complete()),m(()=>({ref:e})))}function Zn(e,{index$:t,keyboard$:r}){let o=he();try{let n=Qn(o.search,t),i=Oe("search-query",e),s=Oe("search-result",e);h(e,"click").pipe(v(({target:c})=>c instanceof Element&&!!c.closest("a"))).subscribe(()=>Ye("search",!1)),r.pipe(v(({mode:c})=>c==="search")).subscribe(c=>{let p=Ie();switch(c.type){case"Enter":if(p===i){let l=new Map;for(let f of W(":first-child [href]",s)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}c.claim()}break;case"Escape":case"Tab":Ye("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof p=="undefined")i.focus();else{let l=[i,...W(":not(details) > [href], summary, details[open] [href]",s)],f=Math.max(0,(Math.max(0,l.indexOf(p))+l.length+(c.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}c.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(v(({mode:c})=>c==="global")).subscribe(c=>{switch(c.type){case"f":case"s":case"/":i.focus(),i.select(),c.claim();break}});let a=Bn(i,{worker$:n});return L(a,Gn(s,{worker$:n,query$:a})).pipe(Re(...ne("search-share",e).map(c=>Jn(c,{query$:a})),...ne("search-suggest",e).map(c=>Xn(c,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ke}}function ei(e,{index$:t,location$:r}){return B([t,r.pipe(q(me()),v(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>Kn(o.config)(n.searchParams.get("h"))),m(o=>{var s;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,p=o(c);p.length>c.length&&n.set(a,p)}for(let[a,c]of n){let{childNodes:p}=S("span",null,c);a.replaceWith(...Array.from(p))}return{ref:e,nodes:n}}))}function za(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return B([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(n,Math.max(0,a-i))-n,{height:s,locked:a>=i+n})),X((i,s)=>i.height===s.height&&i.locked===s.locked))}function Br(e,o){var n=o,{header$:t}=n,r=oo(n,["header$"]);let i=U(".md-sidebar__scrollwrap",e),{y:s}=Ue(i);return H(()=>{let a=new x,c=a.pipe(ee(),oe(!0)),p=a.pipe(Le(0,ge));return p.pipe(ae(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),p.pipe(Pe()).subscribe(()=>{for(let l of W(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=le(f);f.scrollTo({top:u-d/2})}}}),fe(W("label[tabindex]",e)).pipe(re(l=>h(l,"click").pipe(Me(ie),m(()=>l),j(c)))).subscribe(l=>{let f=U(`[id="${l.htmlFor}"]`);U(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),za(e,r).pipe(T(l=>a.next(l)),A(()=>a.complete()),m(l=>P({ref:e},l)))})}function ti(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return Lt(De(`${r}/releases/latest`).pipe(xe(()=>M),m(o=>({version:o.tag_name})),$e({})),De(r).pipe(xe(()=>M),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),$e({}))).pipe(m(([o,n])=>P(P({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return De(r).pipe(m(o=>({repositories:o.public_repos})),$e({}))}}function ri(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return De(r).pipe(xe(()=>M),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),$e({}))}function oi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return ti(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ri(r,o)}return M}var qa;function Ka(e){return qa||(qa=H(()=>{let t=__md_get("__source",sessionStorage);if(t)return R(t);if(ne("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return M}return oi(e.href).pipe(T(o=>__md_set("__source",o,sessionStorage)))}).pipe(xe(()=>M),v(t=>Object.keys(t).length>0),m(t=>({facts:t})),Z(1)))}function ni(e){let t=U(":scope > :last-child",e);return H(()=>{let r=new x;return r.subscribe(({facts:o})=>{t.appendChild(bn(o)),t.classList.add("md-source__repository--active")}),Ka(e).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Qa(e,{viewport$:t,header$:r}){return Se(document.body).pipe(w(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),te("hidden"))}function ii(e,t){return H(()=>{let r=new x;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(G("navigation.tabs.sticky")?R({hidden:!1}):Qa(e,t)).pipe(T(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Ya(e,{viewport$:t,header$:r}){let o=new Map,n=W("[href^=\\#]",e);for(let a of n){let c=decodeURIComponent(a.hash.substring(1)),p=ce(`[id="${c}"]`);typeof p!="undefined"&&o.set(a,p)}let i=r.pipe(te("height"),m(({height:a})=>{let c=Oe("main"),p=U(":scope > :first-child",c);return a+.8*(p.offsetTop-c.offsetTop)}),de());return Se(document.body).pipe(te("height"),w(a=>H(()=>{let c=[];return R([...o].reduce((p,[l,f])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=f.tagName;)c.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return p.set([...c=[...c,l]].reverse(),u)},new Map))}).pipe(m(c=>new Map([...c].sort(([,p],[,l])=>p-l))),Ze(i),w(([c,p])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(a.height);for(;f.length;){let[,b]=f[0];if(b-p=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...c]]),X((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([a,c])=>({prev:a.map(([p])=>p),next:c.map(([p])=>p)})),q({prev:[],next:[]}),Ce(2,1),m(([a,c])=>a.prev.length{let i=new x,s=i.pipe(ee(),oe(!0));if(i.subscribe(({prev:a,next:c})=>{for(let[p]of c)p.classList.remove("md-nav__link--passed"),p.classList.remove("md-nav__link--active");for(let[p,[l]]of a.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",p===a.length-1)}),G("toc.follow")){let a=L(t.pipe(ye(1),m(()=>{})),t.pipe(ye(250),m(()=>"smooth")));i.pipe(v(({prev:c})=>c.length>0),Ze(o.pipe(Me(ie))),ae(a)).subscribe(([[{prev:c}],p])=>{let[l]=c[c.length-1];if(l.offsetHeight){let f=sr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=le(f);f.scrollTo({top:u-d/2,behavior:p})}}})}return G("navigation.tracking")&&t.pipe(j(s),te("offset"),ye(250),Ee(1),j(n.pipe(Ee(1))),at({delay:250}),ae(i)).subscribe(([,{prev:a}])=>{let c=me(),p=a[a.length-1];if(p&&p.length){let[l]=p,{hash:f}=new URL(l.href);c.hash!==f&&(c.hash=f,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),Ya(e,{viewport$:t,header$:r}).pipe(T(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ba(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:s}})=>s),Ce(2,1),m(([s,a])=>s>a&&a>0),X()),i=r.pipe(m(({active:s})=>s));return B([i,n]).pipe(m(([s,a])=>!(s&&a)),X(),j(o.pipe(Ee(1))),oe(!0),at({delay:250}),m(s=>({hidden:s})))}function si(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new x,s=i.pipe(ee(),oe(!0));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(j(s),te("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),h(e,"click").subscribe(a=>{a.preventDefault(),window.scrollTo({top:0})}),Ba(e,{viewport$:t,main$:o,target$:n}).pipe(T(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))}function ci({document$:e}){e.pipe(w(()=>W(".md-ellipsis")),re(t=>yt(t).pipe(j(e.pipe(Ee(1))),v(r=>r),m(()=>t),ue(1))),v(t=>t.offsetWidth{let r=t.innerText,o=t.closest("a")||t;return o.title=r,Be(o).pipe(j(e.pipe(Ee(1))),A(()=>o.removeAttribute("title")))})).subscribe(),e.pipe(w(()=>W(".md-status")),re(t=>Be(t))).subscribe()}function pi({document$:e,tablet$:t}){e.pipe(w(()=>W(".md-toggle--indeterminate")),T(r=>{r.indeterminate=!0,r.checked=!1}),re(r=>h(r,"change").pipe(Ur(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ae(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function Ga(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function li({document$:e}){e.pipe(w(()=>W("[data-md-scrollfix]")),T(t=>t.removeAttribute("data-md-scrollfix")),v(Ga),re(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function mi({viewport$:e,tablet$:t}){B([Ne("search"),t]).pipe(m(([r,o])=>r&&!o),w(r=>R(r).pipe(Qe(r?400:100))),ae(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function Ja(){return location.protocol==="file:"?gt(`${new URL("search/search_index.js",Gr.base)}`).pipe(m(()=>__index),Z(1)):De(new URL("search/search_index.json",Gr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var rt=zo(),Pt=Zo(),wt=tn(Pt),Jr=Xo(),_e=pn(),hr=At("(min-width: 960px)"),ui=At("(min-width: 1220px)"),di=rn(),Gr=he(),hi=document.forms.namedItem("search")?Ja():Ke,Xr=new x;Un({alert$:Xr});var Zr=new x;G("navigation.instant")&&Dn({location$:Pt,viewport$:_e,progress$:Zr}).subscribe(rt);var fi;((fi=Gr.version)==null?void 0:fi.provider)==="mike"&&Yn({document$:rt});L(Pt,wt).pipe(Qe(125)).subscribe(()=>{Ye("drawer",!1),Ye("search",!1)});Jr.pipe(v(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=ce("link[rel=prev]");typeof t!="undefined"&&st(t);break;case"n":case".":let r=ce("link[rel=next]");typeof r!="undefined"&&st(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});ci({document$:rt});pi({document$:rt,tablet$:hr});li({document$:rt});mi({viewport$:_e,tablet$:hr});var tt=Pn(Oe("header"),{viewport$:_e}),$t=rt.pipe(m(()=>Oe("main")),w(e=>Fn(e,{viewport$:_e,header$:tt})),Z(1)),Xa=L(...ne("consent").map(e=>fn(e,{target$:wt})),...ne("dialog").map(e=>$n(e,{alert$:Xr})),...ne("header").map(e=>Rn(e,{viewport$:_e,header$:tt,main$:$t})),...ne("palette").map(e=>jn(e)),...ne("progress").map(e=>Wn(e,{progress$:Zr})),...ne("search").map(e=>Zn(e,{index$:hi,keyboard$:Jr})),...ne("source").map(e=>ni(e))),Za=H(()=>L(...ne("announce").map(e=>mn(e)),...ne("content").map(e=>Hn(e,{viewport$:_e,target$:wt,print$:di})),...ne("content").map(e=>G("search.highlight")?ei(e,{index$:hi,location$:Pt}):M),...ne("header-title").map(e=>In(e,{viewport$:_e,header$:tt})),...ne("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Dr(ui,()=>Br(e,{viewport$:_e,header$:tt,main$:$t})):Dr(hr,()=>Br(e,{viewport$:_e,header$:tt,main$:$t}))),...ne("tabs").map(e=>ii(e,{viewport$:_e,header$:tt})),...ne("toc").map(e=>ai(e,{viewport$:_e,header$:tt,main$:$t,target$:wt})),...ne("top").map(e=>si(e,{viewport$:_e,header$:tt,main$:$t,target$:wt})))),bi=rt.pipe(w(()=>Za),Re(Xa),Z(1));bi.subscribe();window.document$=rt;window.location$=Pt;window.target$=wt;window.keyboard$=Jr;window.viewport$=_e;window.tablet$=hr;window.screen$=ui;window.print$=di;window.alert$=Xr;window.progress$=Zr;window.component$=bi;})(); +//# sourceMappingURL=bundle.d7c377c4.min.js.map + diff --git a/assets/javascripts/bundle.d7c377c4.min.js.map b/assets/javascripts/bundle.d7c377c4.min.js.map new file mode 100644 index 00000000..a57d388a --- /dev/null +++ b/assets/javascripts/bundle.d7c377c4.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
分享嘉宾新闻稿链接所属单位所属年级所属专业
倪阅其第一期:2021/7/10 倪阅其《大数据透视房地产》武汉大学19级MEM
王丰第二期:2021/7/25 王丰《漫谈大数据》武汉大学19级MEM
陈炯昊第三期:2021/08/01陈炯昊《大数据驱动的行业案例探讨》武汉大学19级MEM
陈景第四期:2021/08/07陈景《车联网的发展现状及大数据应用》武汉大学20级MEM
傅骏第五期:2021/08/21傅骏《商业数据在供应链金融中的实践分享》武汉大学19级MEM
邓立君第六期:2021/08/28邓立君《从〈理想之城〉看大数据时代的工程造价》武汉大学19级MEM
孙涛第七期:2021/09/04 孙涛《智慧城市基于语义智能的多数据融合治理》烽火【特邀】
陆泉第八期:2021/09/05 陆泉(教授 博导)《数字赋能智慧健康》武汉大学教授 博导【特邀】
刘波第九期:2021/09/08 刘波《数据时代的个体价值》武汉大学19级MEM
邱柯,秦岭第十期:2021/09/11 辩论赛《大数据时代让人更自由还是更不自由?》武汉大学19级MEM
刘博第十一期:2021/10/18 刘博(同济医院)《大数据背景下肿瘤的预防和诊断》同济医院【特邀】
王中兴第十二期:2021/10/25 王中兴《数据分析与品牌电商》武汉大学19级MEM
胡桂玲第十三期:2021/10/30《大数据助力提升国际物流服务效率》武汉大学21级MEM
粟四维第十四期:2021/11/08《让人生更精彩的旅行体验》粟四维 利物浦大学博导【特邀】
郭峰第十五期:2021/11/10《池鱼之殃:上市公司社交媒体联结与股价溢出效应》郭峰 上海财经大学博导【特邀】
贾鹏飞第十六期:2021/11/13《我的武汉大学研究生求学经历》武汉大学19级MBA
尹俊第十七期《基于NLP自然语义处理的机器学习算法》研讨会论坛成功举办武汉大学20级MEM
何婵第十八期《小米数据中台产品架构解析》武汉大学21级MEM
李怡璇第十九期《上市公司财务报告数据分析》武汉大学20级MEM
徐先莉、僧正南第二十期《深度拆解直播电商》武汉大学20级MBA
王思思第二十一期《地方融资建设模式》武汉大学20级MEM
胡水荣第二十二期《数据分析在药品销售管理中的应用》武汉大学20级MEM
王洋第二十三期《大数据深度学习入门》武汉大学20级MEM
周子涵第二十四期《武汉市数字智慧城市建设》武汉大学21级MEM
黄依然第二十五期《文本分析框架》武汉大学21级MEM
易敏第二十六期《数字经济下的新型营销模式探索》武汉大学21级MEM
徐高瑞第二十七期:《汽车行业数字化转型探索(徐高瑞)》武汉大学20级MEM
张青山第二十八期:《数字经济“十四五”规划解读(张青山)》武汉大学19级MBA
蔡文甫&周伍豪第二十九期:|《浅谈大数据背景下的芯片设计与制造(蔡文甫 周伍豪)》中芯国际研发工程师【特邀】
王辽海第三十期:《房地产税立法改革试点专题研究》武汉大学21级MBA
王婧第三十一期:《大数据背景下中国商业航天(火箭)的探索(杨跃 王婧)》武汉大学20级MEM
孙佳维第三十二期《蛋白偶联物药物的发展》(孙佳维)北大博士后【特邀】
廖杰第三十三期《“双减”政策下,如何提升学生核心竞争力》(廖杰)武汉大学21级MBA
何婵&尹俊第三十四期《汽车行业与技术发展畅谈》武汉大学20级MEM
于硕第三十五期《金融科技与前沿技术》(于硕)武汉大学22级MEM
焦瀚茹第三十六期《30分钟带你玩转抖音》(焦瀚茹)武汉大学21级MBA
鲁潇覃第三十六期《剖析创投基金运作方式(鲁潇覃)》烽火科技投资总监【特邀】
易明第三十八期《渠道营销数字化转型浅析》武汉大学21级MBA
陈熹39:西藏旅游心得武汉大学21级MEM
邹希豪40:兼职论文写作法武大传媒硕士 小米PM【特邀】
韩庆英41:企业融资(一)武汉大学20级MEM
王兵42 :马应龙药业武汉大学21级MBA
易明43:快消武汉大学21级MBA
何婵44:大数据集群概述武汉大学21级MEM
余凡45:爬虫武汉大学21级MEM
何婵46:数仓分层武汉大学21级MEM
宁贤星47:我们为什么不会理财武汉大学20级EMBA
鄢然48:如何写出一篇合格的专硕论文武汉大学19级MBA
刘洋49:专硕论文快问快答武汉大学19级MBA
王丰50:论文一张纸武汉大学19级MEM
+

王丰师兄的简书博客

+

记录了王丰师兄诸多的个人笔记,学委强烈推荐。

+

嘉欣同学的54期珞珈论语分享

+

关于Python和PowerBI讲解

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 00000000..c5b0f4d4 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en","ja"],"separator":"[\\s\\u200b\\u3000\\-\u3001\u3002\uff0c\uff0e\uff1f\uff01\uff1b]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"Introduce","text":"

\u201c\u5343\u79cb\u9088\u77e3\u72ec\u7559\u6211\uff0c\u767e\u6218\u5f52\u6765\u518d\u8bfb\u4e66\u201d\uff0c\u6b22\u8fce\u6536\u85cf\u6211\u7684\u7b80\u6613\u535a\u5ba2\uff0c\u4e3b\u8981\u5185\u5bb9\u4e3aMEM\u5728\u8bfb\u671f\u95f4\u6574\u7406\u6c47\u603b\u7684\u5404\u9879\u5185\u5bb9\u3002

\u5f62\u800c\u4e0a\u8005\u8c13\u4e4b\u9053\uff0c\u5f62\u800c\u4e0b\u8005\u8c13\u4e4b\u5668\u3002

\u4e2a\u4eba\u8ba4\u4e3a\u6267\u62d7\u4e8eR\u3001Python\u3001AI\u7b49\u5de5\u5177\u53ef\u80fd\u820d\u672c\u9010\u672b\uff0c\u6839\u636e\u81ea\u8eab\u9700\u6c42\u628a\u63e1\u5de5\u5177\u638c\u63e1\u7684\u7a0b\u5ea6\uff0c\u5c06\u5de5\u5177\u878d\u5165\u5230\u89e3\u51b3\u95ee\u9898\u7684\u601d\u60f3\u4e2d\u53ef\u80fd\u66f4\u4e3a\u91cd\u8981\uff0c\u4e5f\u6b63\u5982\u9648\u8001\u5e08\u6240\u8bf4\u201c\u7528\u4fe1\u606f\u65f6\u4ee3\u7684\u5de5\u5177\u8fce\u63a5\u4fe1\u606f\u65f6\u4ee3\u7684\u6311\u6218\u201d\u3002

\u5965\u5361\u59c6\u5243\u5200\u539f\u7406\u3002

\u8ddf\u73ed\u7ea7\u7fa4\u4e2d\u5df2\u7ecf\u6574\u7406\u3001\u5206\u4eab\u7684\u6587\u4ef6\u4e0d\u91cd\u53e0\u3002\u5206\u4eab\u7684\u5185\u5bb9\u4ec5\u9650\u4e8eMEM\u5728\u8bfb\u671f\u95f4\u6d89\u53ca\u7684\u5185\u5bb9\uff0c\u968f\u65f6\u95f4\u589e\u5220\u66f4\u65b0\u3002

\u4ed6\u5c71\u4e4b\u77f3\u53ef\u4ee5\u653b\u7389\u3002

\u4e0d\u662f\u4e0d\u80fd\u505a\uff0c\u800c\u662f\u6ca1\u6709\u65f6\u95f4\u505a\uff0c\u642d\u8bbe\u7b80\u6613\u535a\u5ba2\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u8282\u7ea6\u5927\u5bb6\u7684\u65f6\u95f4\u3002\u6587\u4ef6\u672c\u8eab\u90fd\u662fMD\u6587\u4ef6\uff0c\u6709\u9700\u8981\u53ef\u4ee5\u70b9\u51fb\u6587\u7ae0\u53f3\u4e0a\u89d2\u4e0b\u8f7d\u7f16\u8f91\u3002

\u6388\u4eba\u4ee5\u9c7c\uff0c\u4e0d\u5982\u6388\u4eba\u4ee5\u6e14\u3002

\u6211\u5e0c\u671b\u5206\u4eab\u7684\u5185\u5bb9\u4e0d\u5c40\u9650\u4e8e\u5177\u4f53\u7684\u8d44\u6599\uff0c\u4e5f\u662f\u63d0\u4f9b\u4e2a\u4eba\u5e94\u5bf9\u95ee\u9898\u3001\u89e3\u51b3\u95ee\u9898\u7684\u601d\u8def\u3002\u5982\u679c\u80fd\u5bf9\u4f60\u6709\u6240\u542f\u53d1\uff0c\u4fbf\u662f\u6211\u5206\u4eab\u7684\u4ef7\u503c\u6240\u5728\uff0c\u540e\u7eed\u4f1a\u9646\u7eed\u63a8\u8350\u4e00\u4e9b\u76f8\u5173\u5de5\u5177\uff0c\u5982obsdian\u3001zotero\u3001\u6d4f\u89c8\u5668\u63d2\u4ef6\uff0c\u4ecb\u7ecd\u7b80\u5355\u7684\u5e94\u7528\u573a\u666f\u3002

\u6700\u540e\uff0c\u5206\u4eab\u672c\u8eab\u8db3\u4ee5\u8ba9\u4eba\u5174\u594b\uff0c\u8fd8\u80fd\u4fc3\u8fdb\u4e2a\u4eba\u77e5\u8bc6\u7684\u67e5\u6f0f\u8865\u7f3a\u3002\u53e6\u5916\uff0c\u7531\u4e8e\u4e2a\u4eba\u65f6\u95f4\u548c\u80fd\u529b\u6709\u9650\uff0c\u535a\u5ba2\u4e2d\u7684\u5185\u5bb9\u96be\u514d\u4f1a\u6709\u4e00\u4e9b\u758f\u6f0f\u548c\u5c40\u9650\u6027\uff0c\u8fd8\u671b\u89c1\u8c05\u3002

\u6700\u6700\u540e\uff0c\u611f\u8c22\u5206\u4eab\u8d44\u6599\u7684\u540c\u5b66\u4eec\u3001\u611f\u8c22\u4e3a\u73ed\u7ea7\u505a\u8d21\u732e\u7684\u540c\u5b66\u4eec\uff0c\u611f\u8c22\u5171\u540c\u52aa\u529b\u7684\u540c\u4ec1\u4eec\uff01

"},{"location":"ML/","title":"Introduce","text":"

\u6b64\u5904\u7701\u7565...

"},{"location":"ML/ML-Link/","title":"\u63a8\u8350\u89c6\u9891","text":""},{"location":"ML/ML-Link/#_1","title":"\u673a\u5668\u5b66\u4e60","text":"
  • \u3010(\u5f3a\u63a8|\u53cc\u5b57)2022\u5434\u6069\u8fbe\u673a\u5668\u5b66\u4e60Deeplearning.ai\u8bfe\u7a0b\u3011

    \u642d\u914dGithub\u7684\u8be6\u7ec6\u4ee3\u7801

  • \u5468\u5fd7\u534e\u300a\u673a\u68b0\u5b66\u4e60\u300b\u5236\u914d\u5957\u89c6\u9891

    \u642d\u914dGithub\u7684\u5b66\u4e60\u7b14\u8bb0

"},{"location":"ML/ML-Link/#_2","title":"\u6df1\u5ea6\u5b66\u4e60","text":"
  • \u3010\u3010\u6388\u6743\u3011\u674e\u5b8f\u6bc52023\u6625\u673a\u5668\u5b66\u4e60\u8bfe\u7a0b\u3011

    MACHINE LEARNING 2023 SPRING

    \u642d\u914dGitHub\u8bfe\u7a0b\u5185\u5bb9

  • \u674e\u6c90-\u52a8\u624b\u5b66\u6df1\u5ea6\u5b66\u4e60

    \u300a\u52a8\u624b\u5b66\u6df1\u5ea6\u5b66\u4e60\u300b

"},{"location":"R/","title":"\u63a8\u8350\u8d44\u6599","text":"

\u3010R\u8bed\u8a00\u6570\u636e\u5206\u6790\u4ece\u5165\u95e8\u5230\u8fdb\u9636\uff08\u5df2\u5b8c\u7ed3\u3002\u7b2c6\u90e8\u5206\u53ef\u89c6\u5316\u4f5c\u56fe\u8bf7\u79fb\u6b65\u81f3 R\u8bed\u8a00\u6570\u636e\u53ef\u89c6\u5316\uff09\u3011

\u5317\u4eac\u5927\u5b66\u674e\u4e1c\u98ce\u8001\u5e08\u5f00\u8bbe\u7684\u300a\u7edf\u8ba1\u8f6f\u4ef6\u300b

985\u535a\u540e\u5927\u5e08\u5144\u5206\u4eab\uff0cchatGPT+R\u8bed\u8a00\u79d1\u7814\u6570\u636e\u4f5c\u56fe\uff01

\u5173\u4e8e\u8bfe\u5802\u7b14\u8bb0\u8fd8\u5728\u6293\u7d27\u6574\u7406\u5728\u3002\uff08\u4e0d\u597d\u610f\u601d\uff0c\u65f6\u95f4\u4e0d\u592a\u591f\u7528\uff0c\u5efa\u8bae\u4e2a\u4eba\u7ed3\u5408\u5e73\u65f6\u4f5c\u4e1a\u8fdb\u884c\u67e5\u6f0f\u8865\u7f3a\uff09

"},{"location":"R/#r-markdown","title":"R markdown","text":"

R Markdown \u6307\u5357

"},{"location":"R/#r","title":"\u5173\u4e8eR\u8bed\u8a00\u5b57\u5178\u7684\u5efa\u8bae","text":"

R\u8bed\u8a00\u5b57\u5178\u7684\u4e3b\u8981\u529f\u80fd\u662f\u8f85\u52a9\u67e5\u627e\u51fd\u6570\u53c2\u6570\u3001\u5feb\u901f\u4e86\u89e3\u51fd\u6570\u4f5c\u7528\uff0c\u4ee5\u53ca\u6709\u6ca1\u6709\u7c7b\u4f3c\u7684\u51fd\u6570\uff0c\u8be5\u529f\u80fd\u5229\u7528Rstudio\u81ea\u5e26\u7684help\u51fd\u6570\u4e5f\u80fd\u90e8\u5206\u5b9e\u73b0\u3002

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/","title":"\u57fa\u7840\u77e5\u8bc6","text":""},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_1","title":"\u5feb\u901f\u67e5\u8be2\u6ce8\u91ca","text":"

\uff081\uff09\u7c97\u7565\u770b\u4e0b\u53c2\u6570\u5185\u5bb9\uff1a \u5149\u6807\u60ac\u505c\u5728\u51fd\u6570\u540d\u4e0a \uff082\uff09\u8be6\u7ec6\u770b\u4e0b\u51fd\u6570\u8bbe\u7f6e\uff1a \u5149\u6807\u60ac\u505c\u5728\u51fd\u6570\u540d\u4e0a\uff0c\u518d\u6309F1\uff0c\u6548\u679c\u540chelp(function)\u3001?function

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_2","title":"\u5e38\u7528\u5feb\u6377\u952e","text":"

Alt+- \u8d4b\u503c\u7b26\u53f7\u201c<-\u201d

Ctr+shift+M \u7ba1\u9053\u7b26\u53f7\u201c%>%\u201d

Ctr+Alt+I R\u7a0b\u5e8f\u6846

Ctr+Shift+C #\u6ce8\u91ca\u7b26

Alt+L \u9690\u85cf\u4ee3\u7801\u5757

Alt+Shift+L Rmd\u4e2d\u5c55\u5f00\u4ee3\u7801\u5757

Alt+O\u9690\u85cf\u6240\u6709\u4ee3\u7801\u5757

Alt+Shift+O \u5c55\u5f00\u6240\u6709\u9690\u85cf\u7684\u4ee3\u7801\u5757

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_3","title":"\u5e38\u89c1\u7b26\u53f7","text":"

df$column \u5f15\u7528df\u6570\u636e\u4e2d\u7684\u6307\u5b9a\u5b57\u6bb5\u6570\u636e

~\u5b9a\u4e49\u533f\u540d\u51fd\u6570\uff0c\u5c31\u662f\u7b80\u5355\u51fd\u6570\uff0c~ \u524d\u9762\u4ee3\u8868\u56e0\u6807\u91cf\uff0c\u540e\u9762\u4ee3\u8868\u81ea\u53d8\u91cf

function(...)\u63a5\u6536\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570\uff0c\u5229\u7528\u5faa\u73af\u4f9d\u6b21\u53d6\u51fa

%in%\u00a0\u662f\u7528\u4e8e\u6d4b\u8bd5\u5411\u91cf\u4e2d\u5143\u7d20\u662f\u5426\u5c5e\u4e8e\u53e6\u4e00\u4e2a\u5411\u91cf\u6216\u5217\u8868\u7684\u8fd0\u7b97\u7b26\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u5411\u91cf

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_4","title":"\u57fa\u7840\u529f\u80fd","text":"

getwd()\u83b7\u5f97\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55

setwd()\u8bbe\u7f6e\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55

options()\u7528\u4e8e\u8bbe\u7f6e\u548c\u67e5\u8be2\u5168\u5c40\u9009\u9879

print()\u3001printf()\u3001sprintf()\u8fdb\u884c\u53d8\u91cf\u8f93\u51fa\u3001\u683c\u5f0f\u5316\u8f93\u51fa\u3001\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\u8f93\u51fa

cat()\u7ed3\u5408paste()\u5c06\u591a\u4e2a\u5b57\u7b26\u4e32\u6570\u636e\u8fdb\u884c\u8f93\u51fa\uff0c\u6bd4sprintf\u8f93\u51fa\u66f4\u7075\u6d3b

paste()\u5c06\u591a\u4e2a\u5bf9\u8c61\uff08\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u7b49\uff09\u8fde\u63a5\u6210\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u5b57\u7b26\u4e32\u95f4\u4f1a\u81ea\u5e26\u7a7a\u683c\uff0c\u7528paste0()\u4e0d\u5e26\u7a7a\u683c

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_5","title":"\u6570\u636e\u7c7b\u578b","text":"

^a4f511

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_6","title":"\u7279\u6b8a\u503c","text":"

\u5305\u62ecNA\uff08Missing Values\uff09,NULL,NaN,Inf/-Inf

is.na() \u7f3a\u5931\u503c\uff0c\u8f6f\u4ef6\u8bc6\u522b\u4e0d\u51fa\u6765\uff0c\u4e0d\u53ef\u7528

is.null() \u7a7a\u503c

is.nan() \u975e\u6570\u503c\uff0c\u6570\u5b66\u8ba1\u7b97\u4e2d\u51fa\u73b0\u65e0\u5b9a\u4e49\u7684\u7ed3\u679c\u65f6\uff0c\u59820/0 \u6216\u8d1f\u6570\u7684\u5e73\u65b9\u6839

is.infinite() \u6b63\u65e0\u7a77\u5927/\u8d1f\u65e0\u7a77\u5927

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_7","title":"\u6570\u636e\u7c7b\u578b\u7684\u5224\u65ad","text":"

typeof() \u67e5\u627e\u6570\u636e\u7c7b\u578b

is.numeric() \u5224\u65ad\u662f\u5426\u4e3a\u6570\u503c\u578b\uff0c\u53cd\u9988\u903b\u8f91\u578b\u6570\u503c\uff0cis.numeric(FALSE) \u8fd4\u56de\u5047\uff01

is.character() \u5224\u65ad\u5b57\u7b26\u578b\uff0c\u540c\u6837is.character(FALSE)\u8fd4\u56de\u5047

is.logical() \u5224\u65ad\u903b\u8f91\u578b\uff0c\u540c\u6837is.logical(FALSE)\u8fd4\u56de\u5047

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_8","title":"\u6570\u636e\u7c7b\u578b\u7684\u8f6c\u6362","text":"

[[as.integer()]]\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6574\u578b

as.numeric() \u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6570\u503c\u578b\uff0c\u4e0d\u80fd\u8f6c\u6362\u7684\u8f93\u51faNA\uff0c\u5176\u4e2das.numeric(T)\u8f93\u51fa\u4e3a1\uff0cas.numeric(F)\u8f93\u51fa\u4e3a0

as.double()\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u578b\uff0c\u5728R\u4e2d\u6570\u503c\u578b\u548c\u6d6e\u70b9\u578b\u662f\u7528\u4e00\u79cd\u7c7b\u578b\u7684\u6570\u636e

as.character() \u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5b57\u7b26\u578b

as.logical() \u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u903b\u8f91\u578b\uff08\u5176\u4e2d0\u4e3aFALSE\uff0c\u5176\u4ed6\u6570\u503c\u4e3aTRUE\uff09\uff0c\u4e0d\u80fd\u8f6c\u6362\u7684\u8f93\u51faNA

as.matrix()\u5c06\u5176\u4ed6\u6570\u636e\u5bf9\u8c61\u8f6c\u6362\u4e3a\u77e9\u9635

as.factor()\u8f6c\u5316\u4e3a\u56e0\u5b50\u7c7b\u578b

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_9","title":"\u6570\u636e\u7ed3\u6784","text":""},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_10","title":"\u5411\u91cf","text":"
  • \u521b\u5efa

    c() \u7ed9\u5b9a\u7684\u5bf9\u8c61\u7ec4\u5408\u6210\u4e00\u4e2a\u5411\u91cf

    seq() \u751f\u6210\u6570\u503c\u5411\u91cf

    seq_along()\u751f\u6210\u4e0e\u6307\u5b9a\u5bf9\u8c61\u957f\u5ea6\u76f8\u7b49\u7684\u5e8f\u5217

    rep()\u521b\u5efa\u91cd\u590d\u7684\u503c\u6216\u5411\u91cf

    as.vector() \u8f6c\u6362\u5176\u4ed6\u6570\u636e\u5bf9\u8c61\u4e3a\u5411\u91cf

  • \u751f\u6210\u65b0\u5411\u91cf

    expand.grid() \u6c42\u591a\u4e2a\u5411\u91cf\u95f4\u6240\u6709\u7684\u7ec4\u5408

  • \u5c5e\u6027

    length() \u5411\u91cf\u957f\u5ea6\uff0c\u5373\u5143\u7d20\u7684\u4e2a\u6570

    names() \u53ef\u4ee5\u5b9e\u73b0\u8d4b\u540d\u79f0\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u770b\u5411\u91cf\u540d\u79f0

    set_names() \u5411\u91cf\u547d\u540d\uff0c\u8ddf\u4e0b\u6807\u76f8\u533a\u5206

  • \u5411\u91cf\u7684\u7d22\u5f15

  • \u589e

    append()\u6dfb\u52a0\u5143\u7d20

  • \u5220

    • \u5220\u9664\u5bf9\u8c61

      rm() \u5220\u9664\u6307\u5b9a\u5bf9\u8c61

  • \u6539

    • \u79bb\u6563\u5316 cut()\u5c06\u8fde\u7eed\u578b\u7684\u53d8\u91cf\u5206\u6210\u6307\u5b9a\u5bbd\u5ea6\u7684\u533a\u95f4
  • \u67e5

    my_vector[!is.infinite(my_vector)]\u5e03\u5c14\u503c\u7684\u7b5b\u9009\u601d\u60f3

    which.max()\u8fd4\u56de\u5411\u91cf\u4e2d\u7684\u6700\u5927\u503c\u7684\u7d22\u5f15\u4f4d\u7f6e

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#factor","title":"\u56e0\u5b50\uff08factor\uff09","text":"

factor\u6570\u636e\u7ed3\u6784\uff0c\u9488\u5bf9\u7c7b\u522b\u6570\u636e\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e00\u79cd\u7279\u6b8a\u7684\u5411\u91cf\u3002

  • \u521b\u5efa

    factor()\u5c06\u4e00\u4e2a\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\uff08factor\uff09\u7c7b\u578b\u7684\u6570\u636e

  • \u5c5e\u6027

    levels()\u83b7\u53d6\u56e0\u5b50\uff08factor\uff09\u5bf9\u8c61\u7684\u6c34\u5e73\uff08levels\uff09

    nlevels()\u83b7\u53d6\u56e0\u5b50\uff08factor\uff09\u5bf9\u8c61\u7684\u6c34\u5e73\u6570\u91cf

  • \u5220

    droplevels()\u5220\u9664factor\u5bf9\u8c61\u4e2d\u672a\u4f7f\u7528\u7684\u6c34\u5e73\u3002

  • \u6539

    relevel() \u91cd\u65b0\u6307\u5b9afactor\u5bf9\u8c61\u7684\u6c34\u5e73\u987a\u5e8f

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#list","title":"\u5217\u8868(list)","text":"
  • \u521b\u5efa list() \u521b\u5efa\u5217\u8868\uff0c\u4ed6\u8fd9\u4e2a\u5217\u8868\u8ddfpython\u91cc\u4e0d\u592a\u4e00\u6837\uff0c\u53ef\u4ee5\u542b\u5411\u91cf\u548c\u77e9\u9635\uff1f

    nulist() \u89e3\u6563\u5217\u8868

  • \u5c5e\u6027 length()\u6d4b\u91cf\u5217\u8868\u5143\u7d20\u4e2a\u6570

    names() \u53ef\u4ee5\u83b7\u5f97\u5217\u8868\u7684\u540d\u79f0

  • \u5217\u8868\u7684\u7d22\u5f15

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_11","title":"\u6570\u7ec4","text":"
  • \u521b\u5efa

    array() \u521b\u5efa\u591a\u7ef4\u6570\u7ec4\uff0c\u6307\u5b9a\u5b57\u6bb5\u540d\u79f0

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_12","title":"\u77e9\u9635","text":"
  • \u521b\u5efa

    matrix()

  • \u751f\u6210\u65b0\u77e9\u9635

  • \u5c5e\u6027

    dim() \u83b7\u53d6\u6216\u8bbe\u7f6e\u5bf9\u8c61\u7684\u7ef4\u5ea6

    ncol() \u83b7\u53d6\u77e9\u9635\u6216\u6570\u636e\u6846\u7684\u5217\u6570

    nrow() \u83b7\u53d6\u77e9\u9635\u6216\u6570\u636e\u6846\u7684\u884c\u6570

    colnames()\u83b7\u53d6\u6216\u8bbe\u7f6e\u77e9\u9635\u7684\u5217\u540d

    rownames() \u83b7\u53d6\u6216\u8bbe\u7f6e\u77e9\u9635\u7684\u884c\u540d

    dimnames() \u83b7\u53d6\u6216\u8bbe\u7f6e\u77e9\u9635\u7684\u884c\u540d\u548c\u5217\u540d

  • \u77e9\u9635\u7684\u7d22\u5f15

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#dataframe-df","title":"\u6570\u636e\u6846(DataFrame \u7b80\u79f0DF)","text":"

\uff08\u7279\u6b8a\u7684\u5217\u8868\uff0c\u540cpython\u4e2d\u7684df\u6570\u636e\u7ed3\u6784\uff09

  • \u521b\u5efa

    data.frame() \u521b\u5efadf\u6570\u636e\u7ed3\u6784

  • \u5c5e\u6027

    dim() \u83b7\u5f97\u7ef4\u5ea6

    ncol() \u83b7\u5f97\u5217\u6570

    nrow() \u83b7\u5f97\u884c\u6570

    colnames() \u83b7\u53d6\u6216\u8bbe\u7f6e\u6570\u636e\u6846\u7684\u5217\u540d

    rownames() \u83b7\u53d6\u6216\u8bbe\u7f6e\u6570\u636e\u6846\u7684\u884c\u540d

    dimnames() \u83b7\u53d6\u6216\u8bbe\u7f6e\u6570\u636e\u6846\u7684\u884c\u540d\u548c\u5217\u540d

    names()\u8fd4\u56de\u5217\u540d\u79f0\uff0c\u76f8\u5f53\u4e8e\u6bcf\u4e00\u5217\u89c6\u4e3a\u5217\u8868

  • df\u7d22\u5f15

    \u4e00\u822c\u5728[]\u5217\u8868\u4e2d\u7528\u201ccolumn\u201d\u5b57\u7b26\u4e32\u7684\u5f62\u5f0f\u8868\u660e\u884c\u3001\u5217\u6807\u9898\uff0c\u8ddf\u6307\u660edf\uff0c\u76f4\u63a5\u4f7f\u7528column\u76f8\u533a\u5206

    df[]\u8fd4\u56de\u7684\u7ed3\u679c\u662fdt\uff08data tibble\uff09\u7b80\u5316\u6570\u636e\u6846\uff01

    df[[]]\u548cdf$colum\u8fd4\u56de\u4e00\u4e2a\u5217\u5411\u91cf\uff01\u53ea\u6709\u5217\u5411\u91cf\u624d\u80fd\u8fd0\u884c\u67d0\u4e9b\u7edf\u8ba1\u8fd0\u7b97

  • \u589e

    • \u751f\u6210\u65b0\u6570\u636e\u6846

      rbind() \u7eb5\u5411\u5408\u5e76\u6570\u636e\u6846

      cbind() \u6a2a\u5411\u5408\u5e76\u6570\u636e\u6846

  • \u5220

    na.omit() \u5220\u9664\u7f3a\u5931\u503c\u6240\u5728\u7684\u884c\u6570\u636e

  • \u6539

    • \u6539\u5c5e\u6027

      df$column <-as.integer(df$column)

      df <- df %>% mutate(column = as.integer(column))\uff1b\u5229\u7528mutate()\u548cacross()\u5b9e\u73b0\u591a\u4e2a\u5217\u5c5e\u6027\u540c\u65f6\u4fee\u6539

    • \u6539\u884c\u5217\u540d rename()\u7528\u65b0\u5217\u660e\u66ff\u4ee3\u65e7\u5217\u540d

      colnames(df) <- c(\"New_A\", \"New_B\")\u4fee\u6539\u5217\u6807\u9898\uff0c\u884c\u6807\u9898\u540c\u7406

  • \u67e5

    top_n()\u6839\u636e\u6307\u5b9a\u5b57\u6bb5\u6743\u91cd\u67e5\u770bdf\u524d\u591a\u5c11\u884c

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#tibble","title":"tibble","text":"

R\u4e2d\u5bf9df\u7684\u4f18\u5316\u540e\u7684\u6570\u636e\u7ed3\u6784\uff0c\u8ddftidyverse\u5305\u66f4\u52a0\u5951\u5408\u3002 http://blog.fens.me/r-tibble/

  • \u521b\u5efa

    tibble()\u7528\u4e8e\u521b\u5efa Tibble \u6570\u636e\u6846

    tribble() \u521b\u5efa\u5c0f\u89c4\u6a21\u7684\u793a\u4f8b\u6570\u636e\u6846\uff0c\u5927\u89c4\u6a21\u7528df\u6570\u636e\u6846

  • \u751f\u6210\u65b0tibble

    as_tibble(): \u5c06\u5176\u4ed6\u6570\u636e\u7ed3\u6784\uff08\u5982\u6570\u636e\u6846\uff09\u8f6c\u6362\u4e3atibble

  • \u5176\u4ed6\u64cd\u4f5c\u7c7b\u4f3cdf\uff0c\u4e3b\u8981\u6570\u7406\u4e24\u8005\u5dee\u5f02\uff01

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_13","title":"\u57fa\u672c\u8fd0\u7b97\u548c\u5e38\u7528\u51fd\u6570","text":""},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_14","title":"\u5411\u91cf","text":"

\u4e00\u822c\u80fd\u7528\u5728\u5411\u91cf\u4e2d\u7684\u51fd\u6570\uff0c\u4e5f\u80fd\u7528\u5728\u77e9\u9635\uff08\u89c6\u4e3a\u5217/\u884c\u5411\u91cf\uff09\u3001\u6570\u7ec4\uff08\u89c6\u4e3a\u5217/\u884c\u5411\u91cf\uff09\u3001\u6570\u636e\u6846\uff08\u89c6\u4e3a\u5217\u5411\u91cf\uff09\u4e2d\u3002

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_15","title":"\u6392\u5e8f\u51fd\u6570","text":"

sort(x)\u83b7\u5f97\u6392\u5e8f\u7684\u540e\u7684\u5411\u91cf\u503c

order(x) \u6392\u5e8f\u540e\u7684\u5411\u91cf\u503c\u5bf9\u5e94\u7684\u4e0b\u6807\u5411\u91cf

rank() \u8fd4\u56de\u5411\u91cf\u4e2d\u5143\u7d20\u7684\u6392\u540d\u5411\u91cf\uff08\u8fd9\u4e2a\u5143\u7d20\u6392\u7b2c\u51e0\uff09

rev() \u53cd\u8f6c\uff0c\u77e9\u9635\u8f6c\u7f6e\uff1f

"},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_16","title":"\u77e9\u9635\u548c\u6570\u636e\u6846","text":""},{"location":"R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/#_17","title":"\u5b57\u7b26\u4e32","text":"
  • \u6539

    format()\u683c\u5f0f\u5316\u6570\u503c\u6216\u65e5\u671f\u65f6\u95f4\u5bf9\u8c61\u7684\u663e\u793a\u65b9\u5f0f

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/","title":"\u57fa\u7840\u51fd\u6570\u548c\u6570\u7406\u7edf\u8ba1","text":""},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_1","title":"\u51fd\u6570","text":""},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_2","title":"\u81ea\u5b9a\u4e49\u51fd\u6570","text":"

function() R\u8bed\u8a00\u4e2d\u6ca1\u6709lambda \uff0c\u53ef\u4ee5\u7528function\u5b9a\u4e49\u533f\u540d\u51fd\u6570

sapply()\u53ef\u4ee5\u5904\u7406\u6570\u636e\u6846\u7684\u6bcf\u5217\u6570\u636e

lapply()\u5bf9\u5217\u8868\uff08list\uff09\u7684\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u6307\u5b9a\u7684\u51fd\u6570

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_3","title":"\u8fd0\u7b97\u76f8\u5173","text":"
  • \u8fd0\u7b97

    • \u7b97\u6570\u8fd0\u7b97 R\u8bed\u8a00\u4e2d\u6ca1\u6709\u76f4\u63a5\u7684\"sum+=1\"\u64cd\u4f5c\u7b26\uff0c\u53ea\u80fd\u901a\u8fc7\"sum=sum+1\"\u7684\u5f62\u5f0f

      sum() \u6c42\u548c

      cummean() \u8ba1\u7b97\u7d2f\u52a0\u5e73\u5747\u6570

      cumsum() \u7d2f\u52a0\uff0c\u5e76\u663e\u793a\u9010\u6b65\u7d2f\u52a0\u7684\u7ed3\u679c

      cumprod()\u7d2f\u4e58\u79ef\uff0c\u5e76\u663e\u793a\u9010\u6b65\u7d2f\u79ef\u7ed3\u679c

      round()\u6307\u5b9a\u4fdd\u7559\u5c0f\u6570\u4f4d\uff0c\u53ef\u4ee5\u6307\u5b9a\u8ba1\u7b97\u4fdd\u7559\u7684\u5c0f\u6570\u7ef4\u6570\uff0c\u5426\u5219\u5728options()\u4e2d\u8bbe\u7f6edigist\uff0c\u8fdb\u884c\u5168\u5c40\u53d8\u91cf\u8bbe\u7f6e

      ceiling(x)\u5411\u4e0a\u53d6\u6574\uff0c\u8981\u53d6\u6574\u7684\u6570\u503c\u6216\u6570\u503c\u5411\u91cf

    • \u903b\u8f91\u8fd0\u7b97

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_4","title":"\u7ed8\u56fe","text":"

\u5185\u7f6e\u51fd\u6570

par()\u8bbe\u7f6e\u56fe\u5f62\u53c2\u6570\uff0c\u9488\u5bf9\u5185\u7f6e\u7ed8\u56fe\u51fd\u6570\u751f\u6548\uff0cggplot2\u5305\u4e2d\u53e6\u6709\u56fe\u5f62\u8bbe\u7f6e\u51fd\u6570

hist() \u521b\u5efa\u76f4\u65b9\u56fe

barplot()\u7528\u4e8e\u521b\u5efa\u67f1\u72b6\u56fe\uff0c\u53ef\u4ee5\u7528\u4e8e\u663e\u793a\u5206\u7c7b\u53d8\u91cf\u7684\u9891\u6570\u6216\u5176\u4ed6\u7edf\u8ba1\u6307\u6807\u3002

pie()\u7ed8\u5236\u997c\u72b6\u56fe\uff0c\u53ef\u4ee5\u53c2\u770b\u77e5\u4e4e-\u997c\u56fe

density()\uff1a\u7528\u4e8e\u8ba1\u7b97\u5e76\u7ed8\u5236\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\uff0c\u53ef\u7528\u4e8e\u67e5\u770b\u6570\u636e\u7684\u5206\u5e03\u60c5\u51b5\u3002

par()\u5185\u7f6e\u51fd\u6570\uff0c\u8bbe\u7f6e\u56fe\u5f62

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_5","title":"\u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1","text":""},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_6","title":"\u63cf\u8ff0\u7edf\u8ba1","text":""},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_7","title":"\u63cf\u8ff0\u51fd\u6570","text":"
  • \u96c6\u4e2d\u8d8b\u52bf\u6307\u6807

    • \u4f4d\u7f6e\u5ea6\u91cf

      mean() \u6c42\u5747\u503c

      median()\u4e2d\u4f4d\u6570\uff0c\u662f\u5426\u9700\u8981\u7528\u5230round()\uff1f\u89c6\u6570\u636e\u7c7b\u578b\u800c\u5b9a

      mode()\u4f17\u6570\uff0c\u6ca1\u6709\u76f4\u63a5\u6c42\u4f17\u6570\u7684\u51fd\u6570

    • \u79e9\uff08\u5927\u5c0f\uff09\u7684\u5ea6\u91cf

      min() \u8ba1\u7b97\u6700\u5c0f\u503c

      max() \u8ba1\u7b97\u6700\u5927\u503c

      range() \u67e5\u627e\u6700\u5927\u3001\u6700\u5c0f\u503c\uff0c\u5e76\u5b58\u5165\u5230\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\u4e2d

      quantile() \u8ba1\u7b97\u5206\u4f4d\u6570\uff0c\u5982\u4e0a\u4e0b\u56db\u5206\u4f4d\u6570

  • \u79bb\u6563\u8d8b\u52bf\u6307\u6807

    • \u79bb\u6563\u7a0b\u5ea6\u5ea6\u91cf

      var()\u65b9\u5dee

      sd() \u5747\u65b9\u5dee\uff08\u6216\u6807\u51c6\u8bef\u5dee\uff09standard deviation

      IQR()\u56db\u5206\u8ddd\u79bb\uff0c\u4e0a\u56db\u5206\u4f4d\u6570-\u4e0b\u56db\u5206\u4f4d\u6570

      mad() \u7edd\u5bf9\u4e2d\u4f4d\u5dee

    • \u5b9a\u4f4d\u5ea6\u91cf

      first() \u67e5\u65e0\u6b64\u51fd\u6570\uff1f

      nth() \u67e5\u793a\u65e0\u6b64\u51fd\u6570\uff1f

      last() \u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u5143\u7d20

    • \u9891\u7387 table()\u8ba1\u7b97\u5143\u7d20\u7684\u9891\u6570\uff0c\u5f97\u5230factor\u7c7b\u578b\u6570\u636e\uff0c\u6c34\u5e73level\u4e3a\u4e0d\u91cd\u590d\u7684\u5143\u7d20\u540d\uff0c\u987a\u5e8f\u6309\u9ed8\u8ba4\u6392\u5e03\uff0c\u503c\u4e3a\u6bcf\u4e2a\u6c34\u5e73\u7684\u9891\u6570

      prop.table() \u5bf9\u6bd4\u4e0a\u9762\u7684\uff0c\u76f4\u63a5\u8ba1\u7b97\u5143\u7d20\u7684\u9891\u7387

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_8","title":"\u6982\u7387\u5206\u5e03","text":"
  • \u5747\u5300\u5206\u5e03

    runif() random uniform \u5747\u5300\u5206\u5e03

  • \u968f\u673a\u5206\u5e03Normal Distribution\uff08random\u3001probility\u3001quantile\u3001density\uff09

    rnorm() \u751f\u6210\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570

    pnorm() \u7531x\u5206\u4f4d\u6570\uff0c\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08CDF\uff09\uff0c\u5c31\u662f\u6982\u7387\u503c

    qnorm() \u7531\u6982\u7387\u503c\uff0c\u8ba1\u7b97\u5bf9\u5e94\u7684\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570(quantile)\uff0c\u5373x\u5206\u4f4d\u6570

    dnorm() \u7531x\u503c\uff0c\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08PDF\uff09

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_9","title":"\u63a8\u8bba\u7edf\u8ba1\u548c\u5047\u8bbe\u68c0\u9a8c","text":""},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_10","title":"\u62bd\u6837","text":"

slice_sample() \u4ecedf\u4e2d\u8fdb\u884c\u968f\u673a\u62bd\u6837

sample_n()\u4ece\u6570\u636e\u96c6\u4e2d\u968f\u673a\u62bd\u53d6\u89c2\u5bdf\u503c

sample_frac()\u968f\u673a\u62bd\u53d6\u6307\u5b9a\u6bd4\u4f8b\u7684\u89c2\u5bdf\u503c

sample() \u4ece\u7ed9\u5b9a\u7684\u5bf9\u8c61\u4e2d\u968f\u673a\u62bd\u6837

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_11","title":"\u4e09\u5927\u62bd\u6837\u5206\u5e03\uff1a","text":"
  • t\u5206\u5e03

    rt() \u751f\u6210t\u5206\u5e03\u7684\u968f\u673a\u6570

    pt() \u8ba1\u7b97t \u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08CDF\uff09\u503c

    qt() \u8ba1\u7b97 t \u5206\u5e03\u7684\u5206\u4f4d\u6570\uff08quantile\uff09

    dt() \u8ba1\u7b97 t \u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08PDF\uff09\u503c

  • \u5361\u65b9\u5206\u5e03

    rchisq() \u751f\u6210\u670d\u4ece\u5361\u65b9\u5206\u5e03\u7684\u968f\u673a\u53d8\u91cf\u3002

    pchisq() \u5361\u65b9\u5206\u5e03\u7d2f\u79ef\u5206\u5e03\u51fd\u6570

    qchisq()\u5361\u65b9\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff08Quantile\uff09

    dchisq() \u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570

  • F\u5206\u5e03

    rf()\u6ca1\u6709\u8fd9\u4e2a\u51fd\u6570

    pf()F\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7d2f\u79ef\u5206\u5e03\u51fd\u6570

    qf()F\u5206\u5e03\u7684\u53cd\u51fd\u6570\uff0c\u5373\u5206\u4f4d\u6570

    df()F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08PDF\uff09\u503c

"},{"location":"R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/#_12","title":"\u5047\u8bbe\u6027\u68c0\u9a8c","text":"

\u539f\u5047\u8bbe\u548c\u5907\u6709\u5047\u8bbe\u5177\u6709\u4e3b\u89c2\u533a\u522b\uff0c\u5c3195%\u7684\u7f6e\u4fe1\u5ea6\u800c\u8a00\uff0c\u8981\u8fbe\u52305%\u72af\u9519\u8bef\u7684\u6982\u7387\u662f\u975e\u5e38\u4f4e\u7684\uff0c\u6362\u53e5\u8bdd\u8bf4\u62d2\u7edd\u539f\u5047\u8bbe\u7684\u6761\u4ef6\u66f4\u4e3a\u82db\u523b\u3001\u4e25\u8c28\u3002\u4e00\u822cp-value<\u03b1\uff0c\u5373\u63a5\u53d7\u5907\u62e9\u5047\u8bbe\uff08H1\u65b0\u5047\u8bbe\uff09\u5c31\u5341\u5206\u5177\u6709\u8bf4\u670d\u529b\uff0c\u6240\u4ee5\u8001\u5e08\u624d\u8bf4\u5907\u7528\u5047\u8bbe\u591a\u4e3a\u7a81\u7834\u5e38\u89c4\u3002

\u5bf9\u4e8e\u8001\u516c\u53f8\uff0c\u5de6\u4fa7\u68c0\u9a8c\u66f4\u7b26\u5408\u9700\u6c42\uff0c\u53ea\u6709\u6781\u7aef\u60c5\u51b5\u624d\u4f1a\u5224\u5b9a\u4e3a\u8d28\u91cf\u95ee\u9898\uff1b\u5bf9\u4e8e\u65b0\u516c\u53f8\uff0c\u53f3\u7aef\u68c0\u9a8c\u66f4\u4e3a\u4e25\u8c28\uff0c\u53ea\u6709\u4ea7\u54c1\u8d28\u91cf\u8db3\u591f\u597d\uff0c\u624d\u4f1a\u63a5\u53d7\u3002

  • \u8bc4\u4f30\u6837\u672c\u662f\u5426\u7b26\u5408\u6b63\u6001\u6027\uff08\u6837\u672c\u6570\u636e\u5927\u81f4\u5448\u6b63\u6001\u5206\u5e03\uff09\uff1a

    • \u5b9a\u6027\u5206\u6790 hist\uff0cgoem_histgram\u7ed8\u5236\u76f4\u65b9\u56fe\uff0c\u770b\u4e0b\u5206\u5e03\u5f62\u5f0f

      qqnorm()\u7ed8\u5236\u4e00\u4e2a\u6837\u672c\u7684\u6b63\u6001\u6982\u7387\u56fe\uff08QQ\u56fe\uff09

      qqline()\u5728QQ\u56fe\u4e0a\u6dfb\u52a0\u53c2\u8003\u7ebf\uff0c\u4ee5\u65b9\u4fbf\u68c0\u6d4b

    • \u5b9a\u91cf\u5206\u6790\uff1a\u4e0d\u540c\u65b9\u6cd5\u7684\u68c0\u6d4b\u7ed3\u679c\u53ef\u80fd\u76f8\u53cd\uff0c\u6839\u636e\u5b9e\u9645\u8981\u6c42\uff0c\u9009\u53d6\u54ea\u79cd\u65b9\u6cd5\u505a\u6b63\u6001\u6027\u68c0\u9a8c

      shapiro.test() Shapiro-Wilk Test\uff0c\u68c0\u9a8c\u662f\u5426\u7b26\u5408\u6b63\u6001\u5206\u5e03

      ks.test() Kolmogorov-SmirnovTest\uff0c\u68c0\u9a8c\u662f\u5426\u7b26\u5408\u5176\u4ed6\u5206\u5e03\uff08\u542b\u6b63\u6001\uff09

      ad.test() nortest\u5305\uff0cAnderson-Darling Test\uff0c\u68c0\u9a8c\u662f\u5426\u7b26\u5408\u6b63\u6001\u5206\u5e03

      \u65b9\u5dee\u5206\u6790\u4e2d\u7528\u4e8e\u68c0\u9a8c\u6837\u672c\u7684\u6b63\u6001\u6027\uff0cKolmogorov-Smirnov test\uff1f

  • \u6bd4\u4f8b\u68c0\u9a8c

    binom.test()\u4e8c\u9879\u5206\u5e03\u68c0\u9a8c\uff0c\u5355\u4e2a\u6bd4\u4f8b

    • [x] stats\\:\\:prop.test() \u57fa\u4e8estats\u5305\uff0c\u76f4\u63a5\u7c7b\u6bd4t.test()\u7684\u4f5c\u7528\uff0c\u5f97\u5230\u7684\u7ed3\u679c\u66f4\u8be6\u5c3d\uff0c\u4e24\u4e2a\u6bd4\u4f8b

    infer\\:\\:prop_test() \u57fa\u4e8einfer\u5305\uff0c\u7ed3\u679c\u7a0d\u5fae\u7b80\u7565\u4e9b

  • t\u68c0\u9a8c(Student's t-Test)

    t.test()

  • \u5361\u65b9\u68c0\u9a8c

    chisq.test() \u5361\u65b9\u68c0\u9a8c

  • F\u68c0\u9a8c

    • \u65b9\u5dee\u5206\u6790

      stats\uff1a\uff1avar.test() \u7528\u4e8eF\u68c0\u9a8c\uff0c\u53ef\u4ee5\u6bd4\u8f83\u4e24\u4e2a\u6837\u672c\u7684\u65b9\u5dee\u9f50\u6027

      car\uff1a\uff1aleveneTest()\u5217\u6587\u68c0\u9a8c\uff0c\u68c0\u9a8c\u6837\u672c\u95f4\u7684\u65b9\u5dee\u9f50\u6027

      stats\uff1a\uff1abartlett.test()\u5df4\u7279\u5229\u7279\u68c0\u9a8c\uff0c\u68c0\u9a8c\u4e09\u4e2a\u6837\u672c\u7684\u65b9\u5dee\u9f50\u6027

    • ANOVA\uff08Analysis of Variance\uff0c\u65b9\u5dee\u5206\u6790\uff09

      aov() \u505aANOVA\u3002TukeyHSD() \u57fa\u4e8eANOVA\u7684\u7ed3\u679c\uff0c\u8fdb\u884c\u591a\u91cd\u6bd4\u8f83\uff1f

anova()\u65b9\u5dee\u5206\u6790\uff1f\uff1f

"},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/","title":"\u5efa\u6a21","text":"

summary() \u67e5\u770bmodel\u6a21\u578b\u5185\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u7c7b\u4f3cy~x\u7684\u5f62\u5f0f\u90fd\u7b97

"},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/#_1","title":"\u6709\u76d1\u7763\u5b66\u4e60","text":""},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/#_2","title":"\u56de\u5f52","text":"

optim()\u6a21\u578b\u4f18\u5316\uff0c\u5e94\u8be5\u7684\u66f4\u5e7f\u4e9b\uff0c\u66f4\u624b\u52a8\u4e9b\uff1f

lm()\u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff0c\u7ed3\u5408summary()\u4ea7\u770b\u8be6\u7ec6\u6a21\u578b\u4fe1\u606f

car\uff1a\uff1avif() \u8ba1\u7b97\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u4e2d\u5404\u4e2a\u9884\u6d4b\u53d8\u91cf\u7684\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50VIF\uff0cVIF\u503c\u5927\u4e8e10\u53ef\u80fd\u8868\u793a\u5b58\u5728\u591a\u91cd\u5171\u7ebf\u6027\u7684\u95ee\u9898

  • \u4e24\u4e2a\u53d8\u91cf\u7684\u76f8\u5173\u6027\u68c0\u9a8c

    stats\uff1a\uff1acor.test()\u6267\u884c\u4e24\u4e2a\u53d8\u91cf\u4e4b\u95f4\u7684\u76f8\u5173\u6027\u68c0\u9a8c

\u53d8\u91cf\u9009\u62e9

stepAIC()\u8d64\u6c60\u4fe1\u606f\u51c6\u5219\uff0c\u9009\u62e9\u9002\u5408\u548c\u5254\u9664\u4e0d\u5408\u9002\u7684\u53d8\u91cf

stats\uff1a\uff1aAIC()\u8d64\u6c60\u4fe1\u606f\u51c6\u5219

predict()\u6839\u636e\u7ed9\u5b9a\u6a21\u578b\u548c\u8f93\u5165\u53d8\u91cf\uff0c\u8f93\u51fa\u9884\u6d4b\u503c

add_residuals()\u6c42\u6b8b\u5dee\uff0c\u771f\u5b9e\u503c\u548c\u9884\u6d4b\u503c\u7684\u5dee\u503c\uff1f\u7528\u4e8e\u68c0\u6d4b\u65b0\u7684\u6570\u636e\u7684\u62df\u5408\u7a0b\u5ea6

"},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/#_3","title":"\u5206\u7c7b","text":"

glm()\u62df\u5408\u5e7f\u4e49\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff0c\u9636\u6bb5\u6027\u63a5\u89e6\u7684\u4e3a\u903b\u8f91\u56de\u5f52\uff0c\u8fd9\u4e2a\u6a21\u578b\u7684\u8f93\u51fa\u7ed3\u679c\u662f\u767e\u5206\u6bd4\uff0c\u8fd8\u662f0\u548c1\uff1f\u5982\u679c\u662f\u767e\u5206\u6bd4\uff0c\u9ed8\u8ba4\u4ee550%\u4f5c\u4e3a\u5206\u754c\u7ebf\u5417\uff1f\u7ed3\u5408summary()\u4ea7\u770b\u8be6\u7ec6\u6a21\u578b\u4fe1\u606f

"},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/#_4","title":"\u65e0\u76d1\u7763\u5b66\u4e60","text":""},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/#_5","title":"\u5b9e\u8df5","text":""},{"location":"R/02%20%E5%BB%BA%E6%A8%A1/#vs","title":"\u5206\u7c7bVS\u6570\u503c","text":""},{"location":"R/03%20readr/","title":"readr","text":""},{"location":"R/03%20readr/#_1","title":"\u8bfb\u53d6\u6570\u636e\u6587\u4ef6","text":"

read_csv() \u8bfb\u53d6csv\u6587\u4ef6

readxl\uff1a\uff1aread_excel() \u8bfb\u53d6excel\u6587\u4ef6

"},{"location":"R/03%20readr/#_2","title":"\u5199\u5165\u6570\u636e\u6587\u4ef6","text":"

write_csv()\u5199\u5165csv\u6587\u4ef6

\u6570\u636e\u8bfb\u53d6\u548c\u89e3\u6790\uff1a

  • read_tsv(): \u8bfb\u53d6\u5236\u8868\u7b26\u5206\u9694\u7684\u6587\u672c\u6587\u4ef6\u3002

  • read_delim(): \u8bfb\u53d6\u6307\u5b9a\u5206\u9694\u7b26\u7684\u6587\u672c\u6587\u4ef6\u3002

  • read_fwf(): \u8bfb\u53d6\u56fa\u5b9a\u5bbd\u5ea6\u683c\u5f0f\u7684\u6587\u672c\u6587\u4ef6\u3002

  • read_table(): \u8bfb\u53d6\u7a7a\u683c\u5206\u9694\u7684\u6587\u672c\u6587\u4ef6\u3002

  • read_lines(): \u9010\u884c\u8bfb\u53d6\u6587\u672c\u6587\u4ef6\u3002

  • parse_datetime(): \u89e3\u6790\u65e5\u671f\u548c\u65f6\u95f4\u5b57\u7b26\u4e32\u4e3aPOSIXct\u5bf9\u8c61\u3002

\u6570\u636e\u5199\u5165\uff1a

  • write_tsv(): \u5c06\u6570\u636e\u5199\u5165\u5236\u8868\u7b26\u5206\u9694\u7684\u6587\u672c\u6587\u4ef6\u3002

  • write_delim(): \u5c06\u6570\u636e\u5199\u5165\u6307\u5b9a\u5206\u9694\u7b26\u7684\u6587\u672c\u6587\u4ef6\u3002

\u6570\u636e\u5904\u7406\u548c\u8f6c\u6362\uff1a

  • parse_number(): \u5c06\u5b57\u7b26\u578b\u6570\u636e\u89e3\u6790\u4e3a\u6570\u503c\u578b\u6570\u636e\u3002

  • parse_factor(): \u5c06\u5b57\u7b26\u578b\u6570\u636e\u89e3\u6790\u4e3a\u56e0\u5b50\u578b\u6570\u636e\u3002

  • parse_logical(): \u5c06\u5b57\u7b26\u578b\u6570\u636e\u89e3\u6790\u4e3a\u903b\u8f91\u578b\u6570\u636e\u3002

  • parse_date(): \u5c06\u5b57\u7b26\u578b\u6570\u636e\u89e3\u6790\u4e3a\u65e5\u671f\u578b\u6570\u636e\u3002

  • parse_time(): \u5c06\u5b57\u7b26\u578b\u6570\u636e\u89e3\u6790\u4e3a\u65f6\u95f4\u578b\u6570\u636e\u3002

\u5176\u4ed6\uff1a

  • locale(): \u8bbe\u7f6e\u89e3\u6790\u6570\u636e\u65f6\u7684\u672c\u5730\u5316\u9009\u9879\u3002

  • guess_encoding(): \u731c\u6d4b\u6587\u4ef6\u7684\u5b57\u7b26\u7f16\u7801\u3002

  • cols(): \u6307\u5b9a\u8981\u8bfb\u53d6\u7684\u5217\u53ca\u5176\u7c7b\u578b\u3002

  • spec(): \u521b\u5efa\u6216\u4fee\u6539\u6570\u636e\u8bfb\u53d6\u89c4\u683c\u3002

"},{"location":"R/04%20dplyr/","title":"dplyr","text":""},{"location":"R/04%20dplyr/#_1","title":"\u6570\u636e\u7684\u57fa\u7840\u5904\u7406","text":""},{"location":"R/04%20dplyr/#_2","title":"\u7b5b\u9009\u884c/\u5217","text":"

filter() \u5904\u7406\u6570\u636e\u6846\u6570\u636e\uff08df\uff09\uff0c\u7b5b\u9009\u6ee1\u8db3\u6761\u4ef6\u7684\u884c

filter_if()\u9009\u62e9\u6ee1\u8db3\u7279\u5b9a\u6761\u4ef6\u7684\u884c,\u8ddffilter()\u7684\u5dee\u522b\u662f\uff1f

slice()\u6839\u636e\u6307\u5b9a\u884c\u6570\uff0c\u9009\u62e9\u884c\uff1f

select() \u6309\u7167\u6307\u5b9a\u5217\uff0c\u5f62\u6210\u65b0\u7684\u6570\u636e\u6846

select_if()\u9009\u62e9\u6ee1\u8db3\u7279\u5b9a\u6761\u4ef6\u7684\u5217

"},{"location":"R/04%20dplyr/#_3","title":"\u5bf9\u884c/\u5217\u6570\u636e\u8fdb\u884c\u64cd\u4f5c","text":"

arrange() \u5bf9df\u4e2d\u884c\u6570\u636e\u6309\u6307\u5b9a\u5217\u4e2d\u6570\u636e\u8fdb\u884c\u91cd\u65b0\u6392\u5e8f

order() \u8fd4\u56de\u6392\u5e8f\u7684\u7d22\u5f15\u503c\uff0c\u5185\u7f6e\u6392\u5e8f\u51fd\u6570

min_rank() \u6700\u5c0f\u503c\u6392\u5e8f\u5e8f\u53f7

sort() \u5bf9\u5143\u7d20\u8fdb\u884c\u6392\u5e8f\uff0c\u5185\u7f6e\u51fd\u6570

mutate() \u6839\u636e\u65e7\u5217\u6dfb\u52a0\u65b0\u5217\uff0c\u6216\u8005\u66ff\u6362\u65e7\u5217\u6570\uff0c\u914d\u4e0aacross()\u5728\u591a\u4e2a\u5217\u4e0a\u5e94\u7528\u76f8\u540c\u7684\u53d8\u6362\u6216\u7edf\u8ba1\u51fd\u6570

transmute() \u53ea\u4fdd\u7559\u65b0\u5217

lag() \u548clead()\u504f\u79fb\u51fd\u6570\uff0c\u540e\u79fb\u548c\u524d\u79fb

"},{"location":"R/04%20dplyr/#_4","title":"\u5206\u7ec4\u7edf\u8ba1","text":"

group_by() \u6307\u5b9a\u5217\u8fdb\u884c\u5206\u7ec4\uff0c\u5206\u7ec4\u540e\u518d\u7528summarize()\u540e\u4f1a\u4fdd\u7559\u5206\u7ec4\u5217

cut()\u51fd\u6570\uff0c\u8fdb\u884c\u56fa\u5b9a\u8303\u56f4\u503c\u6dfb\u52a0\u65b0\u7ec4

ungroup() \u53d6\u6d88\u5206\u7ec4\uff0c\u5728\u4f7f\u7528\u7ba1\u9053\u7b26\u8fdb\u884c\u53c2\u6570\u4f20\u9012\u4e2d\u4f7f\u7528\u7684\u662f\u540c\u4e00\u4e2a\u6e90\u6570\u636e\uff0c\u6240\u4ee5\u8981\u53ca\u65f6\u64a4\u9500\u5206\u7ec4\u64cd\u4f5c\uff01

  • \u805a\u7c7b

    summarize()\u3001summarise() \u7edf\u8ba1\u5206\u6790\u5217\u6570\u636e

    slice_max()\u6307\u5b9a\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c

    slice_min()

n() \u8ba1\u7b97\u884c\u6570

count()\u8ba1\u7b97\u552f\u4e00\u503c\u51fa\u73b0\u6b21\u6570\uff0c\u8ddfpython\u4e0d\u540c

n_distinct()\u8ba1\u7b97\u79cd\u7c7b\u6570\uff0c\u8ddf\u4e0a\u9762\u7684\u552f\u4e00\u503c\u6b21\u6570\u6307\u9891\u6570\u4e0d\u540c

"},{"location":"R/04%20dplyr/#_5","title":"\u5904\u7406\u5173\u7cfb\u6570\u636e","text":"

inner_join() \u5185\u8fde\u63a5

left_join()\u5de6\u8fde\u63a5

right_join()\u53f3\u8fde\u63a5

full_join() \u5168\u8fde\u63a5

semi_join()\u534a\u8fde\u63a5\uff0c\u76ee\u7684\u7b5b\u9009\u5de6\u8868\u6570\u636e\uff0c\u7c7b\u4f3c\u4ea4\u96c6\u4f46\u53ea\u4fdd\u7559\u505a\u8868\u6570\u636e\u3002\u4ee5\u53f3\u8868\u6570\u636e\u4f5c\u4e3a\u6807\u51c6\uff0c\u7b5b\u9009\u5de6\u8868\u4e2d\u5b58\u5728\u4e8e\u53f3\u8868\u4e2d\u7684\u6570\u636e\uff0c\u5e76\u4e0d\u4f1a\u8fd4\u56de\u53f3\u8868\u4e2d\u4efb\u4f55\u6570\u636e\u3002\u53f3\u6709\u5de6\u4e5f\u6709\u7684\u6570\u636e\u3002

anti_join()\u53cd\u8fde\u63a5\uff0c\u76ee\u7684\u662f\u7b5b\u9009\u5de6\u8868\u6570\u636e\uff0c\u8ddf\u534a\u8fde\u63a5\u76f8\u53cd\uff0c\u7b5b\u9009\u53f3\u8868\u6ca1\u6709\u7684\u6570\u636e\uff0c\u8fd4\u56de\u5728\u7b2c\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u800c\u5728\u7b2c\u4e8c\u4e2a\u6570\u636e\u6846\u4e2d\u4e0d\u5b58\u5728\u7684\u884c\u3002\u53f3\u65e0\uff0c\u5de6\u6709\u7684\u6570\u636e\u3002

merge() \u5185\u7f6e\u51fd\u6570\uff0c\u4e0d\u5efa\u8bae\u7528

"},{"location":"R/05%20ggplot2/","title":"ggplot2","text":"

ggplot2\u4f5c\u56fe\u6559\u7a0b

  • \u6570\u636edataset\uff1a\u4f5c\u56fe\u7528\u7684\u539f\u59cb\u6570\u636e\uff1b

  • \u7f8e\u5b66 aes(): \u51e0\u4f55\u6216\u8005\u7edf\u8ba1\u5bf9\u8c61\u7684\u7f8e\u5b66\uff0c\u6bd4\u5982\u4f4d\u7f6e\uff0c\u989c\u8272\uff0c\u5927\u5c0f\uff0c\u5f62\u72b6\u7b49\uff1b

  • \u51e0\u4f55\u56fe\u5f62 geom_ :\u8868\u793a\u6570\u636e\u7684\u51e0\u4f55\u56fe\u5f62*\uff1b

  • \u4e3b\u9898 theme(): \u56fe\u5f62\u7684\u6574\u4f53\u89c6\u89c9\u9ed8\u8ba4\u503c\uff0c\u5982\u80cc\u666f\u3001\u7f51\u683c\u3001\u8f74\u3001\u9ed8\u8ba4\u5b57\u4f53\u3001\u5927\u5c0f\u548c\u989c\u8272

  • \u523b\u5ea6 scale_(): \u6570\u636e\u4e0e\u7f8e\u5b66\u7ef4\u5ea6\u4e4b\u95f4\u7684\u6620\u5c04\uff0c\u6bd4\u5982\u56fe\u5f62\u5bbd\u5ea6\u7684\u6570\u636e\u8303\u56f4\uff1b

  • \u5750\u6807\u7cfb\u7edf coord_: \u6570\u636e\u7684\u8f6c\u6362\uff1b

  • \u9762 facet_: \u6570\u636e\u56fe\u8868\u7684\u6392\u5217

  • \u7edf\u8ba1\u8f6c\u6362 stat_: \u6570\u636e\u7684\u7edf\u8ba1\uff0c\u5bf9\u6570\u636e\u8fdb\u884c\u5904\u7406 \uff0c\u6bd4\u5982\u767e\u5206\u4f4d\uff0c\u62df\u5408\u66f2\u7ebf\u6216\u8005\u548c\uff1b

"},{"location":"R/05%20ggplot2/#_1","title":"\u753b\u5e03\uff1a\u6570\u636e\u96c6+\u7f8e\u5b66","text":"

ggplot() \u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61base(\u5c31\u662f\u753b\u5e03)\uff01\u5728\u753b\u5e03\u7684\u57fa\u7840\u4e0a\u518d\u53e0\u52a0\u5404\u79cd\u8981\u7d20\u3002\u6307\u5b9a\u6570\u636e\u96c6\uff0c\u8bbe\u7f6e\u6570\u636e\u548c\u56fe\u5f62\u7684\u6574\u4f53\u5c5e\u6027\u3002\u5728\u4e0a\u9762\u53ef\u4ee5\u53e0\u52a0\u591a\u4e2a\u56fe\u5f62

aes() x,y\u8f74\u6620\u5c04\u5173\u7cfb\uff0c\u5b9a\u4e49\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\u3002\u6307\u5b9a\u6570\u636e\u7684\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u89c6\u89c9\u5c5e\u6027\u4e4b\u95f4\u7684\u5bf9\u5e94\u5173\u7cfb\uff0c\u5982 x \u8f74\u4f4d\u7f6e\u3001y \u8f74\u4f4d\u7f6e\u3001\u989c\u8272\u3001\u5f62\u72b6\u7b49\u3002

"},{"location":"R/05%20ggplot2/#geom_","title":"\u51e0\u4f55\u5f62\u72b6\u5c42\uff1ageom_()","text":"

\u771f\u6b63\u610f\u4e49\u4e0a\u7684\u5728\u753b\u5e03\u4e0a\u5448\u73b0\u51fa\u6765\u51e0\u4e2a\u56fe\u5f62

color\u8be6\u60c5

geom_point() \u753b\u6563\u70b9\u56fe\uff0c\u6570\u636e\u6620\u5c04

geom_line() \u753b\u6298\u7ebf\u56fe

geom_smooth()\u753b\u521b\u5efa\u5e73\u6ed1\u62df\u5408\u66f2\u7ebf\uff0c\u89c4\u907f\u4e00\u4e9b\u79bb\u7fa4\u6781\u7aef\u70b9

geom_bar() \u753b\u67f1\u72b6\u56fe(\u6761\u5f62\u56fe)\uff0c\u5904\u7406\u5206\u7c7b\u578b\u6570\u636e

geom_col() \u9ed8\u8ba4\u4e0b\u76f4\u63a5\u7528\u6570\u503c\u753b\u67f1\u72b6\u56fe

geom_histogram() \u753b\u76f4\u65b9\u56fe\uff0c\u5904\u7406\u6570\u503c\u578b\u6570\u636e

geom_text() \u5728\u56fe\u5f62\u4e2d\u6dfb\u52a0\u6587\u672c\u6807\u7b7e

geom_boxplot() \u7bb1\u7ebf\u56fe

geom_vline() \u5782\u76f4\u7ebf\u51fd\u6570

geom_density() \u6839\u636e\u6570\u503c\uff0c\u8ba1\u7b97\u6982\u7387\u5bc6\u5ea6\u66f2\u7ebf

geom_function() \u7ed8\u5236\u81ea\u5b9a\u4e49\u6216\u533f\u540d\u51fd\u6570\u66f2\u7ebf\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u56fe\u5f62

stat_function()\u7ed8\u5236\u81ea\u5b9a\u4e49\u6216\u533f\u540d\u51fd\u6570\u7684\u66f2\u7ebf\uff0c\u901a\u5e38\u4e0e\u5176\u4ed6\u56fe\u5c42\u51fd\u6570\u4e00\u8d77\u4f7f\u7528

"},{"location":"R/05%20ggplot2/#_2","title":"\u8f85\u52a9\u663e\u793a\u5c42","text":"

theme()\u8bbe\u7f6e\u56fe\u5f62\u7684\u4e3b\u9898\uff0c\u5305\u62ec\u80cc\u666f\u3001\u6807\u9898\u3001\u8f74\u6807\u7b7e\u3001\u56fe\u4f8b\u7b49\u7684\u5916\u89c2\u548c\u6837\u5f0f\uff0c\u7f8e\u5316\u4f5c\u7528

labs()\u8bbe\u7f6e\u56fe\u5f62\u7684\u6807\u7b7e\uff0c\u5305\u62ec\u6807\u9898\u3001\u8f74\u6807\u7b7e\u3001\u56fe\u4f8b\u6807\u9898\u7b49\u3002

scale_x_continuous() \u8c03\u6574\u56fe\u5f62\u7684x\u8f74\u523b\u5ea6\u548c\u4fee\u6539\u6807\u7b7e\u6587\u672c

scale_y_continuous()\u8c03\u6574\u56fe\u5f62\u7684y\u8f74\u523b\u5ea6\u548c\u6807\u7b7e

  • scale_color_*(): \u8bbe\u7f6e\u56fe\u5f62\u4e2d\u586b\u5145\u989c\u8272\u548c\u8fb9\u6846\u989c\u8272\u7684\u5c5e\u6027\u3002

    scale_color_manual()\u624b\u52a8\u8c03\u6574\u989c\u8272\u6620\u5c04

  • scale_fill_*() scale_fill_manual(): \u624b\u52a8\u8bbe\u7f6e\u79bb\u6563\u53d8\u91cf\u7684\u586b\u5145\u989c\u8272\u3002\u53ef\u4ee5\u6307\u5b9a\u6bcf\u4e2a\u79bb\u6563\u503c\u5bf9\u5e94\u7684\u5177\u4f53\u989c\u8272\u3002

    scale_fill_gradient(): \u4f7f\u7528\u8fde\u7eed\u53d8\u91cf\u7684\u503c\u6765\u521b\u5efa\u586b\u5145\u989c\u8272\u7684\u6e10\u53d8\u3002\u53ef\u4ee5\u8bbe\u7f6e\u6e10\u53d8\u7684\u8d77\u59cb\u548c\u7ed3\u675f\u989c\u8272\u3002

    scale_fill_gradientn(): \u4f7f\u7528\u8fde\u7eed\u53d8\u91cf\u7684\u503c\u6765\u521b\u5efa\u586b\u5145\u989c\u8272\u7684\u6e10\u53d8\uff0c\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u989c\u8272\u3002

    scale_fill_gradient2(): \u7c7b\u4f3c\u4e8escale_fill_gradient()\uff0c\u4f46\u5141\u8bb8\u6307\u5b9a\u4e2d\u95f4\u503c\u7684\u989c\u8272\u3002

    scale_fill_hue(): \u4f7f\u7528\u8272\u76f8\u73af\u6765\u8bbe\u7f6e\u79bb\u6563\u53d8\u91cf\u7684\u586b\u5145\u989c\u8272\uff0c\u989c\u8272\u6309\u7167\u8272\u76f8\u73af\u7684\u987a\u5e8f\u5206\u914d\u3002

    scale_fill_brewer(): \u4f7f\u7528RColorBrewer\u5305\u4e2d\u7684\u8c03\u8272\u677f\u6765\u8bbe\u7f6e\u79bb\u6563\u53d8\u91cf\u7684\u586b\u5145\u989c\u8272\u3002

  • coord_* \uff1a \u63a7\u5236\u7ed8\u56fe\u7684\u5750\u6807\u7cfb\u7edf\u548c\u5750\u6807\u8f74\u7684\u663e\u793a\u65b9\u5f0f\u3002\u5b83\u4eec\u5141\u8bb8\u60a8\u4fee\u6539\u7ed8\u56fe\u7684\u5750\u6807\u8f74\u523b\u5ea6\u3001\u8303\u56f4\u548c\u6bd4\u4f8b\uff0c\u4ee5\u53ca\u5750\u6807\u8f74\u7684\u663e\u793a\u65b9\u5f0f

    coord_cartesian() \u7ea6\u675f\u5750\u6807\u663e\u793a\u7684\u8303\u56f4

    coord_flip() x\u548cy\u8f74\u547c\u5524

    coord_polar()\u5c06\u5750\u6807\u7cfb\u8f6c\u6362\u4e3a\u6781\u5750\u6807\u7cfb

    coord_map()

"},{"location":"R/05%20ggplot2/#_3","title":"\u5206\u9762\u7ed8\u56fe","text":"

facet_grid() \u57fa\u4e8ex\u3001y\u56e0\u5b50\u8fdb\u884c\u5206\u9762\uff0c\u5982\u5355x\uff0c\u5355y\uff0c\u6216x\u548cy

facet_wrap() \u57fa\u4e8ex\u3001y\u3001\u751a\u81f3\u989d\u5916z\u56e0\u5b50\u5206\u9762\uff0c\u5982z1\u3001z2...\uff0c\u5206\u5272x~y

"},{"location":"R/05%20ggplot2/#_4","title":"\u7edf\u8ba1","text":"

stat_summary()

stat_*\u51fd\u6570\u7528\u4e8e\u6dfb\u52a0\u7edf\u8ba1\u53d8\u6362\uff08statistical transformation\uff09\u5230\u56fe\u8868\u4e2d\uff0c\u4ee5\u4fbf\u5bf9\u6570\u636e\u8fdb\u884c\u6c47\u603b\u3001\u8ba1\u7b97\u6216\u8f6c\u6362\u3002\u8fd9\u4e9b\u51fd\u6570\u63d0\u4f9b\u4e86\u5404\u79cd\u7edf\u8ba1\u53d8\u6362\u9009\u9879\uff0c\u53ef\u4ee5\u6839\u636e\u6570\u636e\u7684\u7279\u70b9\u548c\u9700\u6c42\u8fdb\u884c\u7075\u6d3b\u7684\u6570\u636e\u5904\u7406\u3002

stat_bin()\uff1a\u7528\u4e8e\u8fdb\u884c\u76f4\u65b9\u56fe\u6216\u67f1\u72b6\u56fe\u7684\u7edf\u8ba1\u53d8\u6362\uff0c\u5c06\u6570\u636e\u5206\u7ec4\u4e3a\u79bb\u6563\u7684\u533a\u95f4\u5e76\u8ba1\u7b97\u6bcf\u4e2a\u533a\u95f4\u7684\u9891\u6570\u6216\u5bc6\u5ea6\u3002

stat_summary()\uff1a\u7528\u4e8e\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\uff0c\u8ba1\u7b97\u6bcf\u7ec4\u6570\u636e\u7684\u7edf\u8ba1\u6458\u8981\uff0c\u5982\u5747\u503c\u3001\u4e2d\u4f4d\u6570\u3001\u6807\u51c6\u5dee\u7b49\uff0c\u5e76\u5c06\u7ed3\u679c\u7ed8\u5236\u4e3a\u70b9\u3001\u7ebf\u3001\u77e9\u5f62\u7b49\u5f62\u72b6\u3002

stat_smooth()\uff1a\u7528\u4e8e\u62df\u5408\u5e73\u6ed1\u66f2\u7ebf\u6216\u56de\u5f52\u66f2\u7ebf\uff0c\u6839\u636e\u6570\u636e\u7684\u8d8b\u52bf\u7ed8\u5236\u5e73\u6ed1\u7684\u66f2\u7ebf\uff0c\u5e38\u7528\u4e8e\u6570\u636e\u7684\u8d8b\u52bf\u5206\u6790\u548c\u6a21\u578b\u62df\u5408\u3002

stat_boxplot()\uff1a\u7528\u4e8e\u7ed8\u5236\u7bb1\u7ebf\u56fe\uff0c\u663e\u793a\u6570\u636e\u7684\u5206\u5e03\u60c5\u51b5\uff0c\u5305\u62ec\u4e2d\u4f4d\u6570\u3001\u56db\u5206\u4f4d\u6570\u3001\u5f02\u5e38\u503c\u7b49\u3002

stat_density()\uff1a\u7528\u4e8e\u751f\u6210\u5bc6\u5ea6\u56fe\uff0c\u4f30\u8ba1\u6570\u636e\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff0c\u53ef\u7528\u4e8e\u5206\u5e03\u5f62\u72b6\u7684\u53ef\u89c6\u5316\u3002

stat_ecdf()\uff1a\u7528\u4e8e\u751f\u6210\u7ecf\u9a8c\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08empirical cumulative distribution function\uff09\uff0c\u5c55\u793a\u6570\u636e\u7684\u7d2f\u79ef\u5206\u5e03\u60c5\u51b5\u3002

stat_ellipse()\uff1a\u7528\u4e8e\u7ed8\u5236\u692d\u5706\uff0c\u663e\u793a\u4e8c\u7ef4\u6570\u636e\u7684\u692d\u5706\u5305\u7edc\uff0c\u5e38\u7528\u4e8e\u6570\u636e\u7684\u76f8\u5173\u6027\u5206\u6790\u548c\u805a\u7c7b\u53ef\u89c6\u5316\u3002

"},{"location":"R/06%20stringr/","title":"stringr","text":"

stringr \u5305\u4e2d\u7684\u51fd\u6570\u4e3b\u8981\u6d89\u53ca\u5b57\u7b26\u4e32\u7684\u63d0\u53d6\u3001\u5339\u914d\u3001\u66ff\u6362\u3001\u62c6\u5206\u7b49\u64cd\u4f5c\u3002\u80fd\u7528\u4e8e\u5b57\u7b26\u4e32\uff0c\u4e00\u822c\u5c31\u80fd\u7528\u4e8e\u5b57\u7b26\u4e32\u5411\u91cf\uff01

letters\u662fR\u81ea\u5e26\u7684\u5c0f\u519926\u4e2a\u5b57\u6bcd\u5b57\u7b26\u4e32\u5411\u91cf\uff0cchr[1:26] \"a\" \"b\" ... \"z\"

scan()\u626b\u63cf\u8bfb\u53d6

writeLines()\u5c06\u5b57\u7b26\u4e32\u5199\u5165\u6587\u4ef6

identical()\u4e24\u4e2a\u5185\u5bb9\u76f8\u6bd4\u8f83

"},{"location":"R/06%20stringr/#_1","title":"\u5b57\u7b26\u4e32\u5e38\u7528\u5185\u5bb9","text":"

\u8f6c\u4e49\u7b26\u53f7\uff1a\\

\"\\\"\" # or '\"'

'\\'' # or \"'\"

"},{"location":"R/06%20stringr/#_2","title":"\u521b\u5efa\u5b57\u7b26\u4e32","text":"

str_dup() \u590d\u5236\u5b57\u7b26\u4e32\u3002

"},{"location":"R/06%20stringr/#_3","title":"\u5c5e\u6027","text":"

str_length\u8ba1\u7b97\u5b57\u7b26\u4e32\u7684\u957f\u5ea6

str_count()\u6839\u636e\u6b63\u5219\uff0c\u5bf9\u5b57\u7b26\u4e32\u4e2d\u51fa\u73b0\u5339\u914d\u7684\u5185\u5bb9\u8fdb\u884c\u4e0d\u91cd\u590d\u7684\u8ba1\u6570

\u63d0\u53d6

stringr\uff1a\uff1aword \u6839\u636e\u5206\u9694\u7b26\uff0c\u5c06\u5b57\u7b26\u4e32\u5212\u5206\u4e3a\u5355\u8bcd\uff0c\u5e76\u53ef\u4ee5\u9009\u62e9\u63d0\u53d6\u7684\u5355\u8bcd\u4f4d\u7f6e

str_extract()\u6839\u636e\u6b63\u5219\uff0c\u8f93\u51fa\u5339\u914d\u4e0a\u7684\u7b2c\u4e00\u4e2a\u5185\u5bb9\u3002\u53ef\u4ee5\u68c0\u6d4b\u5b57\u7b26\u4e32\u4e2d\u662f\u5426\u542b\u6709\u67d0\u4e2a\u5143\u7d20

[str_extract_all](stringr/str_extract_all.md\u8f93\u51fa\u6ee1\u8db3\u8981\u6c42\u7684\u6240\u6709\u5185\u5bb9\uff0c\u542b\u6709\u591a\u5c11\u4e2a\u5143\u7d20

str_sub() \u6839\u636e\u6307\u5b9a\u5f00\u59cb\u548c\u8d77\u59cb\u4f4d\u7f6e\uff0c\u63d0\u53d6\u5b57\u7b26\u4e32\u5b57\u4e32

str_subset()\u6839\u636e\u6b63\u5219\uff0c\u63d0\u53d6\u5339\u914d\u4e0a\u80fd\u591f\u5305\u542b\u7684\u5b57\u4e32\uff0c\u5982ab\uff0c\u5339\u914dabc\u3001abe

"},{"location":"R/06%20stringr/#_4","title":"\u5e38\u89c4\u64cd\u4f5c","text":""},{"location":"R/06%20stringr/#_5","title":"\u589e","text":"

str_c()\u6709\u4e24\u4e2a\u7ef4\u5ea6\u7684\u6307\u5b9a\uff0c\u5efa\u8bae\u8be6\u770b\u51fd\u6570\u4e3e\u4f8b\uff0cseq\uff1a\u5b57\u7b26\u4e32+\u5411\u91cf\uff0ccollapse\u5411\u91cf\u5185\u7684\u5b57\u7b26\u4e32\u5143\u7d20

str_flatten()\u6307\u5b9a\u5206\u9694\u7b26\uff0c\u5c06\u5b57\u7b26\u4e32\u5411\u91cf\u8fde\u63a5\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u5b57\u7b26\u4e32

str_flatten_comma()\u9ed8\u8ba4\u4e3a\u9017\u53f7\uff0c\u8fde\u63a5\u5b57\u7b26\u4e32

str_glue() \u5c06\u53d8\u91cf\u7684\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d\uff0c\u751f\u6210\u65b0\u7684\u5b57\u7b26\u4e32

str_glue_data()\u5c06df\u4e2d\u7684\u5217\u5411\u91cf\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d

str_pad()\u7528\u7279\u5b9a\u5b57\u7b26\u586b\u5145\u5b57\u7b26\u4e32\u7684\u4e24\u4fa7\u3002

"},{"location":"R/06%20stringr/#_6","title":"\u5220","text":"

str_trim()\u79fb\u9664\u5b57\u7b26\u4e32\u5f00\u5934\u548c\u7ed3\u5c3e\u7684\u7a7a\u683c

str_remove()\u4ece\u5b57\u7b26\u4e32\u4e2d\u79fb\u9664\u5339\u914d\u7684\u6587\u672c

"},{"location":"R/06%20stringr/#_7","title":"\u6539","text":"
  • \u6392\u5e8f

str_sort()\u5bf9\u5b57\u7b26\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\uff0c\u5982\u6309\u7167\u7f8e\u5f0f\u82f1\u8bed\uff0c\u8fd4\u56de\u6392\u5e8f\u540e\u7684\u5411\u91cf

str_order()\u6309\u5b57\u6bcd\u987a\u5e8f\u6392\u5e8f\uff0c\u8fd4\u56de\u6392\u5e8f\u540e\u7684\u5143\u7d20\u5728\u539f\u59cb\u5411\u91cf\u4e2d\u7684\u7d22\u5f15

  • \u66ff\u6362/\u8f6c\u6362

str_replace() \u6839\u636e\u6b63\u5219\uff0c\u66ff\u6362\u7b2c\u4e00\u4e2a\u5339\u914d\u9879

str_replace_all()\u6839\u636e\u6b63\u5219\uff0c\u66ff\u6362\u6240\u6709\u5339\u914d\u9879

str_to_lower()\u5c06\u6240\u6709\u5b57\u6bcd\u5c0f\u5199

str_to_upper()\u5c06\u6240\u6709\u5b57\u6bcd\u5927\u5199

str_to_title()\u5c06\u6bcf\u4e2a\u5355\u8bcd\u7684\u9996\u5b57\u6bcd\u5927\u5199\uff0c\u7a7a\u683c\u3001\u9017\u53f7\u3001\u53e5\u53f7\u3001- \u9694\u5f00\u7684\u5b57\u7b26\u90fd\u7b97\u4f5c\u5355\u8bcd

str_conv()\u5c06\u5b57\u7b26\u4e32\u6309\u6307\u5b9a\u683c\u5f0f\u8f6c\u7801

  • \u5b57\u7b26\u4e32\u62c6\u5206\uff1a

str_wrap()\u6307\u5b9a\u7684\u5217\u5bbd\u5ea6\u5185\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u6210\u591a\u884c\uff0c\u4e14\u6bcf\u884c\u5f00\u5934\u53ef\u4ee5\u6dfb\u52a0\u6307\u5b9a\u5185\u5bb9

str_split() \u6839\u636e\u6b63\u5219\u8bc6\u522b\u5206\u9694\u7b26\uff0c\u62c6\u5206\u4e3a\u5b50\u5b57\u7b26\u4e32

str_split_fixed()\u6839\u636e\u6b63\u5219\u8bc6\u522b\u5206\u9694\u7b26\uff0c\u62c6\u5206\u5230\u6570\u91cf\u4e3an\u7684\u5b50\u5b57\u7b26\u4e32

str_trunc()\u622a\u65ad\u5b57\u7b26\u4e32\u5230\u6307\u5b9a\u7684\u957f\u5ea6

"},{"location":"R/06%20stringr/#_8","title":"\u67e5","text":"
  • \u5339\u914d\u68c0\u6d4b

str_view()\u6839\u636e\u6b63\u5219\uff0c\u663e\u793a\u5339\u914d\u4e0a\u7684\u5b57\u7b26\u6574\u4e32\u6216\u6ca1\u6709\u5339\u914d\u4e0a\u7684\u5b57\u7b26\u4e32

str_view_all()\u6ca1\u6709\u8fd9\u4e2a

str_match() \u6839\u636e\u6b63\u5219\uff0c\u67e5\u627e\u5b57\u7b26\u4e32\uff0c\u4ee5\u77e9\u9635\u7684\u5f62\u5f0f\u8fd4\u56de

str_locate()\u8fd4\u56de\u5b57\u7b26\u4e32\u4e2d\u6839\u636e\u5339\u914d\u6a21\u5f0f\u5339\u914d\u5230\u7684\u5b50\u96c6\u7684\u8d77\u59cb\u4f4d\u7f6e

str_locate_all()\u8fd4\u56de\u5b57\u7b26\u4e32\u4e2d\u6240\u6709\u5339\u914d\u6a21\u5f0f\u7684\u8d77\u59cb\u4f4d\u7f6e\u3002

str_detect()\u6839\u636e\u6b63\u5219\u5339\u914d\uff0c\u8f93\u51fa\u903b\u8f91\u503c\uff0c\u7ed3\u5408sum\u3001mean\u51fd\u6570\u6548\u679c\u66f4\u4f73

"},{"location":"R/06%20stringr/#_9","title":"\u901a\u914d\u7b26","text":"

\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\uff0c\u6709\u8bb8\u591a\u7279\u6b8a\u7684\u5339\u914d\u7b26\u53f7\u7528\u4e8e\u6307\u5b9a\u6a21\u5f0f\u7684\u5339\u914d\u89c4\u5219\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u5339\u914d\u7b26\u53f7\u53ca\u5176\u542b\u4e49\uff1a

  • .\uff1a\u5339\u914d\u4efb\u610f\u5355\u4e2a\u5b57\u7b26\uff0c\u9664\u4e86\u6362\u884c\u7b26\u3002

  • ?\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u96f6\u6b21\u6216\u4e00\u6b21\u3002\u95ee\u597d\uff0c\u8981\u4e48\u6709\u3001\u8981\u4e48\u6ca1\u6709\uff01

  • *\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u96f6\u6b21\u6216\u591a\u6b21\u3002\u4e580\u4e3a0\uff0c\u96f6\u6b21\u6216\u591a\u6b21

  • +\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u4e00\u6b21\u6216\u591a\u6b21\u3002\u52a01\u6216\u591a\u6b21

  • ^\uff1a\u4ee5\u67d0\u5143\u7d20\u5f00\u59cb\uff0c\u5f00\u5934\u5339\u914d\u3002

  • $\uff1a\u4ee5\u67d0\u5143\u7d20\u7ed3\u675f\uff0c\u7ed3\u5c3e\u5339\u914d\u3002^apple$\u6307\u5b9aapple

  • {n}\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u6070\u597d n \u6b21\u3002

  • {n,}\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u81f3\u5c11 n \u6b21\u3002

  • {n,m}\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u81f3\u5c11 n \u6b21\uff0c\u4f46\u4e0d\u8d85\u8fc7 m \u6b21\u3002

  • []\uff1a\u5339\u914d\u62ec\u53f7\u5185\u7684\u4efb\u610f\u4e00\u4e2a\u5b57\u7b26\u3002\u4f8b\u5982\uff0c[abc] \u5339\u914d\u5b57\u7b26 \"a\"\u3001\"b\" \u6216 \"c\"\u3002

  • [^]\uff1a\u5339\u914d\u4e0d\u5728\u62ec\u53f7\u5185\u7684\u4efb\u610f\u4e00\u4e2a\u5b57\u7b26\u3002\u4f8b\u5982\uff0c[^abc] \u5339\u914d\u9664\u4e86\u5b57\u7b26 \"a\"\u3001\"b\" \u548c \"c\" \u4e4b\u5916\u7684\u4efb\u610f\u5b57\u7b26\u3002

  • |\uff1a\u5339\u914d\u4e24\u4e2a\u6216\u591a\u4e2a\u6a21\u5f0f\u4e4b\u4e00\u3002\u4f8b\u5982\uff0capple|banana \u5339\u914d \"apple\" \u6216 \"banana\"\u3002\u533a\u522b[]\uff0c\u53ef\u4ee5\u6bd4\u5355\u4e2a\u5b57\u7b26\u957f

  • ()\uff1a\u6355\u83b7\u5339\u914d\u7684\u5b50\u7ec4\u3002\u6ee1\u8db3\u5c31\u884c

  • \\\uff1a\u7528\u4e8e\u8f6c\u4e49\u7279\u6b8a\u5b57\u7b26\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7684\u7279\u6b8a\u5b57\u7b26\u5728R\u8bed\u8a00\u4e2d\u5e38\u5e38\u9700\u8981\u8fdb\u884c\u8f6c\u4e49\uff0c\u5373\u4f7f\u7528\u53cc\u53cd\u659c\u6760\uff08\\\uff09 \u8fdb\u884c\u8868\u793a\u3002\u4f8b\u5982\uff0c\u8981\u5339\u914d\u4e00\u4e2a\u5b57\u9762\u4e0a\u7684\u95ee\u53f7\u5b57\u7b26\uff0c\u53ef\u4ee5\u4f7f\u7528\\\\?\u3002

    \\d\uff1a \u5339\u914d\u4efb\u610f\u4e00\u4e2a\u6570\u5b57\u5b57\u7b26\uff0c\u76f8\u5f53\u4e8e[0-9]\u3002

    \\D\uff1a\u5339\u914d\u4efb\u610f\u4e00\u4e2a\u975e\u6570\u5b57\u5b57\u7b26\uff0c\u76f8\u5f53\u4e8e[^0-9]\u3002

    \\w\uff1a\u5339\u914d\u4efb\u610f\u4e00\u4e2a\u5b57\u6bcd\u3001\u6570\u5b57\u6216\u4e0b\u5212\u7ebf\u5b57\u7b26\uff0c\u76f8\u5f53\u4e8e[a-zA-Z0-9_]\u3002

    \\W\uff1a\u5339\u914d\u4efb\u610f\u4e00\u4e2a\u975e\u5b57\u6bcd\u3001\u975e\u6570\u5b57\u3001\u975e\u4e0b\u5212\u7ebf\u5b57\u7b26\uff0c\u76f8\u5f53\u4e8e[^a-zA-Z0-9_]\u3002

    \\s\uff1a\u5339\u914d\u4efb\u610f\u4e00\u4e2a\u7a7a\u767d\u5b57\u7b26\uff0c\u5305\u62ec\u7a7a\u683c\u3001\u5236\u8868\u7b26\u3001\u6362\u884c\u7b26\u7b49\u3002

    \\S\uff1a\u5339\u914d\u4efb\u610f\u4e00\u4e2a\u975e\u7a7a\u767d\u5b57\u7b26

[aeiou]\u81f3\u5c11\u5305\u542b\u4e00\u4e2a\u5143\u97f3\u5b57\u6bcd\u7684\u6240\u6709\u5355\u8bcd

^[^aeiou]+$\u4ec5\u5305\u542b\u8f85\u97f3\u5b57\u6bcd\uff08\u975e\u5143\u97f3\u5b57\u6bcd\uff09\u7684\u6240\u6709\u5355\u8bcd

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/","title":"\u6570\u636e\u8f93\u5165\u548c\u8f93\u51fa","text":""},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_2","title":"\u8bfb\u53d6\u6570\u636e","text":"

read_csv()

readxl\uff1a\uff1aread_excel()

  • [x] rename()\u4fee\u6539\u5217\u540d\uff0c\u65b0\u5217\u540d\u66ff\u6362\u6307\u5b9a\u65e7\u5217\u540d\uff0c\u5c40\u90e8\u66ff\u6362

set_names()\u4fee\u6539\u5217\u540d\uff0c\u76f4\u63a5\u7528\u65b0\u5217\u540d\u4f9d\u6b21\u66ff\u6362\u65e7\u5217\u540d\uff0c\u6574\u4f53\u66ff\u6362\uff0c\u8ddfrename()\u529f\u80fd\u76f8\u91cd\u590d

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_3","title":"\u6570\u636e\u8f93\u51fa","text":"

print()\u3001printf()\u3001sprintf()\u8fdb\u884c\u53d8\u91cf\u8f93\u51fa\u3001\u683c\u5f0f\u5316\u8f93\u51fa\u3001\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\u8f93\u51fa

cat()\u7ed3\u5408paste()\u5c06\u591a\u4e2a\u5b57\u7b26\u4e32\u6570\u636e\u8fdb\u884c\u8f93\u51fa\uff0c\u6bd4sprintf\u8f93\u51fa\u66f4\u7075\u6d3b

paste()\u5c06\u591a\u4e2a\u5bf9\u8c61\uff08\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u7b49\uff09\u8fde\u63a5\u6210\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u5b57\u7b26\u4e32\u95f4\u4f1a\u81ea\u5e26\u7a7a\u683c\uff0c\u7528paste0()\u4e0d\u5e26\u7a7a\u683c

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_4","title":"\u6587\u4ef6\u8f93\u51fa","text":"

write_csv() \u5199\u5165csv\u6587\u4ef6

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_5","title":"\u6570\u636e\u6e05\u6d17","text":""},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_6","title":"\u57fa\u7840\u64cd\u4f5c","text":"

1\uff0c\u6982\u89c8

  • \u67e5\u770b\u6570\u636e glimpse() df\u6570\u636e\u5c55\u793a\uff0c\u63a8\u8350

str() \u8ddf\u4e0a\u9762\u529f\u80fd\u91cd\u590d\u3002\u5728\u73b0\u5b9e\u5217\u8868\u5217\u65f6\u4f1a\u663e\u793a\u5f97\u66f4\u5168\u4e9b

head()\u663e\u793a\u6307\u5b9a\u524d\u51e0\u884c

View()\u6253\u5f00\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u7684\u6570\u636e\u6846\u67e5\u770b\u5668\u7a97\u53e3\uff0c\u5176\u4e2d\u4ee5\u8868\u683c\u5f62\u5f0f\u663e\u793a\u6574\u4e2a\u6570\u636e\u6846\u7684\u5185\u5bb9\u3002

2\uff0c\u7c7b\u578b\u3001\u7ed3\u6784\u8f6c\u6362

  • \u5e38\u89c1\u6570\u636e\u7c7b\u578b

    \u5e38\u89c1\u6570\u636e\u7c7b\u578b \u6570\u636e\u7c7b\u578b\u5224\u65ad\u548c\u8f6c\u6362

  • \u903b\u8f91\u578b

    data$value <-ifelse(data$value == \"Yes\",TRUE,FALSE)

  • \u65f6\u95f4

    lubridate\uff1a\uff1amdy()\u5c06\u5b57\u7b26\u4e32\u65e5\u671f\u65f6\u95f4\u8f6c\u5316\u4e3a\u6807\u51c6\u7684\u6570\u5b57\u5f62\u5f0f\u7684\u65e5\u671f\u65f6\u95f4

  • \u8f6c\u5316\u4e3a\u5206\u7c7b\u53d8\u91cf

    factor()

    as.factor()

3\uff0c\u67e5\u6f0f\u8865\u7f3a\u548c\u53bb\u91cd

  • \u67e5\u6f0f\u8865\u7f3a

    \u89c4\u5212\u5316\u7f3a\u5931\u503c\uff0cread_csv(..., na = c(\"\", \"N/A\"))\uff0c\u5c06\u6307\u5b9a\u5185\u5bb9\u8bc6\u8bfb\u53d6\u4e3a\u7f3a\u5931\u503c

  • \u8865\u7f3a

    tidyr\uff1a\uff1afill() \u6307\u5b9a\u5217\uff0c\u8fdb\u884c\u4e0a\u4e0b\u503c\u8865\u7f3a

    data$age <- ifelse(is.na(data$age), mean(data$age, na.rm = TRUE), data$age)

  • \u53bb\u9664\u7f3a\u5931\u503c

    • [x] data <- data %>% drop_na()\uff0ctidyr\uff1a\uff1adrop_na()\uff0c\u66f4\u7cbe\u786e\uff0c\u53ef\u4ee5\u6307\u5b9a\u9700\u8981\u8003\u8651\u7684\u5217

    data <- na.omit(data)\uff0cna.omit() \u7b80\u5355\u5904\u7406\uff0c\u542b\u7f3a\u5931\u5c31\u5220\u9664

  • \u53bb\u91cd

    • [x] distinct()\u53bb\u91cd\uff0c\u53ef\u4ee5\u6839\u636e\u6307\u5b9a\u5217\u8fdb\u884c\u884c\u6570\u636e\u53bb\u91cd\uff0c\u53ea\u8fd4\u56de\u53bb\u91cd\u540e\u7684\u6307\u5b9a\u5217\u7684\u5185\u5bb9(F)\uff0c\u6216\u53bb\u91cd\u540e\u7684\u6240\u6709\u5217\u7684\u5185\u5bb9(T)

    unique()\u8fd4\u56de\u5411\u91cf\u6216\u56e0\u5b50\u4e2d\u7684\u552f\u4e00\u503c

    duplicated()\u6807\u8bc6\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u91cd\u590d\u5143\u7d20\uff0c\u8fd4\u56de\u5bf9\u5e94\u5e03\u5c14\u503c\uff0c\u91cd\u590d\u4e3aTRUE

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_7","title":"\u6570\u636e\u589e\u3001\u6539\u3001\u5220","text":"

mutate() \u6839\u636e\u65e7\u5217\u6dfb\u52a0\u65b0\u5217\uff0c\u6216\u8005\u66ff\u6362\u65e7\u5217\u6570\uff0c\u914d\u4e0aacross()\u5728\u591a\u4e2a\u5217\u4e0a\u5e94\u7528\u76f8\u540c\u7684\u53d8\u6362\u6216\u7edf\u8ba1\u51fd\u6570\uff0c\u66ff\u6362\u65e7\u5217\u6216\u751f\u6210\u65b0\u5217

filter() \u884c\u64cd\u4f5c

map()\u5bf9\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u540c\u4e00\u4e2a\u51fd\u6570\uff0c\u7c7b\u6bd4python\u4e2d\u7684apply()

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_8","title":"\u5206\u7ec4\u805a\u5408","text":"

group_by() \u6307\u5b9a\u5217\u8fdb\u884c\u5206\u7ec4\uff0c\u5206\u7ec4\u540e\u518d\u7528summarize()\u540e\u4f1a\u4fdd\u7559\u5206\u7ec4\u5217

cut()\u51fd\u6570\uff0c\u8fdb\u884c\u56fa\u5b9a\u8303\u56f4\u503c\u6dfb\u52a0\u65b0\u7ec4

ungroup() \u53d6\u6d88\u5206\u7ec4\uff0c\u5728\u4f7f\u7528\u7ba1\u9053\u7b26\u8fdb\u884c\u53c2\u6570\u4f20\u9012\u4e2d\u4f7f\u7528\u7684\u662f\u540c\u4e00\u4e2a\u6e90\u6570\u636e\uff0c\u6240\u4ee5\u8981\u53ca\u65f6\u64a4\u9500\u5206\u7ec4\u64cd\u4f5c\uff01

  • \u805a\u7c7b

    summarize()\u3001summarise() \u7edf\u8ba1\u5206\u6790\u5217\u6570\u636e

    slice_max()\u6307\u5b9a\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c

    slice_min()

nrow() \u8ba1\u7b97\u6570\u636e\u6846\u884c\u6570

n() \u8ba1\u7b97\u884c\u6570

count()\u8ba1\u7b97\u552f\u4e00\u503c\u51fa\u73b0\u6b21\u6570\uff0c\u8ddfpython\u4e0d\u540c

n_distinct()\u8ba1\u7b97\u79cd\u7c7b\u6570\uff0c\u8ddf\u4e0a\u9762\u7684\u552f\u4e00\u503c\u6b21\u6570\u6307\u9891\u6570\u4e0d\u540c

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_9","title":"\u591a\u8868\u8fde\u63a5","text":"

inner_join() \u5185\u8fde\u63a5

left_join()\u5de6\u8fde\u63a5

right_join()\u53f3\u8fde\u63a5

full_join() \u5168\u8fde\u63a5

semi_join()\u534a\u8fde\u63a5\uff0c\u76ee\u7684\u7b5b\u9009\u5de6\u8868\u6570\u636e\uff0c\u7c7b\u4f3c\u4ea4\u96c6\u4f46\u53ea\u4fdd\u7559\u505a\u8868\u6570\u636e\u3002\u4ee5\u53f3\u8868\u6570\u636e\u4f5c\u4e3a\u6807\u51c6\uff0c\u7b5b\u9009\u5de6\u8868\u4e2d\u5b58\u5728\u4e8e\u53f3\u8868\u4e2d\u7684\u6570\u636e\uff0c\u5e76\u4e0d\u4f1a\u8fd4\u56de\u53f3\u8868\u4e2d\u4efb\u4f55\u6570\u636e\u3002\u53f3\u6709\u5de6\u4e5f\u6709\u7684\u6570\u636e\u3002

anti_join()\u53cd\u8fde\u63a5\uff0c\u76ee\u7684\u662f\u7b5b\u9009\u5de6\u8868\u6570\u636e\uff0c\u8ddf\u534a\u8fde\u63a5\u76f8\u53cd\uff0c\u7b5b\u9009\u53f3\u8868\u6ca1\u6709\u7684\u6570\u636e\uff0c\u8fd4\u56de\u5728\u7b2c\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u800c\u5728\u7b2c\u4e8c\u4e2a\u6570\u636e\u6846\u4e2d\u4e0d\u5b58\u5728\u7684\u884c\u3002\u53f3\u65e0\uff0c\u5de6\u6709\u7684\u6570\u636e\u3002

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_10","title":"\u6570\u636e\u5206\u6790","text":""},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_11","title":"\u63cf\u8ff0\u6027\u7edf\u8ba1","text":"
  • \u6982\u89c8

    summary() \u63cf\u8ff0\u7edf\u8ba1\u51fd\u6570\uff0cpander(summary(data_set))\u66f4\u6f02\u4eae\u5730\u5c55\u793a\u3002\u8fde\u7eed\u578b\u53d8\u91cf\u5904\u7406\u4e3a\u6570\u503c\u578b\uff0c\u79bb\u6563\u578b\u53d8\u91cf\u5904\u7406\u4e3a\u56e0\u5b50\u578b\uff0c\u8fd9\u6837\u7edf\u8ba1\u5c31\u80fd\u5f97\u5230\u76f8\u5e94\u7ed3\u679c

    skim() \u63cf\u8ff0\u7edf\u8ba1\u51fd\u6570\uff0c\u5c55\u793a\u7684\u5185\u5bb9\u4f1a\u66f4\u52a0\u8be6\u7ec6\uff0c\u4e00\u822cskim() %>% %>% kable_styling()

    table(cut_width(data_q2$PPG,2,boundary = 10))/50 \u5b9e\u73b0\u8fde\u7eed\u53d8\u91cf\u5206\u7c7b\u5316\uff0c\u8ba1\u7b97\u6bcf\u7ec4\u7684\u9891\u7387

    table()\u8ba1\u7b97\u00a0factor\u5bf9\u8c61\u4e2d\u6bcf\u4e2a\u6c34\u5e73\u7684\u9891\u6570

    cut_width()\u5c06\u8fde\u7eed\u578b\u7684\u53d8\u91cf\u5206\u6210\u6307\u5b9a\u5bbd\u5ea6\u7684\u533a\u95f4\uff0c\u8fd4\u56de\u56e0\u5b50\u578b\u7ed3\u679c

  • \u96c6\u4e2d\u8d8b\u52bf\u6307\u6807

    skewness()\u8ba1\u7b97\u6570\u636e\u504f\u5ea6

    kurtosis()\u8ba1\u7b97\u6570\u636e\u5cf0\u5ea6\u7cfb\u6570

  • \u79bb\u6563\u8d8b\u52bf\u6307\u6807

    \u66f4\u591a\u5185\u5bb9\u8be6\u770b01 \u57fa\u7840\u51fd\u6570\u548c\u6570\u7406\u7edf\u8ba1

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_12","title":"\u63a8\u65ad\u6027\u7edf\u8ba1","text":"

01 \u57fa\u7840\u51fd\u6570\u548c\u6570\u7406\u7edf\u8ba1

t-value\u3001p-value\u3001\u7f6e\u4fe1\u533a\u95f4\uff08\u53ca\u5bf9\u5e94\u7684\u7f6e\u4fe1\u5ea6\uff09\u3001\u6837\u672c\u5747\u503cx_bar

t.test()\u901a\u8fc7\u5047\u8bbe\u68c0\u9a8c\uff0c\u7136\u540e\u76f4\u63a5\u9009\u53d6\u7ed3\u679c\u4e2d\u7684\u53c2\u6570

aov() ANOVA\u65b9\u5dee\u5206\u6790\uff0c\u5355\u56e0\u7d20\u3001\u53cc\u56e0\u7d20\u3001\u591a\u56e0\u7d20

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_13","title":"\u6570\u636e\u53ef\u89c6\u5316","text":"

05 ggplot2

factor()\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\u5c55\u793ax\u8f74\u4e0d\u7528\u7c7b\u522b\u7684\u7bb1\u7ebf\u56fe\u7528\u5f97\u5230

"},{"location":"R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/#_14","title":"\u6a21\u578b","text":"

lm()\u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u5185\u7f6e\u51fd\u6570\uff0c\u4e00\u822c\u7528summary(lm())\u5448\u73b0\u7ed3\u679c\uff0c\u5176\u4e2d\u53c2\u6570\u7684\u4ecb\u7ecd\u8be6\u770bsummary()\u4e2d\u7684\u526f\u6807\u9898\uff01

glm()\u5e94\u8be5\u7684\u66f4\u5e7f\uff0c\u9636\u6bb5\u6027\u4e3b\u8981\u7528\u4e8e\u903b\u8f91\u56de\u5f52

"},{"location":"R/base-content/%24/","title":"$","text":"

\u5728 R \u4e2d\uff0c$ \u7b26\u53f7\u7528\u4e8e\u4ece\u6570\u636e\u6846\u4e2d\u63d0\u53d6\u7279\u5b9a\u5217\u7684\u6570\u636e\u3002\u5b83\u5141\u8bb8\u4f60\u901a\u8fc7\u5217\u540d\u6765\u8bbf\u95ee\u6570\u636e\u6846\u4e2d\u7684\u5217\uff0c\u5e76\u8fd4\u56de\u8be5\u5217\u7684\u6570\u636e\u4f5c\u4e3a\u5411\u91cf\u3002

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(\n  name = c(\"John\", \"Alice\", \"Bob\", \"Emily\"),\n  age = c(25, 32, 28, 35),\n  city = c(\"New York\", \"London\", \"Paris\", \"Tokyo\")\n)\n\n# \u63d0\u53d6 age \u5217\u7684\u6570\u636e\nage <- df$age\nprint(age)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 25 32 28 35\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 df\uff0c\u5176\u4e2d\u5305\u542b\u4e09\u5217\u6570\u636e\uff1aname\u3001age \u548c city\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 $ \u7b26\u53f7\u6765\u63d0\u53d6 df \u6570\u636e\u6846\u4e2d\u7684 age \u5217\uff0c\u5e76\u5c06\u5176\u6570\u636e\u5b58\u50a8\u5728\u53d8\u91cf age \u4e2d\u3002\u901a\u8fc7\u6253\u5370 age \u7684\u503c\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230 age \u5217\u7684\u6570\u636e\u4f5c\u4e3a\u4e00\u4e2a\u5411\u91cf\u88ab\u63d0\u53d6\u51fa\u6765\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528 $ \u7b26\u53f7\u4ece\u6570\u636e\u6846\u4e2d\u63d0\u53d6\u591a\u4e2a\u5217\u7684\u6570\u636e\u3002\u4f8b\u5982\uff1a

# \u63d0\u53d6 name \u548c city \u5217\u7684\u6570\u636e\nname <- df$name\ncity <- df$city\nprint(name)\nprint(city)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] \"John\"  \"Alice\" \"Bob\"   \"Emily\"\n[1] \"New York\" \"London\"   \"Paris\"    \"Tokyo\" \n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 $ \u7b26\u53f7\u5206\u522b\u63d0\u53d6\u4e86 name \u548c city \u5217\u7684\u6570\u636e\uff0c\u5e76\u5c06\u5b83\u4eec\u5b58\u50a8\u5728\u53d8\u91cf name \u548c city \u4e2d\u3002\u901a\u8fc7\u6253\u5370\u8fd9\u4e9b\u53d8\u91cf\u7684\u503c\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u76f8\u5e94\u5217\u7684\u6570\u636e\u4f5c\u4e3a\u5411\u91cf\u88ab\u63d0\u53d6\u51fa\u6765\u3002

"},{"location":"R/base-content/IQR%28%29/","title":"IQR()","text":"

\u662f\u4e00\u4e2a\u7528\u4e8e\u8ba1\u7b97\u56db\u5206\u4f4d\u8ddd\u7684\u51fd\u6570\uff0c\u5728 R \u8bed\u8a00\u4e2d\u5e38\u7528\u3002\u56db\u5206\u4f4d\u8ddd\uff08Interquartile Range\uff0cIQR\uff09\u662f\u6307\u6570\u636e\u96c6\u7684\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\u4e0e\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\u4e4b\u95f4\u7684\u5dee\u5f02\uff0c\u7528\u4e8e\u8861\u91cf\u6570\u636e\u7684\u79bb\u6563\u7a0b\u5ea6\u3002

IQR(x, na.rm)\n

  • x\uff1a\u6307\u5b9a\u8981\u8ba1\u7b97\u56db\u5206\u4f4d\u8ddd\u7684\u5411\u91cf\u3001\u77e9\u9635\u3001\u6570\u636e\u6846\u6216\u5176\u4ed6 R \u5bf9\u8c61\u3002

  • na.rm\uff1a\u6307\u5b9a\u662f\u5426\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5219\u5728\u8ba1\u7b97\u56db\u5206\u4f4d\u8ddd\u65f6\u4f1a\u5ffd\u7565\u7f3a\u5931\u503c\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 IQR() \u51fd\u6570\u8ba1\u7b97\u56db\u5206\u4f4d\u8ddd\uff1a

# \u521b\u5efa\u793a\u4f8b\u5411\u91cf\nx <- c(1, 2, 3, 4, 5)\n\n# \u8ba1\u7b97\u56db\u5206\u4f4d\u8ddd\niqr_value <- IQR(x)\nprint(iqr_value)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u6570\u503c\u7684\u5411\u91cf x\u3002\u7136\u540e\uff0c\u4f7f\u7528 IQR() \u51fd\u6570\u8ba1\u7b97\u4e86 x \u7684\u56db\u5206\u4f4d\u8ddd\u3002\u6700\u540e\uff0c\u6253\u5370\u8f93\u51fa\u4e86\u8ba1\u7b97\u7ed3\u679c\u3002

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u5411\u91cf x \u7684\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\u662f 1.5\uff0c\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\u662f 4.5\u3002\u56e0\u6b64\uff0c\u56db\u5206\u4f4d\u8ddd\u4e3a 4.5 - 1.5 = 3\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u6570\u636e\u548c\u9700\u6c42\uff0c\u4f7f\u7528 IQR() \u51fd\u6570\u8ba1\u7b97\u5176\u4ed6\u6570\u636e\u96c6\u7684\u56db\u5206\u4f4d\u8ddd\u3002\u6b64\u5916\uff0cIQR() \u51fd\u6570\u8fd8\u6709\u4e00\u4e2a\u53ef\u9009\u7684\u53c2\u6570 na.rm\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u67e5\u9605 R \u7684\u6587\u6863\u6765\u8fdb\u4e00\u6b65\u4e86\u89e3\u3002

"},{"location":"R/base-content/TukeyHSD%28%29/","title":"TukeyHSD()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cTukeyHSD() \u51fd\u6570\u7528\u4e8e\u8fdb\u884c Tukey's Honestly Significant Difference (HSD) \u68c0\u9a8c\uff0c\u7528\u4e8e\u6bd4\u8f83\u591a\u4e2a\u7ec4\u4e4b\u95f4\u7684\u5747\u503c\u5dee\u5f02\u3002\u5b83\u57fa\u4e8e\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u7684\u7ed3\u679c\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u591a\u91cd\u6bd4\u8f83\u7684\u65b9\u6cd5\u3002\u4e0b\u9762\u662f\u5bf9 TukeyHSD() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

TukeyHSD(aov_result, which = \"means\", conf.level = 0.95)\n

\u53c2\u6570\u8bf4\u660e\uff1a - aov_result\uff1a\u4e00\u4e2a\u65b9\u5dee\u5206\u6790\u5bf9\u8c61\uff0c\u901a\u5e38\u662f\u901a\u8fc7 aov() \u51fd\u6570\u5f97\u5230\u7684\u7ed3\u679c\u3002 - which\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u8868\u793a\u8981\u8ba1\u7b97\u7684\u6bd4\u8f83\u7c7b\u578b\u3002\u53ef\u4ee5\u662f \"means\"\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u8868\u793a\u8ba1\u7b97\u5747\u503c\u4e4b\u95f4\u7684\u5dee\u5f02\uff1b\u4e5f\u53ef\u4ee5\u662f \"fitted\"\uff0c\u8868\u793a\u8ba1\u7b97\u62df\u5408\u503c\u4e4b\u95f4\u7684\u5dee\u5f02\u3002 - conf.level\uff1a\u4e00\u4e2a\u6570\u503c\uff0c\u8868\u793a\u7f6e\u4fe1\u6c34\u5e73\u7684\u7a0b\u5ea6\u3002\u9ed8\u8ba4\u4e3a 0.95\uff0c\u8868\u793a\u8ba1\u7b97 95% \u7684\u7f6e\u4fe1\u533a\u95f4\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5305\u542b\u4e86\u591a\u4e2a\u7ec4\u4e4b\u95f4\u7684\u6bd4\u8f83\u7ed3\u679c\uff0c\u5305\u62ec\u7ec4\u522b\u3001\u5747\u503c\u5dee\u5f02\u3001\u6807\u51c6\u8bef\u5dee\u3001\u7f6e\u4fe1\u533a\u95f4\u548c p \u503c\u7b49\u4fe1\u606f\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 TukeyHSD() \u51fd\u6570\u8fdb\u884c\u591a\u91cd\u6bd4\u8f83\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  group = c(\"A\", \"A\", \"B\", \"B\", \"C\", \"C\"),\n  value = c(10, 12, 15, 18, 20, 22)\n)\n\n# \u8fdb\u884c\u65b9\u5dee\u5206\u6790\nresult <- aov(value ~ group, data = data)\n\n# \u8fdb\u884c\u591a\u91cd\u6bd4\u8f83\ncomparison <- TukeyHSD(result)\n\n# \u6253\u5370\u6bd4\u8f83\u7ed3\u679c\nprint(comparison)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u5206\u7ec4\u53d8\u91cf group \u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cf value\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 aov() \u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u5206\u6790\uff0c\u5f97\u5230\u65b9\u5dee\u5206\u6790\u7ed3\u679c result\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528 TukeyHSD() \u51fd\u6570\u5bf9\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u8fdb\u884c\u591a\u91cd\u6bd4\u8f83\uff0c\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 comparison \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u6bd4\u8f83\u7ed3\u679c\uff0c\u5305\u62ec\u7ec4\u522b\u3001\u5747\u503c\u5dee\u5f02\u3001\u6807\u51c6\u8bef\u5dee\u3001\u7f6e\u4fe1\u533a\u95f4\u548c p \u503c\u7b49\u4fe1\u606f\u3002

\u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u4f60\u53ef\u4ee5\u8c03\u6574\u53c2\u6570\u6765\u6307\u5b9a\u8ba1\u7b97\u7684\u6bd4\u8f83\u7c7b\u578b\u6216\u7f6e\u4fe1\u6c34\u5e73\u3002\u6839\u636e\u6570\u636e\u7684\u7279\u70b9\u548c\u7814\u7a76\u95ee\u9898\uff0c\u9002\u5f53\u8c03\u6574\u53c2\u6570\u53ef\u4ee5\u5f97\u5230\u76f8\u5e94\u7684\u591a\u91cd\u6bd4\u8f83\u7ed3\u679c\u3002

"},{"location":"R/base-content/ad.test%28%29/","title":"Ad.test()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cad.test()\u51fd\u6570\u662fnortest\u5305\uff08\u5185\u7f6e\u5305\uff09\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u6267\u884cAnderson-Darling\uff08A-D\uff09\u6b63\u6001\u6027\u68c0\u9a8c\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

ad.test(x)\n

\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u8fdb\u884c\u6b63\u6001\u6027\u68c0\u9a8c\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u6b63\u6001\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u503c\u548cp\u503c\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528ad.test()\u51fd\u6570\u6267\u884cAnderson-Darling\u6b63\u6001\u6027\u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u5411\u91cf\ndata <- rnorm(100)\n\n# \u6267\u884c\u6b63\u6001\u6027\u68c0\u9a8c\nad_result <- ad.test(data)\n\n# \u67e5\u770b\u68c0\u9a8c\u7ed3\u679c\nprint(ad_result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528rnorm()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u957f\u5ea6\u4e3a100\u7684\u793a\u4f8b\u6570\u636e\u5411\u91cfdata\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4ece\u6807\u51c6\u6b63\u6001\u5206\u5e03\u4e2d\u62bd\u53d6\u7684\u968f\u673a\u6570\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528ad.test()\u51fd\u6570\u5bf9\u6570\u636e\u5411\u91cfdata\u6267\u884cAnderson-Darling\u6b63\u6001\u6027\u68c0\u9a8c\u3002\u68c0\u9a8c\u7ed3\u679c\u4fdd\u5b58\u5728ad_result\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u68c0\u9a8c\u7ed3\u679c\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u503c\u548cp\u503c\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\u793a\u4f8b\uff1a

    Anderson-Darling normality test\n\ndata:  data\nA = 0.27889, p-value = 0.786\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6267\u884c\u6b63\u6001\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cfA\u7684\u503c\u548c\u5bf9\u5e94\u7684p\u503c\u3002\u6839\u636ep\u503c\u7684\u5927\u5c0f\uff0c\u6211\u4eec\u53ef\u4ee5\u5224\u65ad\u6570\u636e\u662f\u5426\u670d\u4ece\u6b63\u6001\u5206\u5e03\u3002\u5728\u672c\u4f8b\u4e2d\uff0cp\u503c\u4e3a0.786\uff0c\u5927\u4e8e\u901a\u5e38\u7684\u663e\u8457\u6027\u6c34\u5e73\uff08\u59820.05\uff09\uff0c\u56e0\u6b64\u65e0\u6cd5\u62d2\u7edd\u539f\u5047\u8bbe\uff0c\u5373\u6570\u636e\u5728\u7edf\u8ba1\u4e0a\u53ef\u4ee5\u8ba4\u4e3a\u670d\u4ece\u6b63\u6001\u5206\u5e03\u3002

"},{"location":"R/base-content/anova%28%29/","title":"Anova()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0canova()\u51fd\u6570\u7528\u4e8e\u8fdb\u884c\u65b9\u5dee\u5206\u6790\uff08Analysis of Variance\uff0cANOVA\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

anova(lm, ...)\n

\u53c2\u6570\uff1a - lm\uff1a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u5bf9\u8c61\uff08\u901a\u8fc7lm()\u51fd\u6570\u521b\u5efa\uff09\u6216\u5176\u4ed6\u9002\u7528\u7684\u6a21\u578b\u5bf9\u8c61\u3002 - ...\uff1a\u5176\u4ed6\u6a21\u578b\u5bf9\u8c61\uff08\u53ef\u9009\uff09\uff0c\u7528\u4e8e\u8fdb\u884c\u591a\u4e2a\u6a21\u578b\u7684\u6bd4\u8f83\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u7684\u5206\u6790\u8868\u683c\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528anova()\u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u6570\u636e\u96c6\ngroup1 <- c(1, 2, 3, 4, 5)\ngroup2 <- c(2, 4, 6, 8, 10)\ngroup3 <- c(3, 6, 9, 12, 15)\n\n# \u521b\u5efa\u7ebf\u6027\u56de\u5f52\u6a21\u578b\nmodel <- lm(c(group1, group2, group3) ~ c(rep(\"Group 1\", 5), rep(\"Group 2\", 5), rep(\"Group 3\", 5)))\n\n# \u8fdb\u884c\u65b9\u5dee\u5206\u6790\nresult <- anova(model)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u4e09\u4e2a\u7ec4\u7684\u6570\u636e\u96c6\uff0c\u6bcf\u4e2a\u7ec4\u5305\u542b\u4e94\u4e2a\u89c2\u6d4b\u503c\u3002\u8fd9\u91cc\u6211\u4eec\u5047\u8bbe\u8fd9\u4e9b\u6570\u636e\u662f\u4e0d\u540c\u7ec4\u4e4b\u95f4\u7684\u54cd\u5e94\u53d8\u91cf\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528lm()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff0c\u5176\u4e2d\u54cd\u5e94\u53d8\u91cf\u4e0e\u7ec4\u53d8\u91cf\u76f8\u5173\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528anova()\u51fd\u6570\u5bf9\u8be5\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u65b9\u5dee\u5206\u6790\u7684\u7ed3\u679c\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\u793a\u4f8b\uff1a

Analysis of Variance Table\n\nResponse: c(group1, group2, group3)\n          Df Sum Sq Mean Sq F value Pr(>F)\nc(rep(\"Group 1\", 5), rep(\"Group 2\", 5), rep(\"Group 3\", 5))   2     30    15.0       2  0.209\nResiduals                                                   12    180    15.0               \n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u65b9\u5dee\u5206\u6790\u7684\u7ed3\u679c\uff0c\u5305\u62ec\u81ea\u7531\u5ea6\uff08Df\uff09\u3001\u5e73\u65b9\u548c\uff08Sum Sq\uff09\u3001\u5747\u65b9\uff08Mean Sq\uff09\u3001F\u503c\u548cp\u503c\u7b49\u4fe1\u606f\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0canova()\u51fd\u6570\u9002\u7528\u4e8e\u6bd4\u8f83\u4e0d\u540c\u7ec4\u4e4b\u95f4\u7684\u5dee\u5f02\uff0c\u5e76\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u3002\u5728\u4f7f\u7528\u51fd\u6570\u65f6\uff0c\u8bf7\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8bbe\u7f6e\u53c2\u6570\u548c\u6570\u636e\u3002

"},{"location":"R/base-content/anova%28%29/#aov","title":"\u4e0eaov()\u7684\u533a\u522b\uff1f\uff1f\uff1f","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0canova()\u548caov()\u51fd\u6570\u90fd\u7528\u4e8e\u6267\u884c\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\uff0c\u4f46\u5b83\u4eec\u5728\u4f7f\u7528\u65b9\u5f0f\u548c\u529f\u80fd\u4e0a\u6709\u4e00\u4e9b\u533a\u522b\u3002

anova()\u51fd\u6570\u7528\u4e8e\u6bd4\u8f83\u7ebf\u6027\u6a21\u578b\u7684\u62df\u5408\u7ed3\u679c\uff0c\u53ef\u4ee5\u8fdb\u884c\u6a21\u578b\u7684\u6bd4\u8f83\u548c\u663e\u8457\u6027\u68c0\u9a8c\u3002\u5b83\u63a5\u53d7\u4e00\u4e2a\u6216\u591a\u4e2a\u62df\u5408\u7684\u7ebf\u6027\u6a21\u578b\u4f5c\u4e3a\u53c2\u6570\uff0c\u5e76\u8ba1\u7b97\u5b83\u4eec\u4e4b\u95f4\u7684\u5dee\u5f02\u548c\u663e\u8457\u6027\u3002anova()\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u7684\u8868\u683c\uff0c\u5176\u4e2d\u5305\u62ec\u6a21\u578b\u4e4b\u95f4\u7684\u6bd4\u8f83\u3001\u65b9\u5dee\u5206\u89e3\u548c\u663e\u8457\u6027\u68c0\u9a8c\u7b49\u4fe1\u606f\u3002anova()\u51fd\u6570\u901a\u5e38\u7528\u4e8e\u6bd4\u8f83\u4e0d\u540c\u6a21\u578b\u7684\u62df\u5408\u60c5\u51b5\uff0c\u6216\u8005\u6bd4\u8f83\u540c\u4e00\u4e2a\u6a21\u578b\u5728\u4e0d\u540c\u6761\u4ef6\u4e0b\u7684\u62df\u5408\u7ed3\u679c\u3002

\u793a\u4f8b\u4ee3\u7801\uff1a

# \u5047\u8bbe\u6709\u4e24\u4e2a\u7ebf\u6027\u6a21\u578b model1 \u548c model2\nresult <- anova(model1, model2)\nprint(result)  # \u8f93\u51fa\u6a21\u578b\u4e4b\u95f4\u7684\u6bd4\u8f83\u548c\u663e\u8457\u6027\u68c0\u9a8c\u7ed3\u679c\n

aov()\u51fd\u6570\u7528\u4e8e\u62df\u5408\u4e00\u4e2a\u7ebf\u6027\u6a21\u578b\u5e76\u6267\u884c\u65b9\u5dee\u5206\u6790\u3002\u5b83\u63a5\u53d7\u4e00\u4e2a\u516c\u5f0f\u4f5c\u4e3a\u53c2\u6570\uff0c\u8be5\u516c\u5f0f\u63cf\u8ff0\u4e86\u56e0\u53d8\u91cf\u548c\u4e00\u4e2a\u6216\u591a\u4e2a\u81ea\u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u7cfb\u3002aov()\u51fd\u6570\u5c06\u6570\u636e\u6309\u7167\u81ea\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u62df\u5408\u7ebf\u6027\u6a21\u578b\u6765\u5206\u6790\u56e0\u53d8\u91cf\u7684\u5dee\u5f02\u662f\u5426\u663e\u8457\u3002aov()\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u4f7f\u7528summary()\u51fd\u6570\u6765\u83b7\u53d6\u66f4\u8be6\u7ec6\u7684\u5206\u6790\u7ed3\u679c\u3002

\u793a\u4f8b\u4ee3\u7801\uff1a

# \u5047\u8bbe\u6709\u56e0\u53d8\u91cf y \u548c\u81ea\u53d8\u91cf x\uff0c\u6309\u7167 x \u8fdb\u884c\u5206\u7ec4\u7684\u6570\u636e\u6846 df\nmodel <- aov(y ~ x, data = df)\nsummary(model)  # \u8f93\u51fa\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\n

\u603b\u7ed3\u533a\u522b\uff1a - anova()\u51fd\u6570\u7528\u4e8e\u6bd4\u8f83\u4e0d\u540c\u6a21\u578b\u7684\u62df\u5408\u7ed3\u679c\uff0c\u8fd4\u56de\u6a21\u578b\u4e4b\u95f4\u7684\u6bd4\u8f83\u548c\u663e\u8457\u6027\u68c0\u9a8c\u7ed3\u679c\u3002 - aov()\u51fd\u6570\u7528\u4e8e\u62df\u5408\u4e00\u4e2a\u7ebf\u6027\u6a21\u578b\u5e76\u6267\u884c\u65b9\u5dee\u5206\u6790\uff0c\u8fd4\u56de\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u4f7f\u7528summary()\u51fd\u6570\u83b7\u53d6\u8be6\u7ec6\u7684\u5206\u6790\u7ed3\u679c\u3002

\u9700\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9\u9002\u5f53\u7684\u51fd\u6570\u6765\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u3002\u5982\u679c\u53ea\u9700\u8981\u6bd4\u8f83\u4e0d\u540c\u6a21\u578b\u7684\u62df\u5408\u7ed3\u679c\uff0c\u4f7f\u7528anova()\u51fd\u6570\uff1b\u5982\u679c\u9700\u8981\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u5e76\u83b7\u53d6\u66f4\u8be6\u7ec6\u7684\u7ed3\u679c\uff0c\u4f7f\u7528aov()\u51fd\u6570\u914d\u5408summary()\u51fd\u6570\u3002

"},{"location":"R/base-content/aov%28%29/","title":"Aov()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0caov() \u51fd\u6570\u7528\u4e8e\u8fdb\u884c\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u7684\u8ba1\u7b97\u3002\u5b83\u7528\u4e8e\u6bd4\u8f83\u4e0d\u540c\u7ec4\u4e4b\u95f4\u7684\u5747\u503c\u662f\u5426\u663e\u8457\u4e0d\u540c\uff0c\u4ee5\u53ca\u786e\u5b9a\u54ea\u4e9b\u56e0\u7d20\u5bf9\u4e8e\u89c2\u5bdf\u5230\u7684\u5dee\u5f02\u6709\u663e\u8457\u5f71\u54cd\u3002\u4e0b\u9762\u662f\u5bf9 aov() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

aov(formula, data, subset, na.action, ...)\n

\u53c2\u6570\u8bf4\u660e\uff1a - formula\uff1a\u4e00\u4e2a\u516c\u5f0f\u5bf9\u8c61\uff0c\u8868\u793a\u8981\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u7684\u6a21\u578b\u3002\u516c\u5f0f\u7684\u5f62\u5f0f\u4e3a response ~ terms\uff0c\u5176\u4e2d response \u662f\u4e00\u4e2a\u56e0\u53d8\u91cf\uff0cterms \u662f\u4e00\u4e2a\u6216\u591a\u4e2a\u81ea\u53d8\u91cf\u548c\u4ea4\u4e92\u9879\u3002\u4f8b\u5982\uff0cy ~ x1 + x2 \u8868\u793a\u56e0\u53d8\u91cf y \u4e0e\u81ea\u53d8\u91cf x1 \u548c x2 \u4e4b\u95f4\u7684\u5173\u7cfb\u3002

  • data\uff1a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u8868\u793a\u5305\u542b\u56e0\u53d8\u91cf\u548c\u81ea\u53d8\u91cf\u7684\u6570\u636e\u3002\u9ed8\u8ba4\u4e3a\u5f53\u524d\u73af\u5883\u4e2d\u7684\u6570\u636e\u6846\u3002

  • subset\uff1a\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\uff0c\u8868\u793a\u8981\u4f7f\u7528\u7684\u89c2\u5bdf\u503c\u7684\u5b50\u96c6\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u4f7f\u7528\u6240\u6709\u89c2\u5bdf\u503c\u3002

  • na.action\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5904\u7406\u7f3a\u5931\u503c\u7684\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a na.omit\uff0c\u8868\u793a\u5220\u9664\u5305\u542b\u7f3a\u5931\u503c\u7684\u89c2\u5bdf\u503c\u3002

  • ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u51fd\u6570\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u65b9\u5dee\u5206\u6790\u5bf9\u8c61\uff0c\u53ef\u4ee5\u901a\u8fc7 summary() \u51fd\u6570\u83b7\u53d6\u5206\u6790\u7ed3\u679c\u3002 \u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 aov() \u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u5206\u6790\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  group = c(\"A\", \"A\", \"B\", \"B\", \"C\", \"C\"),\n  value = c(10, 12, 15, 18, 20, 22)\n)\n\n# \u8fdb\u884c\u65b9\u5dee\u5206\u6790\nresult <- aov(value ~ group, data = data)\n\n# \u6253\u5370\u5206\u6790\u7ed3\u679c\nprint(summary(result))\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u5206\u7ec4\u53d8\u91cf group \u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cf value\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 aov() \u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u5206\u6790\uff0c\u5176\u4e2d\u56e0\u53d8\u91cf\u662f value\uff0c\u81ea\u53d8\u91cf\u662f group\u3002\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528 summary() \u51fd\u6570\u6253\u5370\u51fa\u5206\u6790\u7ed3\u679c\uff0c\u5305\u62ec\u7ec4\u95f4\u53d8\u5f02\u3001\u7ec4\u5185\u53d8\u5f02\u3001\u5747\u65b9\u548c F \u7edf\u8ba1\u91cf\u7b49\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8c03\u6574\u53c2\u6570\uff0c\u4f8b\u5982\u6307\u5b9a\u989d\u5916\u7684\u81ea\u53d8\u91cf\u3001\u4ea4\u4e92\u9879\uff0c\u5904\u7406\u7f3a\u5931\u503c\u7684\u65b9\u5f0f\uff0c\u6216\u8005\u4f7f\u7528\u5176\u4ed6\u7edf\u8ba1\u65b9\u6cd5\u3002\u6839\u636e\u6570\u636e\u7684\u7279\u70b9\u548c\u7814\u7a76\u95ee\u9898\uff0c\u9002\u5f53\u8c03\u6574\u53c2\u6570\u53ef\u4ee5\u5f97\u5230\u76f8\u5e94\u7684\u65b9\u5dee\u5206\u6790\u7ed3\u679c\u3002

"},{"location":"R/base-content/aov%28%29/#one-way-anova","title":"\u5355\u56e0\u7d20\uff08\u5b50\uff09\u65b9\u5dee\u5206\u6790\uff08One-way ANOVA\uff09","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c\u5f53\u9700\u8981\u68c0\u9a8c\u4e09\u4e2a\u6216\u66f4\u591a\u5747\u503c\u662f\u5426\u5b58\u5728\u663e\u8457\u6027\u5dee\u5f02\u65f6\uff0c\u901a\u5e38\u91c7\u7528\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u3002\u8fd9\u91cc\uff0c\u6211\u5c06\u5c55\u793a\u5982\u4f55\u4f7f\u7528R\u8bed\u8a00\u8fdb\u884c\u4e00\u5143\u65b9\u5dee\u5206\u6790\uff08One-way ANOVA\uff09\u7684\u4f8b\u5b50\uff0c\u5047\u8bbe\u6211\u4eec\u6709\u4e09\u4e2a\u72ec\u7acb\u7684\u6837\u672c\u7ec4\u3002

\u4ee5\u4e0b\u662f\u5177\u4f53\u6b65\u9aa4\u548c\u4ee3\u7801\uff1a

  1. \u51c6\u5907\u6570\u636e\uff1a\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u6211\u4eec\u60f3\u8981\u68c0\u9a8c\u7684\u53d8\u91cf\u3002\u5047\u8bbe\u6211\u4eec\u6709\u4e09\u7ec4\u6570\u636e\uff0c\u5206\u522b\u547d\u540d\u4e3agroup1\u3001group2 \u548c group3\u3002
# \u5b9a\u4e49\u4e09\u4e2a\u6837\u672c\u7ec4\u7684\u6570\u636e\ngroup1 <- c(6, 8, 4, 5, 3, 7)\ngroup2 <- c(8, 7, 6, 5, 7, 8)\ngroup3 <- c(13, 9, 11, 8, 12, 10)\n\n# \u4f7f\u7528data.frame\u521b\u5efa\u6570\u636e\u6846\uff0c\u5e76\u6dfb\u52a0\u4e00\u4e2a\u7ec4\u522b\u6807\u8bc6\u56e0\u5b50\ndata <- data.frame(\n  value = c(group1, group2, group3),\n  group = factor(rep(c(\"Group1\", \"Group2\", \"Group3\"), each = 6))\n)\n
  1. \u8fdb\u884c\u65b9\u5dee\u5206\u6790\uff1a\u4f7f\u7528aov\u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u5206\u6790\uff0c\u5e76\u7528summary\u51fd\u6570\u67e5\u770b\u7ed3\u679c\u3002
# \u8fdb\u884c\u4e00\u5143\u65b9\u5dee\u5206\u6790\nresult <- aov(value ~ group, data = data)\n\n# \u663e\u793a\u65b9\u5dee\u5206\u6790\u7ed3\u679c\nsummary(result)\n
  1. \u5982\u679cANOVA\u7ed3\u679c\u663e\u793a\u81f3\u5c11\u6709\u4e00\u7ec4\u5747\u503c\u4e0e\u5176\u4ed6\u7ec4\u6709\u663e\u8457\u5dee\u5f02\uff0c\u63a5\u4e0b\u6765\u53ef\u4ee5\u8fdb\u884c\u4e8b\u540e\u68c0\u9a8c\uff08Post-hoc test\uff09\u6765\u786e\u5b9a\u54ea\u4e9b\u7ec4\u4e4b\u95f4\u5b58\u5728\u5dee\u5f02\u3002\u5e38\u89c1\u7684\u4e8b\u540e\u68c0\u9a8c\u5305\u62ecTukeyHSD\u3001pairwise.t.test\u7b49\u3002
# \u8fdb\u884cTukeyHSD\u4e8b\u540e\u68c0\u9a8c\nTukeyHSD(result)\n

\u4e0b\u9762\u662f\u5c06\u8fd9\u4e9b\u6b65\u9aa4\u6574\u5408\u5230\u4e00\u8d77\u7684\u5b8c\u6574\u793a\u4f8b\uff1a

# \u5b9a\u4e49\u6837\u672c\u6570\u636e\ngroup1 <- c(6, 8, 4, 5, 3, 7)\ngroup2 <- c(8, 7, 6, 5, 7, 8)\ngroup3 <- c(13, 9, 11, 8, 12, 10)\n\n# \u521b\u5efa\u6570\u636e\u6846\ndata <- data.frame(\n  value = c(group1, group2, group3),\n  group = factor(rep(c(\"Group1\", \"Group2\", \"Group3\"), each = 6))\n)\n\n# \u8fdb\u884c\u65b9\u5dee\u5206\u6790\nresult <- aov(value ~ group, data = data)\n\n# \u67e5\u770b\u65b9\u5dee\u5206\u6790\u7ed3\u679c\nsummary_result <- summary(result)\nprint(summary_result)\n\n# \u5982\u679cANOVA\u663e\u793a\u6709\u663e\u8457\u6027\u5dee\u5f02\uff0c\u5219\u8fdb\u884cTukeyHSD\u4e8b\u540e\u68c0\u9a8c\nif(summary_result[[1]]$'Pr(>F)'[1] < 0.05) {\n  posthoc_result <- TukeyHSD(result)\n  print(posthoc_result)\n}\n

\u8fd0\u884c\u4ee5\u4e0a\u4ee3\u7801\u540e\uff0c\u4f60\u4f1a\u5f97\u5230\u6bcf\u4e2a\u7ec4\u4e4b\u95f4\u5747\u503c\u7684\u6bd4\u8f83\u7ed3\u679c\u4ee5\u53ca\u662f\u5426\u5b58\u5728\u663e\u8457\u5dee\u5f02\u3002\u5982\u679cPr(>F)\u7684\u503c\u4f4e\u4e8e\u4f60\u9009\u62e9\u7684\u663e\u8457\u6027\u6c34\u5e73\uff08\u4f8b\u59820.05\uff09\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u8ba4\u4e3a\u81f3\u5c11\u6709\u4e00\u7ec4\u5747\u503c\u4e0e\u5176\u4ed6\u7ec4\u4e0d\u540c\u3002\u4e8b\u540e\u68c0\u9a8c\u7684\u7ed3\u679c\u5c06\u544a\u8bc9\u4f60\u5177\u4f53\u54ea\u4e9b\u7ec4\u4e4b\u95f4\u5b58\u5728\u663e\u8457\u6027\u5dee\u5f02\u3002

"},{"location":"R/base-content/aov%28%29/#_1","title":"\u89e3\u91ca","text":"

summary(model)\u663e\u793a\u7684\u5185\u5bb9

school\uff1a\u5206\u5b50 Residuals\uff1a\u5206\u6bcd \u3002\u89e3\u91ca\u4e3a\u4f59\u6570\u548c\u6b8b\u5dee\uff1f

\uff081\uff09DF\uff1a\u81ea\u7531\u5ea6\uff1b \uff082\uff09Sum Sq\uff1asum of squares\uff0cSS\uff1b \uff083\uff09Mean Sq\uff1amean of squuares\uff0cMS\uff1b \uff084\uff09F value\uff1aF\u503c\uff1b \uff085\uff09Pr(>F)\uff1aP\u503c \uff086\uff09Signif. codes\uff1ap\u503c\u5f97\u663e\u8457\u7a0b\u5ea6\uff0c\u4e09\u4e2a\u661f\u53f7\u8868\u793a\u663e\u8457\u6c34\u5e73\u57280\u52300.001\u4e4b\u95f4

"},{"location":"R/base-content/aov%28%29/#_2","title":"\u53cc\u56e0\u7d20\u65b9\u5dee\u5206\u6790","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c\u53cc\u56e0\u7d20\u65b9\u5dee\u5206\u6790\uff08Two-Way\u00a0ANOVA\uff09\u53ef\u4ee5\u7528\u6765\u7814\u7a76\u4e24\u4e2a\u5206\u7c7b\u81ea\u53d8\u91cf\uff08\u56e0\u5b50\uff09\u5bf9\u4e00\u4e2a\u8fde\u7eed\u56e0\u53d8\u91cf\u7684\u5f71\u54cd\u3002\u53ef\u4ee5\u901a\u8fc7aov()\u51fd\u6570\u6216\u8005lm()\u51fd\u6570\u6765\u8fdb\u884c\u53cc\u56e0\u7d20\u65b9\u5dee\u5206\u6790\uff0c\u5e76\u4f7f\u7528summary()\u51fd\u6570\u6765\u83b7\u53d6\u5206\u6790\u7ed3\u679c\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528aov()\u51fd\u6570\u8fdb\u884c\u53cc\u56e0\u7d20\u65b9\u5dc0\u5206\u6790\u7684\u4f8b\u5b50\uff1a

\uff081\uff09\u4e24\u4e2a\u56e0\u7d20\u5b58\u5728\u4ea4\u4e92\u4f5c\u7528\uff0c\u76f8\u4e92\u5f71\u54cd

result\u00a0<-\u00a0aov(Response\u00a0~\u00a0Factor1\u00a0*\u00a0Factor2,\u00a0data=data)

\uff082\uff09\u4e24\u4e2a\u56e0\u7d20\u662f\u76f8\u4e92\u72ec\u7acb\u7684

result\u00a0<-\u00a0aov(Response\u00a0~\u00a0Factor1\u00a0+ Factor2,\u00a0data=data)

"},{"location":"R/base-content/aov%28%29/#_3","title":"\u7ea2\u9152\u914d\u7ea2\u8089\u7684\u4f8b\u5b50\uff1a","text":"

\u770b\u9152\u7684\u79cd\u7c7b\u548c\u8089\u7684\u79cd\u7c7b\u5bf9\u8bc4\u4ef7\u7684\u5f71\u54cd\uff01

\uff1f\uff1f\uff1f\u6709\u65f6\u95f4\u7cbe\u7b80\u4e0b\uff01

\u8fd9\u4e00\u6b65\u7684\u76ee\u7684\u662f\u5c06\u6570\u636e\u6846 taste \u4e2d\u7684\u5217 \"red_meet\", \"chicken\", \"fish\" \u8f6c\u6362\u4e3a\u957f\u683c\u5f0f\uff08long format\uff09\uff0c\u5e76\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5217 meet_type \u6765\u5b58\u50a8\u8f6c\u6362\u540e\u7684\u56e0\u5b50\u53d8\u91cf\u3002\u8fd9\u6837\u505a\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u66f4\u65b9\u4fbf\u5730\u8fdb\u884c\u6570\u636e\u5206\u6790\u548c\u53ef\u89c6\u5316\u3002

\u5177\u4f53\u6765\u8bf4\uff0cpivot_longer() \u51fd\u6570\u7684\u4f5c\u7528\u662f\u5c06\u591a\u4e2a\u5217\u5408\u5e76\u6210\u4e00\u4e2a\u5217\uff0c\u5e76\u5c06\u5408\u5e76\u540e\u7684\u503c\u5b58\u50a8\u5728\u65b0\u7684\u5217\u4e2d\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u51fd\u6570\u5c06\u5217 \"red_meet\", \"chicken\", \"fish\" \u5408\u5e76\u6210\u4e00\u4e2a\u65b0\u7684\u5217 meet_type\uff0c\u5e76\u5c06\u5408\u5e76\u540e\u7684\u503c\u5b58\u50a8\u5728\u65b0\u7684\u5217 level \u4e2d\u3002

\u63a5\u7740\uff0cmutate() \u51fd\u6570\u5c06 meet_type \u5217\u8f6c\u6362\u4e3a\u56e0\u5b50\u53d8\u91cf\uff0c\u8fd9\u6837\u5728\u540e\u7eed\u7684\u5206\u6790\u4e2d\u53ef\u4ee5\u66f4\u597d\u5730\u5904\u7406\u8be5\u53d8\u91cf\u3002

\u901a\u8fc7\u5c06\u6570\u636e\u8f6c\u6362\u4e3a\u957f\u683c\u5f0f\uff0c\u53ef\u4ee5\u66f4\u5bb9\u6613\u5730\u8fdb\u884c\u6570\u636e\u5206\u6790\uff0c\u4f8b\u5982\u4f7f\u7528 ggplot2 \u8fdb\u884c\u53ef\u89c6\u5316\u6216\u4f7f\u7528\u7edf\u8ba1\u6a21\u578b\u8fdb\u884c\u5efa\u6a21\u3002\u957f\u683c\u5f0f\u7684\u6570\u636e\u66f4\u9002\u5408\u4e8e\u5904\u7406\u591a\u4e2a\u56e0\u5b50\u53d8\u91cf\uff0c\u540c\u65f6\u4e5f\u66f4\u7b26\u5408\u6570\u636e\u5206\u6790\u548c\u7edf\u8ba1\u5efa\u6a21\u7684\u8981\u6c42\u3002

# \u6e38\u54e5\u7a0b\u5e8f\ntaste <- tibble(\n  red_meet = c(10,9,10,3,3,2),\n  chicken = c(4,4,2,6,5,7),\n  fish = c(3,2,4,8,6,7),\n  wine =c(\"red_wine\",\"red_wine\",\"red_wine\",\"white_wine\",\"white_wine\",\"white_wine\")\n)\n\ntaste <- taste %>%\n  pivot_longer(c(\"red_meet\",\"chicken\",\"fish\"), names_to = c(\"meet_type\"), values_to = \"level\") %>% \n  mutate(meet_type = factor(meet_type))\n\n# tw two w...\u53cc\u56e0\u7d20\u53d8\u91cf\ntw_anova <-aov(level ~ wine + meet_type,data = taste)\nsummary(tw_anova)\n\n# \u4ea4\u4e92\u4f5c\u7528 * meet_type \u4ea4\u4e92\u9879\ntw_anova <-aov(level ~ wine * meet_type,data = taste)\nsummary(tw_anova)\n\n# \u4ea4\u4e92\u4f5c\u7528\u56fe\uff0c\u6ca1\u6709\u4ea4\u53c9\uff0c\u4ea4\u4e92\u4f5c\u7528\u4e0d\u663e\u8457\nwith(taste, {\ninteraction.plot(wine,meet_type,level,type=\"b\",\n                 col=c('red',\"blue\"), pch = c(16,18),\n                 main = \"Interaction between wine and meet_type\")\n})\n

\u53e6\u5916\uff0caov()\u51fd\u6570\u8fd8\u53ef\u4ee5\u4e0eTukeyHSD()\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u8fdb\u884c\u4e8b\u540e\u591a\u91cd\u6bd4\u8f83\u5206\u6790\uff1a

#\u00a0\u4e8b\u540e\u591a\u91cd\u6bd4\u8f83\u5206\u6790  \nTukeyHSD(tw_anova)\n
"},{"location":"R/base-content/aov%28%29/#_4","title":"\u89e3\u91ca","text":"

wine\uff1a\u5c5e\u4e8e\u5206\u5b50\uff0c\u5f71\u54cd\u56e0\u7d201\uff1b meet_type\uff1a\u5c5e\u4e8e\u5206\u5b50\uff0c\u5f71\u54cd\u56e0\u7d202\uff1b wine:meet_type\uff1a\u4e58\u79ef\uff1f\u5c5e\u4e8e\u5206\u5b50\uff0c\u989d\u5916\u7684\u5f71\u54cd\u56e0\u7d201*2

Residuals\uff1a\u5206\u6bcd \u3002\u89e3\u91ca\u4e3a\u4f59\u6570\u548c\u6b8b\u5dee\uff1f

\uff081\uff09DF\uff1a\u81ea\u7531\u5ea6\uff1b \uff082\uff09Sum Sq\uff1asum of squares\uff0cSS\uff1b \uff083\uff09Mean Sq\uff1amean of squuares\uff0cMS\uff1b \uff084\uff09F value\uff1aF\u503c\uff1b \uff085\uff09Pr(>F)\uff1aP\u503c \uff0c\u8ddfF\u503c\u7684\u7ed3\u8bba\u5e94\u8be5\u662f\u4e00\u81f4\u7684\uff01\u4e00\u822c\u8003\u8651\u663e\u8457\u6027\u6c34\u5e73\u03b1=5%\uff0cP<\u03b1\u4ee3\u8868\u67d0\u4e2a\u56e0\u7d20\u5bf9\u7ed3\u679c\u5177\u6709\u663e\u8457\u5f71\u54cd\uff1f \uff086\uff09Signif. codes\uff1ap\u503c\u5f97\u663e\u8457\u7a0b\u5ea6\uff0c\u4e09\u4e2a\u661f\u53f7\u8868\u793a\u663e\u8457\u6c34\u5e73\u57280\u52300.001\u4e4b\u95f4\u3002

"},{"location":"R/base-content/append%28%29/","title":"Append()","text":"

append()\u51fd\u6570\uff0c\u7528\u4e8e\u5411\u5411\u91cf\u6216\u5217\u8868\u4e2d\u6dfb\u52a0\u5143\u7d20\u3002

\u4ee5\u4e0b\u662fappend()\u51fd\u6570\u7684\u5b9a\u4e49\uff1a

append(x, values, after = length(x))\n

\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u8981\u6dfb\u52a0\u5143\u7d20\u7684\u5411\u91cf\u6216\u5217\u8868\u3002 - values\uff1a\u8981\u6dfb\u52a0\u7684\u5143\u7d20\u6216\u8981\u6dfb\u52a0\u7684\u503c\u7684\u5411\u91cf\u3002 - after\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u5728\u54ea\u4e2a\u4f4d\u7f6e\u4e4b\u540e\u6dfb\u52a0\u5143\u7d20\u3002\u9ed8\u8ba4\u4e3a\u5411\u91cf\u6216\u5217\u8868\u7684\u672b\u5c3e\u3002

\u4e0b\u9762\u662f\u4f7f\u7528append()\u51fd\u6570\u5411\u5411\u91cf\u548c\u5217\u8868\u4e2d\u6dfb\u52a0\u5143\u7d20\u7684\u793a\u4f8b\uff1a

# \u5411\u5411\u91cf\u4e2d\u6dfb\u52a0\u5143\u7d20\nvec <- c(1, 2, 3)\nnew_vec <- append(vec, 4)\nprint(new_vec)\n\n# \u5411\u5217\u8868\u4e2d\u6dfb\u52a0\u5143\u7d20\nmy_list <- list(\"apple\", \"banana\", \"orange\")\nnew_list <- append(my_list, \"grape\")\nprint(new_list)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5206\u522b\u4f7f\u7528append()\u51fd\u6570\u5411\u5411\u91cfvec\u548c\u5217\u8868my_list\u4e2d\u6dfb\u52a0\u5143\u7d20\u3002

\u5bf9\u4e8e\u5411\u91cf\uff0c\u6211\u4eec\u5c06\u5143\u7d204\u6dfb\u52a0\u5230\u5411\u91cfvec\u4e2d\uff0c\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728new_vec\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u7ed3\u679c\u3002

\u5bf9\u4e8e\u5217\u8868\uff0c\u6211\u4eec\u5c06\u5143\u7d20\"grape\"\u6dfb\u52a0\u5230\u5217\u8868my_list\u4e2d\uff0c\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728new_list\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0cappend()\u51fd\u6570\u5c06\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\u6216\u5217\u8868\uff0c\u800c\u4e0d\u4f1a\u4fee\u6539\u539f\u59cb\u7684\u5411\u91cf\u6216\u5217\u8868\u3002

"},{"location":"R/base-content/array%28%29/","title":"Array()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0carray()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u591a\u7ef4\u6570\u7ec4\uff08array\uff09\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

array(data = NA, dim = length(data), dimnames = NULL)\n
\u53c2\u6570\uff1a - data\uff1a\u7528\u4e8e\u586b\u5145\u6570\u7ec4\u7684\u6570\u636e\u3002\u53ef\u4ee5\u662f\u5411\u91cf\u3001\u77e9\u9635\u6216\u5176\u4ed6\u6570\u7ec4\u3002 - dim\uff1a\u6307\u5b9a\u6570\u7ec4\u7684\u7ef4\u5ea6\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u6574\u6570\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u7ef4\u5ea6\u7684\u957f\u5ea6\uff1b\u4e5f\u53ef\u4ee5\u662f\u4e00\u4e2a\u6b63\u6574\u6570\uff0c\u8868\u793a\u6570\u7ec4\u7684\u603b\u957f\u5ea6\uff0c\u6b64\u65f6\u7ef4\u5ea6\u5c06\u81ea\u52a8\u8ba1\u7b97\u3002 - dimnames\uff1a\u4e00\u4e2a\u5305\u542b\u7ef4\u5ea6\u540d\u79f0\u7684\u5217\u8868\uff0c\u7528\u4e8e\u6807\u8bc6\u6570\u7ec4\u7684\u5404\u4e2a\u7ef4\u5ea6\u3002 \u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e9b\u4f7f\u7528array()\u51fd\u6570\u521b\u5efa\u591a\u7ef4\u6570\u7ec4\u7684\u793a\u4f8b\uff1a
# \u793a\u4f8b1\uff1a\u521b\u5efa\u4e8c\u7ef4\u6570\u7ec4\ndata <- 1:6\narr <- array(data, dim = c(2, 3))\nprint(arr)\n# \u8f93\u51fa:\n#      [,1] [,2] [,3]\n# [1,]    1    3    5\n# [2,]    2    4    6\n

# \u793a\u4f8b1-1\uff1a\u521b\u5efa\u4e8c\u7ef4\u6570\u7ec4\u5e76\u6307\u5b9a\u7ef4\u5ea6\u540d\u79f0\n# \u4f7f\u7528array()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a3x3\u7684\u4e8c\u7ef4\u6570\u7ec4\narr <- array(1:9, dim = c(3, 3))\n# \u4f7f\u7528dimnames\u53c2\u6570\u4e3a\u6570\u7ec4\u7684\u884c\u548c\u5217\u8d4b\u4e88\u540d\u79f0\ndimnames(arr) <- list(c(\"Row1\", \"Row2\", \"Row3\"), c(\"Col1\", \"Col2\", \"Col3\"))\n# \u6253\u5370\u5e26\u6709\u540d\u79f0\u7684\u4e8c\u7ef4\u6570\u7ec4\nprint(arr)\n\nCol1 Col2 Col3\nRow1    1    4    7\nRow2    2    5    8\nRow3    3    6    9\n
# \u793a\u4f8b2\uff1a\u521b\u5efa\u4e09\u7ef4\u6570\u7ec4\ndata <- 1:8\narr <- array(data, dim = c(2, 2, 2))\nprint(arr)\n# \u8f93\u51fa:\n# , , 1\n# \n#      [,1] [,2]\n# [1,]    1    3\n# [2,]    2    4\n# \n# , , 2\n# \n#      [,1] [,2]\n# [1,]    5    7\n# [2,]    6    8\n
# \u793a\u4f8b3\uff1a\u521b\u5efa\u4e09\u7ef4\u6570\u7ec4\u5e76\u6307\u5b9a\u7ef4\u5ea6\u540d\u79f0\ndata <- 1:8\ndimnames <- list(c(\"A\", \"B\"), c(\"X\", \"Y\"), c(\"M\", \"N\"))\narr <- array(data, dim = c(2, 2, 2), dimnames = dimnames)\nprint(arr)\n# \u8f93\u51fa:\n# , , M\n# \n#   X Y\n# A 1 3\n# B 2 4\n# \n# , , N\n# \n#   X Y\n# A 5 7\n# B 6 8\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c55\u793a\u4e86\u4f7f\u7528array()\u51fd\u6570\u521b\u5efa\u4e0d\u540c\u7ef4\u5ea6\u7684\u591a\u7ef4\u6570\u7ec4\u3002

\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u4e8c\u7ef4\u6570\u7ec4arr\uff0c\u4f7f\u7528data\u53c2\u6570\u586b\u5145\u6570\u7ec4\uff0c\u4f7f\u7528dim\u53c2\u6570\u6307\u5b9a\u6570\u7ec4\u7684\u7ef4\u5ea6\u4e3a2\u884c3\u5217\u3002\u51fd\u6570\u5c06\u6570\u636e\u6309\u7167\u6307\u5b9a\u7684\u7ef4\u5ea6\u6392\u5217\uff0c\u5e76\u6253\u5370\u51fa\u6570\u7ec4\u7684\u5185\u5bb9\u3002

\u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u4e09\u7ef4\u6570\u7ec4arr\uff0c\u4f7f\u7528data\u53c2\u6570\u586b\u5145\u6570\u7ec4\uff0c\u4f7f\u7528dim\u53c2\u6570\u6307\u5b9a\u6570\u7ec4\u7684\u7ef4\u5ea6\u4e3a2\u884c2\u52172\u5c42\u3002\u51fd\u6570\u5c06\u6570\u636e\u6309\u7167\u6307\u5b9a\u7684\u7ef4\u5ea6\u6392\u5217\uff0c\u5e76\u6253\u5370\u51fa\u6570\u7ec4\u7684\u5185\u5bb9\u3002

\u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u4e09\u7ef4\u6570\u7ec4arr\uff0c\u4f7f\u7528data\u53c2\u6570\u586b\u5145\u6570\u7ec4\uff0c\u4f7f\u7528dim\u53c2\u6570\u6307\u5b9a\u6570\u7ec4\u7684\u7ef4\u5ea6\u4e3a2\u884c2\u52172\u5c42\u3002\u6211\u4eec\u8fd8\u4f7f\u7528dimnames\u53c2\u6570\u6307\u5b9a\u4e86\u6bcf\u4e2a\u7ef4\u5ea6\u7684\u540d\u79f0\u3002\u51fd\u6570\u5c06\u6570\u636e\u6309\u7167\u6307\u5b9a\u7684\u7ef4\u5ea6\u548c\u7ef4\u5ea6\u540d\u79f0\u6392\u5217\uff0c\u5e76\u6253\u5370\u51fa\u6570\u7ec4\u7684\u5185\u5bb9\u3002

\u901a\u8fc7\u4f7f\u7528array()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u521b\u5efa\u4efb\u610f\u7ef4\u5ea6\u7684\u591a\u7ef4\u6570\u7ec4\uff0c\u5e76\u6839\u636e\u9700\u8981\u586b\u5145\u6570\u636e\u548c\u6307\u5b9a\u7ef4\u5ea6\u540d\u79f0\uff0c\u4ee5\u6ee1\u8db3\u6570\u636e\u5206\u6790\u548c\u8ba1\u7b97\u7684\u9700\u6c42\u3002

"},{"location":"R/base-content/as.character%28%29/","title":"As.character()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cas.character()\u51fd\u6570\u7528\u4e8e\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

as.character(x, ...)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\u7684\u5bf9\u8c61\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u8f6c\u6362\u65b9\u6cd5\u3002 \u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e9b\u4f7f\u7528as.character()\u51fd\u6570\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\u7684\u793a\u4f8b\uff1a
# \u793a\u4f8b1\uff1a\u5c06\u6570\u503c\u5411\u91cf\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\nnums <- c(1, 2, 3, 4, 5)\nchar_vec <- as.character(nums)\nprint(char_vec)\n# \u8f93\u51fa: \"1\" \"2\" \"3\" \"4\" \"5\"\n\n# \u793a\u4f8b2\uff1a\u5c06\u903b\u8f91\u5411\u91cf\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\nlogical_vec <- c(TRUE, FALSE, TRUE)\nchar_vec <- as.character(logical_vec)\nprint(char_vec)\n# \u8f93\u51fa: \"TRUE\" \"FALSE\" \"TRUE\"\n\n# \u793a\u4f8b3\uff1a\u5c06\u65e5\u671f\u5411\u91cf\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\ndates <- as.Date(c(\"2022-01-01\", \"2022-02-01\", \"2022-03-01\"))\nchar_vec <- as.character(dates)\nprint(char_vec)\n# \u8f93\u51fa: \"2022-01-01\" \"2022-02-01\" \"2022-03-01\"\n\n# \u793a\u4f8b4\uff1a\u5c06\u56e0\u5b50\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\nfactor_vec <- factor(c(\"A\", \"B\", \"C\"))\nchar_vec <- as.character(factor_vec)\nprint(char_vec)\n# \u8f93\u51fa: \"A\" \"B\" \"C\"\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6f14\u793a\u4e86\u5c06\u4e0d\u540c\u7c7b\u578b\u7684\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\u7684\u60c5\u51b5\u3002 \u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u5c06\u6570\u503c\u5411\u91cfnums\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cfchar_vec\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u88ab\u8f6c\u6362\u4e3a\u5b57\u7b26\u3002 \u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u5c06\u903b\u8f91\u5411\u91cflogical_vec\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cfchar_vec\uff0c\u5176\u4e2d\u903b\u8f91\u503cTRUE\u548cFALSE\u88ab\u8f6c\u6362\u4e3a\u5b57\u7b26\u3002 \u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u5c06\u65e5\u671f\u5411\u91cfdates\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cfchar_vec\uff0c\u5176\u4e2d\u65e5\u671f\u88ab\u8f6c\u6362\u4e3a\u5b57\u7b26\u5f62\u5f0f\u7684\u65e5\u671f\u3002 \u5728\u793a\u4f8b4\u4e2d\uff0c\u6211\u4eec\u5c06\u56e0\u5b50factor_vec\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cfchar_vec\uff0c\u5176\u4e2d\u56e0\u5b50\u6c34\u5e73\u88ab\u8f6c\u6362\u4e3a\u5b57\u7b26\u3002 \u901a\u8fc7\u4f7f\u7528as.character()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5b57\u7b26\u5411\u91cf\uff0c\u4ee5\u6ee1\u8db3\u7279\u5b9a\u7684\u6570\u636e\u5904\u7406\u548c\u5206\u6790\u9700\u6c42\u3002

"},{"location":"R/base-content/as.factor%28%29/","title":"As.factor()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cas.factor() \u51fd\u6570\u7528\u4e8e\u5c06\u4e00\u4e2a\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\uff08factor\uff09\u7c7b\u578b\u3002\u56e0\u5b50\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7528\u4e8e\u8868\u793a\u5206\u7c7b\u53d8\u91cf\uff0c\u5176\u4e2d\u6bcf\u4e2a\u6c34\u5e73\uff08level\uff09\u4ee3\u8868\u4e00\u4e2a\u7c7b\u522b\u3002\u4ee5\u4e0b\u662f as.factor() \u51fd\u6570\u7684\u4e00\u822c\u683c\u5f0f\u548c\u4e00\u4e9b\u793a\u4f8b\u7528\u6cd5\uff1a

as.factor(x)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\u7684\u5411\u91cf\u3001\u56e0\u5b50\u6216\u6570\u636e\u6846\u4e2d\u7684\u5217\u3002 \u793a\u4f8b\u7528\u6cd5\uff1a
# \u5c06\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\nvec <- c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\")\nfactor_vec <- as.factor(vec)\nprint(factor_vec)\n\n# \u5c06\u6570\u636e\u6846\u4e2d\u7684\u5217\u8f6c\u6362\u4e3a\u56e0\u5b50\ndf <- data.frame(\n  x = c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\"),\n  y = c(1, 2, 3, 4, 5, 6)\n)\ndf$y <- as.factor(df$y)\nprint(df)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c55\u793a\u4e86\u5c06\u5411\u91cf\u548c\u6570\u636e\u6846\u4e2d\u7684\u5217\u8f6c\u6362\u4e3a\u56e0\u5b50\u7684\u7528\u6cd5\u3002\u9996\u5148\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u5411\u91cf vec\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u51e0\u4e2a\u5b57\u7b26\u7c7b\u522b\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 as.factor() \u51fd\u6570\u5c06\u5411\u91cf vec \u8f6c\u6362\u4e3a\u56e0\u5b50\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u53d8\u91cf factor_vec \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u8f93\u51fa\u7ed3\u679c\u3002 \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] A B A C B C\nLevels: A B C\n
\u8fd9\u8868\u793a\u5411\u91cf factor_vec \u5df2\u6210\u529f\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\uff0c\u5e76\u4e14\u5305\u542b\u4e09\u4e2a\u6c34\u5e73\uff08levels\uff09\uff1aA\u3001B \u548c C\u3002 \u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846 df\uff0c\u5176\u4e2d\u5305\u542b\u4e24\u5217\u53d8\u91cf x \u548c y\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 as.factor() \u51fd\u6570\u5c06\u6570\u636e\u6846\u4e2d\u7684\u5217 y \u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\uff0c\u5e76\u8986\u76d6\u539f\u59cb\u5217\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u8f93\u51fa\u6574\u4e2a\u6570\u636e\u6846\u3002 \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
  x y\n1 A 1\n2 B 2\n3 A 3\n4 C 4\n5 B 5\n6 C 6\n

\u8fd9\u8868\u793a\u6570\u636e\u6846 df \u4e2d\u7684\u5217 y \u5df2\u6210\u529f\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\u3002 \u603b\u7ed3\u8d77\u6765\uff0cas.factor() \u51fd\u6570\u7528\u4e8e\u5c06\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\u3002\u56e0\u5b50\u7c7b\u578b\u5e38\u7528\u4e8e\u8868\u793a\u5206\u7c7b\u53d8\u91cf\uff0c\u5e76\u5728\u7edf\u8ba1\u5206\u6790\u4e2d\u5177\u6709\u7279\u6b8a\u7684\u7528\u9014\u3002

"},{"location":"R/base-content/as.integer%28%29/","title":"As.integer()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cas.integer() \u51fd\u6570\u662f\u57fa\u7840\u7684 R \u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6574\u6570\u578b\u3002

\u4ee5\u4e0b\u662f as.integer() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6240\u5c5e\u7684\u5305\uff1a \u65e0\u9700\u5bfc\u5165\u7279\u5b9a\u5305\uff0c\u662f R \u8bed\u8a00\u7684\u57fa\u7840\u51fd\u6570\u3002

\u529f\u80fd\uff1a \u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6574\u6570\u578b\u3002

\u5b9a\u4e49\uff1a

as.integer(x)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u8981\u8f6c\u6362\u4e3a\u6574\u6570\u578b\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u5411\u91cf\u3001\u5217\u8868\u3001\u6570\u636e\u6846\u7b49\u3002

\u8fd4\u56de\u503c\uff1a \u8fd4\u56de\u4e00\u4e2a\u6574\u6570\u578b\u7684\u5bf9\u8c61\u3002

\u4e3e\u4f8b\uff1a

# \u4f7f\u7528 as.integer() \u5c06\u6570\u503c\u5411\u91cf\u8f6c\u6362\u4e3a\u6574\u6570\u578b\nnum_vector <- c(1.5, 2.8, 3.2)\nint_vector <- as.integer(num_vector)\n\n# \u6253\u5370\u7ed3\u679c\nprint(int_vector)\n

\u8f93\u51fa\uff1a

[1] 1 2 3\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cas.integer(num_vector) \u5c06\u6570\u503c\u5411\u91cf num_vector \u8f6c\u6362\u4e3a\u6574\u6570\u578b\u5411\u91cf int_vector\u3002\u5c0f\u6570\u90e8\u5206\u88ab\u622a\u65ad\uff0c\u5f97\u5230\u6574\u6570\u578b\u7684\u7ed3\u679c\u3002

"},{"location":"R/base-content/as.logical%28%29/","title":"As.logical()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u903b\u8f91\u578b\uff08logical\uff09\u6570\u636e\u7c7b\u578b\u3002 \u4ee5\u4e0b\u662f as.logical() \u51fd\u6570\u7684\u8be6\u7ec6\u8bf4\u660e\uff1a

as.logical(x)\n
- x\uff1a\u8981\u8f6c\u6362\u7684\u5bf9\u8c61\u3002

as.logical() \u51fd\u6570\u5c06\u7ed9\u5b9a\u7684\u5bf9\u8c61 x \u8f6c\u6362\u4e3a\u903b\u8f91\u578b\u6570\u636e\u7c7b\u578b\u3002\u5982\u679c\u5bf9\u8c61\u53ef\u4ee5\u88ab\u89e3\u91ca\u4e3a\u903b\u8f91\u503c\uff0c\u5219\u8fd4\u56de\u76f8\u5e94\u7684\u903b\u8f91\u578b\u503c\uff1b\u5426\u5219\uff0c\u8fd4\u56de\u4e00\u4e2a\u7f3a\u5931\u503c NA\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e9b\u793a\u4f8b\uff1a

x <- c(TRUE, FALSE, 1, 0, \"TRUE\", \"FALSE\", \"T\", \"F\", \"yes\", \"no\")\ny <- as.logical(x)\n\nprint(y)\n
\u8f93\u51fa\uff1a
[1]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5305\u542b\u4e0d\u540c\u7c7b\u578b\u7684\u5143\u7d20\u7684\u5411\u91cf x\uff0c\u5305\u62ec\u903b\u8f91\u503c\u3001\u6570\u503c\u3001\u5b57\u7b26\u578b\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 as.logical() \u51fd\u6570\u5c06 x \u8f6c\u6362\u4e3a\u903b\u8f91\u578b\u3002\u51fd\u6570\u5c06\u9010\u4e2a\u5143\u7d20\u5730\u89e3\u91ca\u4e3a\u903b\u8f91\u503c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u578b\u5411\u91cf y\u3002

\u5728 R \u4e2d\uff0c\u903b\u8f91\u578b\u6570\u636e\u7c7b\u578b\u4e3b\u8981\u7528\u4e8e\u8868\u793a\u903b\u8f91\u503c\uff08TRUE \u6216 FALSE\uff09\u3002as.logical() \u51fd\u6570\u53ef\u7528\u4e8e\u5c06\u5176\u4ed6\u7c7b\u578b\u7684\u5bf9\u8c61\u8f6c\u6362\u4e3a\u903b\u8f91\u578b\uff0c\u4ee5\u4fbf\u8fdb\u884c\u903b\u8f91\u8fd0\u7b97\u548c\u6761\u4ef6\u5224\u65ad\u7b49\u64cd\u4f5c\u3002

"},{"location":"R/base-content/as.numeric%28%29/","title":"As.numeric()","text":"

\u51fd\u6570\u662fR\u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6570\u503c\u578b\uff08numeric\uff09\u3002\u6570\u503c\u578b\u6570\u636e\u662f\u6307\u5e26\u6709\u5c0f\u6570\u90e8\u5206\u7684\u6570\u503c\uff0c\u5b9e\u6570\u3002

\u6570\u503c\u578b\u6570\u636e\u548c\u6d6e\u70b9\u578b\u6570\u636e\u662f\u6307\u540c\u4e00\u79cd\u7c7b\u578b\uff0c\u5373\u5e26\u6709\u5c0f\u6570\u90e8\u5206\u7684\u6570\u503c\uff0c\u5728 R \u4e2d\u6ca1\u6709\u5b9e\u8d28\u4e0a\u7684\u533a\u522b\uff0c\u8fd9\u4e24\u4e2a\u672f\u8bed\u53ef\u4ee5\u4e92\u6362\u4f7f\u7528\u3002

\u51fd\u6570\u4ecb\u7ecd\uff1a as.numeric()\u51fd\u6570\u7528\u4e8e\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6570\u503c\u578b\u3002\u5982\u679c\u5bf9\u8c61\u53ef\u4ee5\u8f6c\u6362\u4e3a\u6570\u503c\u578b\uff0c\u5219\u8fd4\u56de\u8f6c\u6362\u540e\u7684\u6570\u503c\u578b\u5bf9\u8c61\uff1b\u5982\u679c\u65e0\u6cd5\u8f6c\u6362\uff0c\u5219\u8fd4\u56deNA\u3002

\u8be5\u51fd\u6570\u5e38\u7528\u4e8e\u5c06\u5b57\u7b26\u578b\u3001\u56e0\u5b50\u578b\u7b49\u975e\u6570\u503c\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u6570\u503c\u578b\u3002

\u51fd\u6570\u8bed\u6cd5\uff1a

as.numeric(x)\n
\u53c2\u6570x\u4ee3\u8868\u8981\u8f6c\u6362\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u4efb\u4f55R\u8bed\u8a00\u4e2d\u7684\u6570\u636e\u7c7b\u578b\uff0c\u5305\u62ec\u5411\u91cf\u3001\u77e9\u9635\u3001\u6570\u636e\u6846\u7b49\u3002

\u51fd\u6570\u793a\u4f8b\uff1a

\u793a\u4f8b1\uff1a\u5c06\u5b57\u7b26\u578b\u5411\u91cf\u8f6c\u6362\u4e3a\u6570\u503c\u578b

# \u521b\u5efa\u4e00\u4e2a\u5b57\u7b26\u578b\u5411\u91cf\nx <- c(\"1\", \"2\", \"3\")\n\n# \u8f6c\u6362\u4e3a\u6570\u503c\u578b\u5411\u91cf\ny <- as.numeric(x)\ny\n# \u8f93\u51fa: 1 2 3\n\n# \u68c0\u67e5\u8f6c\u6362\u540e\u7684\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b\nis.numeric(y)\n# \u8f93\u51fa: TRUE\n

\u793a\u4f8b2\uff1a\u5c06\u56e0\u5b50\u578b\u5411\u91cf\u8f6c\u6362\u4e3a\u6570\u503c\u578b

# \u521b\u5efa\u4e00\u4e2a\u56e0\u5b50\u578b\u5411\u91cf\nx <- factor(c(\"1\", \"2\", \"3\"))\n\n# \u8f6c\u6362\u4e3a\u6570\u503c\u578b\u5411\u91cf\ny <- as.numeric(x)\ny\n# \u8f93\u51fa: 1 2 3\n\n# \u68c0\u67e5\u8f6c\u6362\u540e\u7684\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b\nis.numeric(y)\n# \u8f93\u51fa: TRUE\n

\u793a\u4f8b3\uff1a\u5c06\u903b\u8f91\u578b\u5411\u91cf\u8f6c\u6362\u4e3a\u6570\u503c\u578b

# \u521b\u5efa\u4e00\u4e2a\u903b\u8f91\u578b\u5411\u91cf\nx <- c(TRUE, FALSE, TRUE)\n\n# \u8f6c\u6362\u4e3a\u6570\u503c\u578b\u5411\u91cf\ny <- as.numeric(x)\ny\n# \u8f93\u51fa: 1 0 1\n\n# \u68c0\u67e5\u8f6c\u6362\u540e\u7684\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b\nis.numeric(y)\n# \u8f93\u51fa: TRUE\n

\u901a\u8fc7\u8c03\u7528as.numeric()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u975e\u6570\u503c\u578b\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6570\u503c\u578b\uff0c\u4ee5\u4fbf\u8fdb\u884c\u6570\u503c\u578b\u6570\u636e\u7684\u5206\u6790\u548c\u8ba1\u7b97\u3002\u6ce8\u610f\uff0c\u5728\u8f6c\u6362\u65f6\uff0c\u8f93\u5165\u5bf9\u8c61\u7684\u6bcf\u4e2a\u5143\u7d20\u5728\u8f6c\u6362\u8fc7\u7a0b\u4e2d\u8981\u80fd\u591f\u88ab\u89e3\u6790\u4e3a\u6570\u503c\uff0c\u5426\u5219\u4f1a\u88ab\u8f6c\u6362\u4e3aNA\u3002

"},{"location":"R/base-content/as.vector%28%29/","title":"As.vector()","text":"

\u51fd\u6570\u7528\u4e8e\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5411\u91cf\u3002 \u4ee5\u4e0b\u662f as.vector() \u51fd\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1aas.vector() \u51fd\u6570\u53ef\u4ee5\u7528\u4e8e\u5c06\u77e9\u9635\u3001\u6570\u7ec4\u6216\u5217\u8868\u7b49\u5bf9\u8c61\u8f6c\u6362\u4e3a\u4e00\u4e2a\u7b80\u5355\u7684\u5411\u91cf\u3002\u5982\u679c\u5bf9\u8c61\u5df2\u7ecf\u662f\u5411\u91cf\uff0c\u5219\u4e0d\u4f1a\u8fdb\u884c\u4efb\u4f55\u8f6c\u6362\u3002

as.vector(x)\n
- x\uff1a\u8981\u8f6c\u6362\u4e3a\u5411\u91cf\u7684\u5bf9\u8c61\u3002

  1. \u5c06\u77e9\u9635\u8f6c\u6362\u4e3a\u5411\u91cf\uff1a
    mat <- matrix(1:6, nrow = 2, ncol = 3)\nresult <- as.vector(mat)\nprint(result)\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `as.vector()` \u51fd\u6570\u5c06\u77e9\u9635\u8f6c\u6362\u4e3a\u5411\u91cf\u3002\n\n# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a\n\n\\[1\\] 1 2 3 4 5 6\n
  2. \u5c06\u6570\u7ec4\u8f6c\u6362\u4e3a\u5411\u91cf\uff1a ````R arr <- array(1:24, dim = c(2, 3, 4)) result <- as.vector(arr) print(result)

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u4e09\u7ef4\u6570\u7ec4 arr\uff0c\u7136\u540e\u4f7f\u7528 as.vector() \u51fd\u6570\u5c06\u6570\u7ec4\u8f6c\u6362\u4e3a\u5411\u91cf\u3002 # \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 `` 3. \u5c06\u5217\u8868\u8f6c\u6362\u4e3a\u5411\u91cf\uff1aR lst <- list(a = 1, b = 2, c = 3) result <- as.vector(lst) print(result)

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5217\u8868 lst\uff0c\u7136\u540e\u4f7f\u7528 as.vector() \u51fd\u6570\u5c06\u5217\u8868\u8f6c\u6362\u4e3a\u5411\u91cf\u3002

# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 1 2 3 ```

as.vector() \u51fd\u6570\u5728\u9700\u8981\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u7b80\u5355\u7684\u5411\u91cf\u65f6\u975e\u5e38\u6709\u7528\u3002\u8bf7\u6ce8\u610f\uff0c\u8f6c\u6362\u540e\u7684\u5411\u91cf\u5c06\u662f\u4e00\u7ef4\u7684\uff0c\u65e0\u8bba\u539f\u59cb\u5bf9\u8c61\u662f\u591a\u7ef4\u7684\u8fd8\u662f\u5217\u8868\u5bf9\u8c61\u3002

"},{"location":"R/base-content/barplot%28%29/","title":"Barplot()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cbarplot()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u6761\u5f62\u56fe\uff08bar plot\uff09\uff0c\u7528\u4e8e\u53ef\u89c6\u5316\u79bb\u6563\u53d8\u91cf\u7684\u9891\u6570\u3001\u8ba1\u6570\u6216\u5176\u4ed6\u6c47\u603b\u6570\u636e\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

barplot(height, width, space, names.arg, main, xlab, ylab, xlim, ylim, col, border, ...)\n

\u53c2\u6570\uff1a \u4ee5\u4e0b\u662fbarplot()\u51fd\u6570\u4e2d\u5e38\u7528\u7684\u53c2\u6570\uff1a

  • height\uff1a\u4e00\u4e2a\u5411\u91cf\u6216\u77e9\u9635\uff0c\u8868\u793a\u6761\u5f62\u7684\u9ad8\u5ea6\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6761\u5f62\u7684\u9ad8\u5ea6\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u77e9\u9635\uff0c\u6bcf\u4e00\u884c\u8868\u793a\u4e00\u4e2a\u6761\u5f62\u7684\u9ad8\u5ea6\u3002

  • width\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u6761\u5f62\u7684\u5bbd\u5ea6\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u6570\u503c\uff0c\u8868\u793a\u6240\u6709\u6761\u5f62\u7684\u5bbd\u5ea6\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6761\u5f62\u7684\u5bbd\u5ea6\u3002

  • space\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u6761\u5f62\u4e4b\u95f4\u7684\u95f4\u8ddd\u3002

  • names.arg\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u6761\u5f62\u7684\u540d\u79f0\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u957f\u5ea6\u4e0e\u6761\u5f62\u6570\u91cf\u76f8\u7b49\u3002

  • main\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u6761\u5f62\u56fe\u7684\u6807\u9898\u3002

  • xlab\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793ax\u8f74\u7684\u6807\u7b7e\u3002

  • ylab\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793ay\u8f74\u7684\u6807\u7b7e\u3002

  • xlim\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793ax\u8f74\u7684\u8303\u56f4\u3002

  • ylim\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793ay\u8f74\u7684\u8303\u56f4\u3002

  • col\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u6761\u5f62\u7684\u586b\u5145\u989c\u8272\u3002

  • border\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u6761\u5f62\u7684\u8fb9\u6846\u989c\u8272\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7ed8\u56fe\u51fd\u6570\u3002

\u8fd4\u56de\u503c\uff1a barplot()\u51fd\u6570\u4f1a\u521b\u5efa\u4e00\u4e2a\u6761\u5f62\u56fe\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6761\u5f62\u7684\u4e2d\u5fc3\u7684x\u5750\u6807\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528barplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u6761\u5f62\u56fe\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\u8868\u793a\u6761\u5f62\u7684\u9ad8\u5ea6\nheight <- c(5, 8, 3, 2)\n\n# \u521b\u5efa\u6761\u5f62\u56fe\nbarplot(height, \n        names.arg = c(\"A\", \"B\", \"C\", \"D\"),\n        main = \"Bar Plot Example\",\n        xlab = \"Categories\",\n        ylab = \"Counts\",\n        col = \"blue\",\n        border = \"black\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5411\u91cfheight\uff0c\u8868\u793a\u6761\u5f62\u7684\u9ad8\u5ea6\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528barplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u6761\u5f62\u56fe\u3002\u901a\u8fc7\u4f20\u9012height\u4f5c\u4e3a\u6761\u5f62\u7684\u9ad8\u5ea6\uff0cnames.arg\u4f5c\u4e3a\u6761\u5f62\u7684\u540d\u79f0\uff0cmain\u4f5c\u4e3a\u56fe\u7684\u6807\u9898\uff0cxlab\u4f5c\u4e3ax\u8f74\u7684\u6807\u7b7e\uff0cylab\u4f5c\u4e3ay\u8f74\u7684\u6807\u7b7e\uff0ccol\u4f5c\u4e3a\u6761\u5f62\u7684\u586b\u5145\u989c\u8272\uff0cborder\u4f5c\u4e3a\u6761\u5f62\u7684\u8fb9\u6846\u989c\u8272\u3002

\u6700\u540e\uff0cbarplot()\u51fd\u6570\u4f1a\u7ed8\u5236\u6761\u5f62\u56fe\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6761\u5f62\u7684\u4e2d\u5fc3\u7684x\u5750\u6807\u3002

\u8bf7\u6ce8\u610f\uff0c\u4e0a\u8ff0\u793a\u4f8b\u4ec5\u6f14\u793a\u4e86\u57fa\u672c\u7528\u6cd5\uff0c\u66f4\u591a\u8be6\u7ec6\u7684\u53c2\u6570\u548c\u9009\u9879\u53ef\u4ee5\u53c2\u8003R\u8bed\u8a00\u7684\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528?barplot\u547d\u4ee4\u67e5\u770b\u51fd\u6570\u7684\u5e2e\u52a9\u6587\u6863\u3002

"},{"location":"R/base-content/bartlett.test%28%29/","title":"Bartlett.test()","text":""},{"location":"R/base-content/bartlett.test%28%29/#bartletttest","title":"bartlett.test\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a bartlett.test()\u51fd\u6570\u7528\u4e8e\u6267\u884cBartlett's test\uff08\u5df4\u7279\u5229\u7279\u68c0\u9a8c\uff09\uff0c\u68c0\u9a8c\u591a\u4e2a\u7ec4\u7684\u65b9\u5dee\u662f\u5426\u76f8\u7b49\u3002\u8fd9\u4e2a\u68c0\u9a8c\u901a\u5e38\u7528\u4e8e\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u7b49\u7edf\u8ba1\u65b9\u6cd5\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u65b9\u6cd5\u5728\u5047\u8bbe\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u60c5\u51b5\u4e0b\u66f4\u4e3a\u6709\u6548\u3002

\u6240\u5c5e\u5305\uff1a bartlett.test\u51fd\u6570\u5c5e\u4e8estats\u5305\uff0c\u8fd9\u662fR\u8bed\u8a00\u7684\u57fa\u7840\u7edf\u8ba1\u5305\uff0c\u901a\u5e38\u9ed8\u8ba4\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

bartlett.test(formula, data, subset, na.action)\n

"},{"location":"R/base-content/bartlett.test%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • formula\uff1a \u4e00\u4e2a\u516c\u5f0f\uff0c\u901a\u5e38\u8868\u793a\u4e3aresponse ~ group\uff0c\u5176\u4e2dresponse\u662f\u6570\u503c\u578b\u53d8\u91cf\uff0c\u800cgroup\u662f\u5206\u7ec4\u53d8\u91cf\u3002

  • data\uff1a \u5305\u542b\u76f8\u5173\u53d8\u91cf\u7684\u6570\u636e\u6846\u3002

  • subset\uff1a \u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u4e00\u4e2a\u5b50\u96c6\u8fdb\u884c\u5206\u6790\u3002

  • na.action\uff1a \u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5904\u7406\u7f3a\u5931\u503c\u3002

"},{"location":"R/base-content/bartlett.test%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u521b\u5efa\u4e09\u4e2a\u7ec4\u7684\u6570\u636e\uff08\u793a\u4f8b\u6570\u636e\uff09\ngroup1 <- c(23, 25, 28, 30, 32)\ngroup2 <- c(18, 20, 24, 28, 30)\ngroup3 <- c(22, 24, 26, 28, 30)\n\n# \u521b\u5efa\u6570\u636e\u6846\ndata <- data.frame(\n  Group = rep(c(\"Group1\", \"Group2\", \"Group3\"), each = 5),\n  Value = c(group1, group2, group3)\n)\n\n# \u6267\u884cBartlett's test\nresult <- bartlett.test(Value ~ Group, data = data)\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n
"},{"location":"R/base-content/bartlett.test%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u793a\u4f8b\u4e2d\u7684\u8f93\u51fa\u7ed3\u679c\u5c06\u5305\u542bBartlett's test\u7684\u7edf\u8ba1\u91cf\uff08Bartlett's K-squared\uff09\u3001\u81ea\u7531\u5ea6\uff08df\uff09\u548cp\u503c\uff08p-value\uff09\u3002\u5177\u4f53\u8f93\u51fa\u4fe1\u606f\u5c06\u7c7b\u4f3c\u4e8e\uff1a

Bartlett test of homogeneity of variances\n           Df = 2 \n           Chisquare = 0.55071 \n           Pr(>Chisq) = 0.7595\n

\u8fd9\u4e2a\u8f93\u51fa\u63d0\u4f9b\u4e86Bartlett's test\u7684\u7edf\u8ba1\u91cf\u3001\u81ea\u7531\u5ea6\u4ee5\u53cap\u503c\u3002\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u4f60\u53ef\u4ee5\u67e5\u770bp\u503c\u6765\u5224\u65ad\u662f\u5426\u62d2\u7edd\u4e86\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u5047\u8bbe\u3002

"},{"location":"R/base-content/binom.test%28%29/","title":"Binom.test()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cbinom.test() \u51fd\u6570\u662f\u57fa\u7840\u7684\u7edf\u8ba1\u68c0\u9a8c\u51fd\u6570\uff0c\u7528\u4e8e\u8fdb\u884c\u4e8c\u9879\u5206\u5e03\u7684\u68c0\u9a8c\u3002

\u4ee5\u4e0b\u662f binom.test() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6240\u5c5e\u7684\u5305\uff1a \u65e0\u9700\u5bfc\u5165\u7279\u5b9a\u5305\uff0c\u662f R \u8bed\u8a00\u7684\u57fa\u7840\u51fd\u6570\u3002

\u529f\u80fd\uff1a \u6267\u884c\u4e8c\u9879\u5206\u5e03\u7684\u68c0\u9a8c\uff0c\u901a\u5e38\u7528\u4e8e\u6bd4\u8f83\u4e24\u4e2a\u4e8c\u9879\u5206\u5e03\u7684\u53c2\u6570\u6216\u5bf9\u5355\u4e2a\u4e8c\u9879\u5206\u5e03\u7684\u53c2\u6570\u8fdb\u884c\u68c0\u9a8c\u3002

\u5b9a\u4e49\uff1a

binom.test(x, n = NULL, p = 0.5, alternative = c(\"two.sided\", \"less\", \"greater\"), conf.level = 0.95)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u6210\u529f\u7684\u6b21\u6570\uff0c\u53ef\u4ee5\u662f\u5411\u91cf\u6216\u4e00\u4e2a\u8868\u793a\u8868\u683c\u7684\u77e9\u9635\u3002

  • n\uff1a\u8bd5\u9a8c\u7684\u603b\u6b21\u6570\uff0c\u5982\u679c x \u662f\u5411\u91cf\uff0c\u5219 n \u5fc5\u987b\u662f\u76f8\u540c\u957f\u5ea6\u7684\u5411\u91cf\u3002\u5982\u679c x \u662f\u8868\u793a\u8868\u683c\u7684\u77e9\u9635\uff0c\u5219 n \u662f\u6bcf\u4e2a\u5355\u5143\u683c\u7684\u884c\u6570\u3002

  • p\uff1a\u8981\u68c0\u9a8c\u7684\u6bd4\u4f8b\uff08\u6210\u529f\u7684\u6982\u7387\uff09\uff0c\u9ed8\u8ba4\u4e3a 0.5\u3002

  • alternative\uff1a\u66ff\u4ee3\u5047\u8bbe\u7684\u7c7b\u578b\uff0c\u53ef\u9009\u503c\u4e3a \"two.sided\"\uff08\u53cc\u4fa7\u68c0\u9a8c\uff0c\u9ed8\u8ba4\uff09\u3001\"less\"\uff08\u5c0f\u4e8e\u68c0\u9a8c\uff09\u3001\"greater\"\uff08\u5927\u4e8e\u68c0\u9a8c\uff09\u3002

  • conf.level\uff1a\u7f6e\u4fe1\u6c34\u5e73\uff0c\u9ed8\u8ba4\u4e3a 0.95\uff0c\u8868\u793a 95% \u7f6e\u4fe1\u6c34\u5e73\u3002

\u8fd4\u56de\u503c\uff1a \u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u4e8c\u9879\u68c0\u9a8c\u7684\u7ed3\u679c\u7684\u5217\u8868\u3002

\u4e3e\u4f8b\uff1a

# \u4f7f\u7528 binom.test() \u8fdb\u884c\u4e8c\u9879\u5206\u5e03\u68c0\u9a8c\nsuccesses <- 15\ntrials <- 20\n\nbinom_test_result <- binom.test(successes, n = trials, p = 0.5, alternative = \"two.sided\")\n\n# \u6253\u5370\u7ed3\u679c\nprint(binom_test_result)\n

\u8f93\u51fa\uff1a

    Exact binomial test\n\ndata:  successes and trials\nnumber of successes = 15, number of trials = 20, p-value = 0.018\nalternative hypothesis: true probability of success is not equal to 0.5\n95 percent confidence interval:\n 0.5262944 0.9045654\nsample estimates:\nprobability of success \n                   0.75 \n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cbinom.test() \u51fd\u6570\u7528\u4e8e\u6267\u884c\u4e8c\u9879\u5206\u5e03\u7684\u68c0\u9a8c\u3002\u6210\u529f\u7684\u6b21\u6570\u4e3a 15\uff0c\u603b\u8bd5\u9a8c\u6b21\u6570\u4e3a 20\uff0c\u68c0\u9a8c\u7684\u66ff\u4ee3\u5047\u8bbe\u662f \"two.sided\"\uff08\u53cc\u4fa7\u68c0\u9a8c\uff09\u3002\u8f93\u51fa\u5305\u542b\u4e86 p \u503c\u3001\u66ff\u4ee3\u5047\u8bbe\u3001\u7f6e\u4fe1\u533a\u95f4\u7b49\u4fe1\u606f\u3002

"},{"location":"R/base-content/c%28%29/","title":"C()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u5411\u91cf\uff08Vector\uff09\u3002 c() \u51fd\u6570\u5c06\u7ed9\u5b9a\u7684\u5bf9\u8c61\u7ec4\u5408\u6210\u4e00\u4e2a\u5411\u91cf\uff0c\u5e76\u8fd4\u56de\u8fd9\u4e2a\u5411\u91cf\u3002

c(...)\n
- ...\uff1a\u8981\u7ec4\u5408\u6210\u5411\u91cf\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\u5143\u7d20\u3001\u5411\u91cf\u6216\u5176\u4ed6\u5bf9\u8c61\u3002 1. \u521b\u5efa\u6570\u503c\u5411\u91cf\uff1a
nums <- c(1, 2, 3, 4, 5)\nprint(nums)  # \u8f93\u51fa\uff1a1 2 3 4 5\n```\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `c()` \u51fd\u6570\u5c06\u4e00\u7cfb\u5217\u6570\u503c\u5bf9\u8c61\u7ec4\u5408\u6210\u4e00\u4e2a\u6570\u503c\u5411\u91cf\u3002\n
2. \u521b\u5efa\u5b57\u7b26\u578b\u5411\u91cf\uff1a
names <- c(\"Alice\", \"Bob\", \"Charlie\")\nprint(names)  # \u8f93\u51fa\uff1a\"Alice\" \"Bob\" \"Charlie\"\n```\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `c()` \u51fd\u6570\u5c06\u4e00\u7cfb\u5217\u5b57\u7b26\u578b\u5bf9\u8c61\u7ec4\u5408\u6210\u4e00\u4e2a\u5b57\u7b26\u578b\u5411\u91cf\u3002\n
3. \u7ec4\u5408\u591a\u4e2a\u5411\u91cf\uff1a
nums1 <- c(1, 2, 3)\nnums2 <- c(4, 5, 6)\ncombined <- c(nums1, nums2)\nprint(combined)  # \u8f93\u51fa\uff1a1 2 3 4 5 6\n```\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `c()` \u51fd\u6570\u5c06\u4e24\u4e2a\u6570\u503c\u5411\u91cf `nums1` \u548c `nums2` \u7ec4\u5408\u6210\u4e00\u4e2a\u65b0\u7684\u6570\u503c\u5411\u91cf\u3002\n
c() \u51fd\u6570\u5728\u521b\u5efa\u5411\u91cf\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u901a\u8fc7\u5c06\u591a\u4e2a\u5bf9\u8c61\u7ec4\u5408\u5728\u4e00\u8d77\u6765\u6784\u5efa\u4e0d\u540c\u7c7b\u578b\u7684\u5411\u91cf\u3002\u53ef\u4ee5\u4f7f\u7528 c() \u51fd\u6570\u6765\u521b\u5efa\u6570\u503c\u5411\u91cf\u3001\u5b57\u7b26\u578b\u5411\u91cf\u3001\u903b\u8f91\u578b\u5411\u91cf\u7b49\u3002\u5728\u7ec4\u5408\u5bf9\u8c61\u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u63d0\u4f9b\u5143\u7d20\u503c\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5df2\u7ecf\u5b58\u5728\u7684\u5411\u91cf\u6216\u5176\u4ed6\u5bf9\u8c61\u3002

"},{"location":"R/base-content/cat%28%29/","title":"Cat()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0ccat()\u51fd\u6570\u662f\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u6587\u672c\u8f93\u51fa\u5230\u63a7\u5236\u53f0\u6216\u6587\u4ef6\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

cat(..., file = \"\", sep = \" \", fill = FALSE, labels = NULL, append = FALSE)\n
\u53c2\u6570\uff1a - ...\uff1a\u8981\u8f93\u51fa\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u5bf9\u8c61\u3002 - file\uff1a\u8981\u5199\u5165\u7684\u6587\u4ef6\u540d\u3002\u5982\u679c\u672a\u6307\u5b9a\u6587\u4ef6\u540d\uff0c\u5219\u5c06\u6587\u672c\u8f93\u51fa\u5230\u63a7\u5236\u53f0\u3002\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32\u3002 - sep\uff1a\u7528\u4e8e\u5206\u9694\u591a\u4e2a\u5bf9\u8c61\u7684\u5b57\u7b26\u3002\u9ed8\u8ba4\u4e3a\u5355\u4e2a\u7a7a\u683c\u3002 - fill\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5728\u8f93\u51fa\u65f6\u586b\u5145\u884c\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u586b\u5145\u884c\u3002 - labels\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u5728\u8f93\u51fa\u4e2d\u6807\u8bb0\u6bcf\u4e2a\u5bf9\u8c61\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u5373\u4e0d\u4f7f\u7528\u6807\u7b7e\u3002 - append\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5c06\u8f93\u51fa\u9644\u52a0\u5230\u73b0\u6709\u6587\u4ef6\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u8986\u76d6\u73b0\u6709\u6587\u4ef6\u3002

  1. \u8f93\u51fa\u6587\u672c\u5230\u63a7\u5236\u53f0\uff1a
# \u8f93\u51fa\u6587\u672c\u5230\u63a7\u5236\u53f0\ncat(\"Hello, world!\")\ncat(\"The answer is\", 42)\n

\u8f93\u51fa\uff1a

Hello, world!\nThe answer is 42\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528cat()\u51fd\u6570\u5c06\u6587\u672c\u8f93\u51fa\u5230\u63a7\u5236\u53f0\u3002\u4f20\u9012\u7ed9cat()\u51fd\u6570\u7684\u53c2\u6570\u662f\u8981\u8f93\u51fa\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u6216\u5176\u4ed6\u7c7b\u578b\u7684\u5bf9\u8c61\u3002\u591a\u4e2a\u5bf9\u8c61\u4e4b\u95f4\u4f7f\u7528\u9ed8\u8ba4\u7684\u7a7a\u683c\u5206\u9694\u3002

  1. \u8f93\u51fa\u6587\u672c\u5230\u6587\u4ef6\uff1a
# \u8f93\u51fa\u6587\u672c\u5230\u6587\u4ef6\ncat(\"This is line 1.\", \"This is line 2.\", file = \"output.txt\")\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528cat()\u51fd\u6570\u5c06\u6587\u672c\u8f93\u51fa\u5230\u540d\u4e3aoutput.txt\u7684\u6587\u4ef6\u4e2d\u3002\u901a\u8fc7\u5c06\u6587\u4ef6\u540d\u4f5c\u4e3afile\u53c2\u6570\u7684\u503c\u4f20\u9012\u7ed9cat()\u51fd\u6570\uff0c\u53ef\u4ee5\u5c06\u8f93\u51fa\u5b9a\u5411\u5230\u6307\u5b9a\u7684\u6587\u4ef6\u4e2d\u3002

\u8f93\u51fa\u7684\u6587\u672c\u5c06\u5199\u5165output.txt\u6587\u4ef6\u4e2d\uff0c\u6bcf\u884c\u4e00\u4e2a\u6587\u672c\u5bf9\u8c61\u3002

  1. \u4f7f\u7528\u6807\u7b7e\u548c\u5206\u9694\u7b26\uff1a
# \u4f7f\u7528\u6807\u7b7e\u548c\u5206\u9694\u7b26\ncat(\"Name:\", \"John Doe\", \"Age:\", 30, sep = \", \", labels = c(\"First\", \"Second\"))\n

\u8f93\u51fa\uff1a

First: Name, Second: John Doe, First: Age, Second: 30\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528sep\u53c2\u6570\u6307\u5b9a\u4e86\u9017\u53f7\u548c\u7a7a\u683c\u4f5c\u4e3a\u5bf9\u8c61\u4e4b\u95f4\u7684\u5206\u9694\u7b26\u3002\u4f7f\u7528labels\u53c2\u6570\u6307\u5b9a\u4e86\u6807\u7b7e\uff0c\u7528\u4e8e\u6807\u8bb0\u6bcf\u4e2a\u5bf9\u8c61\u7684\u524d\u540e\u90e8\u5206\u3002

\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u6bcf\u4e2a\u5bf9\u8c61\u7684\u524d\u9762\u90fd\u6709\u4e00\u4e2a\u6807\u7b7e\uff0c\u5206\u522b\u4e3a\"First\"\u548c\"Second\"\u3002

\u901a\u8fc7\u4f7f\u7528cat()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u5c06\u6587\u672c\u8f93\u51fa\u5230\u63a7\u5236\u53f0\u6216\u6587\u4ef6\u4e2d\uff0c\u5e76\u53ef\u4ee5\u81ea\u5b9a\u4e49\u5206\u9694\u7b26\u3001\u586b\u5145\u884c\u3001\u6807\u7b7e\u7b49\u3002

"},{"location":"R/base-content/cat%28%29/#_1","title":"\u66f4\u7b80\u6d01\u7684\u8f93\u51fa\u5f62\u5f0f","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u591a\u79cd\u65b9\u5f0f\u8ba9\u8f93\u51fa\u66f4\u7b80\u6d01\u3002\u4e00\u79cd\u65b9\u6cd5\u662f\u5c06\u6240\u6709\u4fe1\u606f\u5408\u5e76\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u5b57\u7b26\u4e32\uff0c\u7136\u540e\u7528\u4e00\u6b21 cat \u51fd\u6570\u8c03\u7528\u8f93\u51fa\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 paste \u6216 sprintf \u51fd\u6570\u6765\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\u3002 \u4f7f\u7528 paste \u7684\u4f8b\u5b50\uff1a

cat(paste(\"\u4f18\u5316\u7684\u53c2\u6570\uff1a\", best$par, \"\\n\",\n          \"\u76ee\u6807\u51fd\u6570\uff1a\", best$value, \"\\n\",\n          \"\u662f\u5426\u6536\u655b\uff1a\", best$convergence, \"\\n\"))\n

\u4f7f\u7528 sprintf \u7684\u4f8b\u5b50\uff0c\u5b83\u53ef\u4ee5\u8ba9\u683c\u5f0f\u5316\u66f4\u52a0\u7075\u6d3b\uff1a

cat(sprintf(\"\u4f18\u5316\u7684\u53c2\u6570\uff1a%s\\n\u76ee\u6807\u51fd\u6570\uff1a%f\\n\u662f\u5426\u6536\u655b\uff1a%d\\n\",\n            best$par, best$value, best$convergence))\n

sprintf \u51fd\u6570\u5141\u8bb8\u4f60\u6307\u5b9a\u6570\u636e\u7c7b\u578b\u5360\u4f4d\u7b26\uff08\u5982 %s \u4ee3\u8868\u5b57\u7b26\u4e32\uff0c%f \u4ee3\u8868\u6d6e\u70b9\u6570\uff0c%d \u4ee3\u8868\u6574\u6570\uff09\uff0c\u8fd9\u6837\u4f60\u53ef\u4ee5\u63a7\u5236\u6570\u5b57\u7684\u683c\u5f0f\uff0c\u4f8b\u5982\u5c0f\u6570\u70b9\u540e\u7684\u4f4d\u6570\u3002 \u8fd9\u4e9b\u65b9\u6cd5\u8ba9\u4ee3\u7801\u66f4\u52a0\u7b80\u6d01\uff0c\u5e76\u4e14\u53ea\u8c03\u7528\u4e00\u6b21 cat \u51fd\u6570\uff0c\u4f7f\u5f97\u8f93\u51fa\u7684\u683c\u5f0f\u66f4\u52a0\u7edf\u4e00\u3002

"},{"location":"R/base-content/chisq.test%28%29/","title":"Chisq.test()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cchisq.test() \u51fd\u6570\u7528\u4e8e\u6267\u884c\u5361\u65b9\u68c0\u9a8c\uff08Chi-squared test\uff09\u3002\u5361\u65b9\u68c0\u9a8c\u662f\u4e00\u79cd\u7528\u4e8e\u8bc4\u4f30\u89c2\u5bdf\u503c\u4e0e\u671f\u671b\u503c\u4e4b\u95f4\u7684\u5dee\u5f02\u7684\u7edf\u8ba1\u65b9\u6cd5\uff0c\u5e38\u7528\u4e8e\u5206\u6790\u5206\u7c7b\u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u8054\u6027\u3002\u4e0b\u9762\u662f\u5bf9 chisq.test() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

chisq.test(x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), ...)\n

\u53c2\u6570\u8bf4\u660e\uff1a

  • x\uff1a\u4e00\u4e2a\u6570\u636e\u5411\u91cf\u6216\u8005\u4e00\u4e2a\u6570\u636e\u77e9\u9635\u3002\u5982\u679c\u662f\u5411\u91cf\uff0c\u5219\u8868\u793a\u5355\u4e2a\u5206\u7c7b\u53d8\u91cf\u7684\u89c2\u5bdf\u503c\uff1b\u5982\u679c\u662f\u77e9\u9635\uff0c\u5219\u8868\u793a\u591a\u4e2a\u5206\u7c7b\u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u8054\u8868\u3002

c=(38, 24, 18, 18, 2)\uff1b\u671f\u671b\u503c\u7cfb\u7edf\u81ea\u52a8\u6c47\u603b\u89c2\u6d4b\u503c\uff0c\u4e58\u4ee5\u671f\u671b\u503c\u7684\u6982\u7387\u5206\u5e03\u95f4\u63a5\u6c42\u5f97

  • y\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u5f53 x \u662f\u4e00\u4e2a\u6570\u636e\u77e9\u9635\u65f6\uff0cy \u662f\u4e00\u4e2a\u6570\u636e\u5411\u91cf\uff0c\u7528\u4e8e\u8868\u793a\u5206\u7c7b\u53d8\u91cf\u7684\u914d\u5bf9\u4fe1\u606f\u3002

  • correct\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u5e94\u7528\u8fde\u7eed\u6027\u6821\u6b63\uff08continuity correction\uff09\u3002\u9ed8\u8ba4\u4e3a TRUE\uff0c\u8868\u793a\u5e94\u7528\u8fde\u7eed\u6027\u6821\u6b63\u3002

  • p\uff1a\u4e00\u4e2a\u6982\u7387\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u7406\u8bba\u671f\u671b\u503c\u7684\u6982\u7387\u5206\u5e03\uff0c\u5373\u671f\u671b\u9891\u6b21\u7684\u6982\u7387\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6bcf\u4e2a\u5206\u7c7b\u7684\u6982\u7387\u76f8\u7b49

c=(0.40, 0.20, 0.20, 0.15, 0.05)

  • ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9 chisq.test() \u51fd\u6570\u7684\u9009\u9879\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u5361\u65b9\u68c0\u9a8c\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u5361\u65b9\u7edf\u8ba1\u91cf\u3001\u81ea\u7531\u5ea6\u3001p \u503c\u7b49\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528 chisq.test() \u51fd\u6570\u8fdb\u884c\u5361\u65b9\u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5206\u7c7b\u53d8\u91cf\u7684\u89c2\u5bdf\u503c\u5411\u91cf\nx <- c(10, 15, 5, 8)\n\n# \u4f7f\u7528 chisq.test() \u8fdb\u884c\u5361\u65b9\u68c0\u9a8c\nresult <- chisq.test(x)\n\n# \u6253\u5370\u5361\u65b9\u68c0\u9a8c\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5206\u7c7b\u53d8\u91cf\u7684\u89c2\u5bdf\u503c\u5411\u91cf x\uff0c\u8868\u793a\u4e0d\u540c\u7c7b\u522b\u7684\u9891\u6570\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 chisq.test() \u51fd\u6570\u5bf9\u89c2\u5bdf\u503c\u8fdb\u884c\u5361\u65b9\u68c0\u9a8c\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u5361\u65b9\u68c0\u9a8c\u7684\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0cchisq.test() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u5206\u6790\u591a\u4e2a\u5206\u7c7b\u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u8054\u6027\uff0c\u6b64\u65f6 x \u53c2\u6570\u5e94\u8be5\u662f\u4e00\u4e2a\u6570\u636e\u77e9\u9635\uff0c\u6bcf\u4e00\u5217\u4ee3\u8868\u4e00\u4e2a\u5206\u7c7b\u53d8\u91cf\u7684\u89c2\u5bdf\u503c\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u8981\u4f20\u9012\u4e0d\u540c\u7684\u53c2\u6570\u6765\u6267\u884c\u76f8\u5e94\u7684\u5361\u65b9\u68c0\u9a8c\uff0c\u5e76\u6839\u636e\u68c0\u9a8c\u7ed3\u679c\u8fdb\u884c\u6570\u636e\u5206\u6790\u548c\u89e3\u91ca\u3002

"},{"location":"R/base-content/chisq.test%28%29/#_1","title":"\u5361\u65b9\u7684\u62df\u5408\u4f18\u5ea6\u68c0\u9a8c","text":"

\u4e00\u4e2a\u7c7b\u522b\u53d8\u91cf\uff0c\u68c0\u9a8c\u6837\u672c\u80fd\u591a\u5927\u7a0b\u5ea6\u4ee3\u8868\u603b\u4f53\u3002

"},{"location":"R/base-content/chisq.test%28%29/#_2","title":"\u5361\u65b9\u7684\u72ec\u7acb\u6027\u68c0\u9a8c","text":"

\u4e24\u4e2a\u7c7b\u522b\u53d8\u91cf\uff0c\u770b\u7c7b\u522b\u95f4\u662f\u5426\u76f8\u4e92\u72ec\u7acb\u3002H_1\uff1a\u4e24\u4e2a\u7c7b\u522b\u53d8\u91cf\u4e0d\u662f\u76f8\u4e92\u72ec\u7acb\uff0c\u5bf9\u5907\u7528\u5047\u8bbe\u6709\u4e3b\u89c2\u504f\u597d\uff0c\u4e0d\u7136\u4e0d\u4f1a\u8bbe\u7f6e\u66f4\u4e3a\u4e25\u683c\u7684\u8bc1\u660e\u6761\u4ef6\uff0c\u4ece\u800c\u589e\u52a0H1\u7684\u8bf4\u670d\u529b\u3002

\u5148\u6784\u5efa\u7c7b\u522b\u9891\u6b21\u77e9\u9635

"},{"location":"R/base-content/cluster%28%29/","title":"Cluster()","text":"

\u5728R\u7f16\u7a0b\u8bed\u8a00\u4e2d\uff0csampling\u5305\u4e2d\u7684\u51fd\u6570\uff0c\u662f\u4e00\u4e2a\u7528\u4e8e\u521b\u5efa\u805a\u7c7b\u5bf9\u8c61\u7684\u51fd\u6570\u7528\u3002 cluster()\u51fd\u6570\u7684\u5177\u4f53\u7528\u6cd5\u548c\u53c2\u6570\u53d6\u51b3\u4e8e\u6240\u4f7f\u7528\u7684\u805a\u7c7b\u5206\u6790\u5305\u3002\u4e00\u822c\u800c\u8a00\uff0ccluster()\u51fd\u6570\u53ef\u4ee5\u7528\u4e8e\u521b\u5efa\u4e0d\u540c\u7c7b\u578b\u7684\u805a\u7c7b\u5bf9\u8c61\uff0c\u5982k\u5747\u503c\u805a\u7c7b\uff08k-means clustering\uff09\u6216\u5c42\u6b21\u805a\u7c7b\uff08hierarchical clustering\uff09\u3002

# \u5bfc\u5165\u76f8\u5173\u5305\uff08\u5982\u679c\u5c1a\u672a\u5b89\u88c5\uff0c\u9700\u8981\u5148\u5b89\u88c5\uff09\nlibrary(stats)\n\n# \u521b\u5efa\u6570\u636e\ndata <- iris[, 1:4]  # \u4f7f\u7528\u9e22\u5c3e\u82b1\u6570\u636e\u96c6\u7684\u524d\u56db\u5217\u4f5c\u4e3a\u793a\u4f8b\u6570\u636e\n\n# \u8fdb\u884ck\u5747\u503c\u805a\u7c7b\nk <- 3  # \u8bbe\u7f6e\u805a\u7c7b\u7684\u7c07\u6570\nkmeans_result <- kmeans(data, centers = k)  # \u4f7f\u7528kmeans\u51fd\u6570\u8fdb\u884c\u805a\u7c7b\n\n# \u83b7\u53d6\u805a\u7c7b\u7ed3\u679c\nclusters <- kmeans_result$cluster  # \u805a\u7c7b\u7ed3\u679c\u5b58\u50a8\u5728$cluster\u4e2d\n\n# \u6253\u5370\u805a\u7c7b\u7ed3\u679c\nprint(clusters)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528cluster()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2ak\u5747\u503c\u805a\u7c7b\u5bf9\u8c61\uff0c\u7136\u540e\u901a\u8fc7\u8bbf\u95ee\u805a\u7c7b\u5bf9\u8c61\u7684\u5c5e\u6027\uff08\u4f8b\u5982$cluster\uff09\u6765\u83b7\u53d6\u805a\u7c7b\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0c\u805a\u7c7b\u5206\u6790\u7684\u5177\u4f53\u64cd\u4f5c\u548c\u53c2\u6570\u8bbe\u7f6e\u53ef\u80fd\u56e0\u4e0d\u540c\u7684\u805a\u7c7b\u7b97\u6cd5\u6216\u5305\u800c\u6709\u6240\u4e0d\u540c\u3002\u56e0\u6b64\uff0c\u5728\u4f7f\u7528cluster()\u51fd\u6570\u65f6\uff0c\u8bf7\u53c2\u8003\u76f8\u5e94\u5305\u7684\u6587\u6863\u6216\u51fd\u6570\u5e2e\u52a9\u6587\u6863\uff0c\u4ee5\u4e86\u89e3\u5982\u4f55\u6b63\u786e\u4f7f\u7528\u548c\u89e3\u91ca\u805a\u7c7b\u5bf9\u8c61\u3002

"},{"location":"R/base-content/colnames%28%29/","title":"Colnames()","text":"

colnames() \u662f R \u8bed\u8a00\u4e2d\u7528\u4e8e\u83b7\u53d6\u6216\u8bbe\u7f6e\u77e9\u9635\u5217\u540d\u7684\u51fd\u6570\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u77e9\u9635\u5bf9\u8c61\u6216\u6570\u636e\u6846\u5bf9\u8c61\u3002colnames() \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u7ed9\u5b9a\u5bf9\u8c61\u7684\u5217\u540d\u3002\u5982\u679c\u5bf9\u8c61\u6ca1\u6709\u5217\u540d\uff0c\u5219\u8fd4\u56de\u4e00\u4e2a\u7a7a\u7684\u5b57\u7b26\u5411\u91cf\u3002

colnames(x)\n
- x\uff1a\u8981\u83b7\u53d6\u6216\u8bbe\u7f6e\u5217\u540d\u7684\u5bf9\u8c61\uff0c\u901a\u5e38\u662f\u77e9\u9635\u6216\u6570\u636e\u6846\u3002

  1. \u83b7\u53d6\u77e9\u9635\u7684\u5217\u540d\uff1a
    mat <- matrix(1:6, nrow = 2, ncol = 3)\ncolnames(mat) <- c(\"Col1\", \"Col2\", \"Col3\")\nresult <- colnames(mat)\nprint(result)  # \u8f93\u51fa\uff1a\"Col1\" \"Col2\" \"Col3\"\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `colnames()` \u51fd\u6570\u4e3a\u77e9\u9635\u7684\u5217\u8bbe\u7f6e\u540d\u79f0\u3002\u6700\u540e\uff0c\u4f7f\u7528 `colnames()` \u51fd\u6570\u83b7\u53d6\u77e9\u9635\u7684\u5217\u540d\u3002\n
  2. \u83b7\u53d6\u6570\u636e\u6846\u7684\u5217\u540d\uff1a
    df <- data.frame(A = 1:3, B = 4:6, C = 7:9)\nresult <- colnames(df)\nprint(result)  # \u8f93\u51fa\uff1a\"A\" \"B\" \"C\"\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 `df`\uff0c\u5176\u4e2d\u5305\u542b\u4e09\u5217 A\u3001B \u548c C\u3002\u4f7f\u7528 `colnames()` \u51fd\u6570\u83b7\u53d6\u6570\u636e\u6846\u7684\u5217\u540d\u3002\n
  3. \u8bbe\u7f6e\u77e9\u9635\u7684\u5217\u540d\uff1a
    mat <- matrix(1:6, nrow = 2, ncol = 3)\ncolnames(mat) <- c(\"Column1\", \"Column2\", \"Column3\")\nprint(colnames(mat))  # \u8f93\u51fa\uff1a\"Column1\" \"Column2\" \"Column3\"\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `colnames()` \u51fd\u6570\u4e3a\u77e9\u9635\u7684\u5217\u8bbe\u7f6e\u540d\u79f0\u3002\n\n\u6ce8\u610f\uff1a`colnames()` \u51fd\u6570\u53ef\u4ee5\u7528\u4e8e\u77e9\u9635\u548c\u6570\u636e\u6846\u5bf9\u8c61\uff0c\u4f46\u5bf9\u4e8e\u5176\u4ed6\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u5982\u5411\u91cf\uff0c\u5b83\u53ef\u80fd\u4f1a\u8fd4\u56de\u4e00\u4e2a\u7a7a\u7684\u5b57\u7b26\u5411\u91cf\u3002\n

colnames() \u51fd\u6570\u5728\u5904\u7406\u77e9\u9635\u548c\u6570\u636e\u6846\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u83b7\u53d6\u548c\u8bbe\u7f6e\u5bf9\u8c61\u7684\u5217\u540d\uff0c\u4ece\u800c\u66f4\u597d\u5730\u7406\u89e3\u548c\u64cd\u4f5c\u6570\u636e\u3002

"},{"location":"R/base-content/cummean%28%29/","title":"Cummean()","text":"

\u662f R \u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u5b83\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u5143\u7d20\u7684\u7d2f\u79ef\u5747\u503c\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u5177\u6709\u76f8\u540c\u957f\u5ea6\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u539f\u59cb\u5411\u91cf\u4e2d\u8be5\u4f4d\u7f6e\u53ca\u4e4b\u524d\u4f4d\u7f6e\u4e0a\u5143\u7d20\u7684\u5747\u503c\u3002

\u4ee5\u4e0b\u662f cummean() \u51fd\u6570\u7684\u793a\u4f8b\u7528\u6cd5\uff1a

# \u4f7f\u7528 cummean() \u8ba1\u7b97\u5411\u91cf\u7684\u7d2f\u79ef\u5747\u503c\nvec <- c(2, 4, 6, 8, 10)\ncumulative_mean <- cummean(vec)\n\nprint(cumulative_mean)\n

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\uff1a

[1]  2.0  3.0  4.0  5.0  6.0\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 cummean() \u51fd\u6570\u8ba1\u7b97\u4e86\u5411\u91cf vec \u4e2d\u5143\u7d20\u7684\u7d2f\u79ef\u5747\u503c\u3002\u7b2c\u4e00\u4e2a\u5143\u7d20\u4fdd\u6301\u4e0d\u53d8\uff0c\u7b2c\u4e8c\u4e2a\u5143\u7d20\u662f\u524d\u4e24\u4e2a\u5143\u7d20\u7684\u5747\u503c\uff0c\u7b2c\u4e09\u4e2a\u5143\u7d20\u662f\u524d\u4e09\u4e2a\u5143\u7d20\u7684\u5747\u503c\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002

cummean() \u51fd\u6570\u4e5f\u53ef\u4ee5\u5e94\u7528\u4e8e\u6570\u636e\u6846\u4e2d\u7684\u5217\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

data <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"D\", \"E\"),\n  value = c(2, 4, 6, 8, 10)\n)\n\n# \u5728\u6570\u636e\u6846\u4e2d\u5e94\u7528 cummean()\ncumulative_mean_data <- data %>%\n  mutate(cumulative_mean_value = cummean(value))\n\nprint(cumulative_mean_data)\n

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\uff1a

  category value cumulative_mean_value\n1        A     2                   2.0\n2        B     4                   3.0\n3        C     6                   4.0\n4        D     8                   5.0\n5        E    10                   6.0\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 mutate() \u51fd\u6570\u548c cummean() \u51fd\u6570\u5728\u6570\u636e\u6846\u4e2d\u521b\u5efa\u4e86\u4e00\u4e2a\u65b0\u5217 cumulative_mean_value\uff0c\u5176\u4e2d\u5b58\u50a8\u4e86 value \u5217\u5143\u7d20\u7684\u7d2f\u79ef\u5747\u503c\u3002

\u901a\u8fc7 cummean() \u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u8ba1\u7b97\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u5143\u7d20\u7684\u7d2f\u79ef\u5747\u503c\uff0c\u8fd9\u5bf9\u4e8e\u8ba1\u7b97\u7d2f\u79ef\u548c\u3001\u6eda\u52a8\u5e73\u5747\u7b49\u7d2f\u79ef\u6027\u7edf\u8ba1\u91cf\u975e\u5e38\u6709\u7528\u3002

\u5e0c\u671b\u8fd9\u4e2a\u4f8b\u5b50\u80fd\u591f\u5e2e\u52a9\u4f60\u7406\u89e3 cummean() \u51fd\u6570\u7684\u4f5c\u7528\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\uff01

"},{"location":"R/base-content/cumprod%28%29/","title":"Cumprod()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0ccumprod()\u662f\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u77e9\u9635\u7684\u7d2f\u79ef\u4e58\u79ef\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

cumprod(x)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\u7684\u5411\u91cf\u3001\u77e9\u9635\u6216\u6570\u636e\u6846\u3002

  1. \u5bf9\u5411\u91cf\u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\uff1a
# \u5b9a\u4e49\u5411\u91cf\nx <- c(1, 2, 3, 4, 5)\n\n# \u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\ncumulative_product <- cumprod(x)\n\nprint(cumulative_product)\n

\u8f93\u51fa\uff1a

[1]   1   2   6  24 120\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5411\u91cfx\uff0c\u5305\u542b\u4e86\u6574\u65701\u52305\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528cumprod()\u51fd\u6570\u8ba1\u7b97\u4e86\u5411\u91cfx\u7684\u7d2f\u79ef\u4e58\u79ef\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728cumulative_product\u53d8\u91cf\u4e2d\u3002

\u8f93\u51fa\u7ed3\u679c\u663e\u793a\u4e86cumulative_product\u5411\u91cf\u4e2d\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u7d2f\u79ef\u4e58\u79ef\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u7d2f\u79ef\u4e58\u79ef\u7684\u8ba1\u7b97\u65b9\u5f0f\u5982\u4e0b\uff1a1, 1 * 2 = 2, 1 * 2 * 3 = 6, 1 * 2 * 3 * 4 = 24, 1 * 2 * 3 * 4 * 5 = 120\u3002

  1. \u5bf9\u77e9\u9635\u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\uff1a
# \u5b9a\u4e49\u77e9\u9635\nm <- matrix(1:9, nrow = 3)\n\n# \u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\ncumulative_product <- cumprod(m)\n\nprint(cumulative_product)\n

\u8f93\u51fa\uff1a

     [,1] [,2] [,3]\n[1,]    1    4    7\n[2,]    2   10   36\n[3,]    6   48  288\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a3x3\u7684\u77e9\u9635m\uff0c\u5176\u4e2d\u5305\u542b1\u52309\u7684\u6574\u6570\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528cumprod()\u51fd\u6570\u8ba1\u7b97\u4e86\u77e9\u9635m\u7684\u7d2f\u79ef\u4e58\u79ef\u3002\u7531\u4e8ecumprod()\u51fd\u6570\u9010\u5217\u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\uff0c\u56e0\u6b64\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u4e2a\u4e0e\u8f93\u5165\u77e9\u9635\u7ef4\u5ea6\u76f8\u540c\u7684\u77e9\u9635\uff0c\u5176\u4e2d\u6bcf\u4e2a\u4f4d\u7f6e\u5305\u542b\u4e86\u76f8\u5e94\u5217\u7684\u7d2f\u79ef\u4e58\u79ef\u3002

\u8bf7\u6ce8\u610f\uff0ccumprod()\u51fd\u6570\u4e5f\u53ef\u4ee5\u7528\u4e8e\u6570\u636e\u6846\u3002\u5b83\u5c06\u9010\u5217\u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u5177\u6709\u76f8\u540c\u5217\u6570\u548c\u884c\u540d\u7684\u6570\u636e\u6846\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3cumprod()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u5bf9\u5411\u91cf\u3001\u77e9\u9635\u6216\u6570\u636e\u6846\u5e94\u7528cumprod()\u51fd\u6570\u6765\u8ba1\u7b97\u7d2f\u79ef\u4e58\u79ef\u3002

"},{"location":"R/base-content/cumsum%28%29/","title":"Cumsum()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0ccumsum()\u662f\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u77e9\u9635\u7684\u7d2f\u79ef\u548c\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

cumsum(x)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u8ba1\u7b97\u7d2f\u79ef\u548c\u7684\u5411\u91cf\u3001\u77e9\u9635\u6216\u6570\u636e\u6846\u3002

  1. \u5bf9\u5411\u91cf\u8ba1\u7b97\u7d2f\u79ef\u548c\uff1a
# \u5b9a\u4e49\u5411\u91cf\nx <- c(1, 2, 3, 4, 5)\n\n# \u8ba1\u7b97\u7d2f\u79ef\u548c\ncumulative_sum <- cumsum(x)\n\nprint(cumulative_sum)\n

\u8f93\u51fa\uff1a

[1]  1  3  6 10 15\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5411\u91cfx\uff0c\u5305\u542b\u4e86\u6574\u65701\u52305\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528cumsum()\u51fd\u6570\u8ba1\u7b97\u4e86\u5411\u91cfx\u7684\u7d2f\u79ef\u548c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728cumulative_sum\u53d8\u91cf\u4e2d\u3002

\u8f93\u51fa\u7ed3\u679c\u663e\u793a\u4e86cumulative_sum\u5411\u91cf\u4e2d\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u7d2f\u79ef\u548c\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u7d2f\u79ef\u548c\u7684\u8ba1\u7b97\u65b9\u5f0f\u5982\u4e0b\uff1a1, 1 + 2 = 3, 1 + 2 + 3 = 6, 1 + 2 + 3 + 4 = 10, 1 + 2 + 3 + 4 + 5 = 15\u3002

  1. \u5bf9\u77e9\u9635\u8ba1\u7b97\u7d2f\u79ef\u548c\uff1a
# \u5b9a\u4e49\u77e9\u9635\nm <- matrix(1:9, nrow = 3)\n\n# \u8ba1\u7b97\u7d2f\u79ef\u548c\ncumulative_sum <- cumsum(m)\n\nprint(cumulative_sum)\n

\u8f93\u51fa\uff1a

     [,1] [,2] [,3]\n[1,]    1    4    7\n[2,]    3    8   15\n[3,]    6   14   24\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a3x3\u7684\u77e9\u9635m\uff0c\u5176\u4e2d\u5305\u542b1\u52309\u7684\u6574\u6570\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528cumsum()\u51fd\u6570\u8ba1\u7b97\u4e86\u77e9\u9635m\u7684\u7d2f\u79ef\u548c\u3002\u7531\u4e8ecumsum()\u51fd\u6570\u9010\u5217\u8ba1\u7b97\u7d2f\u79ef\u548c\uff0c\u56e0\u6b64\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u4e2a\u4e0e\u8f93\u5165\u77e9\u9635\u7ef4\u5ea6\u76f8\u540c\u7684\u77e9\u9635\uff0c\u5176\u4e2d\u6bcf\u4e2a\u4f4d\u7f6e\u5305\u542b\u4e86\u76f8\u5e94\u5217\u7684\u7d2f\u79ef\u548c\u3002

\u8bf7\u6ce8\u610f\uff0ccumsum()\u51fd\u6570\u4e5f\u53ef\u4ee5\u7528\u4e8e\u6570\u636e\u6846\u3002\u5b83\u5c06\u9010\u5217\u8ba1\u7b97\u7d2f\u79ef\u548c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u5177\u6709\u76f8\u540c\u5217\u6570\u548c\u884c\u540d\u7684\u6570\u636e\u6846\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3cumsum()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u5bf9\u5411\u91cf\u3001\u77e9\u9635\u6216\u6570\u636e\u6846\u5e94\u7528cumsum()\u51fd\u6570\u6765\u8ba1\u7b97\u7d2f\u79ef\u548c\u3002

"},{"location":"R/base-content/data.frame%28%29/","title":"Data.frame()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cdata.frame()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u6570\u636e\u6846\uff08data frame\uff09\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, stringsAsFactors = default.stringsAsFactors())\n
\u53c2\u6570\uff1a - ...\uff1a\u5217\u5411\u91cf\u6216\u5176\u4ed6\u6570\u636e\u6846\uff0c\u7528\u4e8e\u6784\u5efa\u6570\u636e\u6846\u7684\u5217\u3002\u6bcf\u4e2a\u53c2\u6570\u53ef\u4ee5\u662f\u5411\u91cf\u3001\u77e9\u9635\u3001\u6570\u7ec4\u6216\u5176\u4ed6\u6570\u636e\u7ed3\u6784\u3002 - row.names\uff1a\u6307\u5b9a\u884c\u540d\uff08\u53ef\u9009\uff09\u3002\u53ef\u4ee5\u662f\u5b57\u7b26\u5411\u91cf\u6216NULL\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u884c\u540d\u4e3a\u6570\u5b57\u5e8f\u5217\u3002 - check.rows\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u68c0\u67e5\u8f93\u5165\u7684\u884c\u6570\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u8868\u793a\u4e0d\u68c0\u67e5\u3002 - check.names\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u68c0\u67e5\u5217\u540d\u7684\u5408\u6cd5\u6027\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u68c0\u67e5\u3002 - stringsAsFactors\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5c06\u5b57\u7b26\u5217\u4f5c\u4e3a\u56e0\u5b50\u5904\u7406\u3002\u9ed8\u8ba4\u4e3a\u6839\u636e\u5168\u5c40\u9009\u9879options(stringsAsFactors)\u6765\u786e\u5b9a\u3002 \u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e9b\u4f7f\u7528data.frame()\u51fd\u6570\u521b\u5efa\u6570\u636e\u6846\u7684\u793a\u4f8b\uff1a
# \u793a\u4f8b1\uff1a\u521b\u5efa\u7b80\u5355\u6570\u636e\u6846\nname <- c(\"Alice\", \"Bob\", \"Charlie\")\nage <- c(25, 30, 35)\nheight <- c(165, 175, 185)\n\ndf <- data.frame(name, age, height)\nprint(df)\n# \u8f93\u51fa:\n#     name age height\n# 1  Alice  25    165\n# 2    Bob  30    175\n# 3 Charlie  35    185\n\n# \u793a\u4f8b2\uff1a\u521b\u5efa\u5177\u6709\u884c\u540d\u7684\u6570\u636e\u6846\nname <- c(\"Alice\", \"Bob\", \"Charlie\")\nage <- c(25, 30, 35)\nheight <- c(165, 175, 185)\n\ndf <- data.frame(name, age, height, row.names = c(\"P1\", \"P2\", \"P3\"))\nprint(df)\n# \u8f93\u51fa:\n#       name age height\n# P1   Alice  25    165\n# P2     Bob  30    175\n# P3 Charlie  35    185\n\n# \u793a\u4f8b3\uff1a\u521b\u5efa\u5177\u6709\u56e0\u5b50\u5217\u7684\u6570\u636e\u6846\nname <- c(\"Alice\", \"Bob\", \"Charlie\")\nage <- c(25, 30, 35)\ngender <- c(\"Female\", \"Male\", \"Male\")\n\ndf <- data.frame(name, age, gender, stringsAsFactors = TRUE)\nprint(df)\n# \u8f93\u51fa:\n#     name age gender\n# 1  Alice  25 Female\n# 2    Bob  30   Male\n# 3 Charlie  35   Male\n# \n# \u6ce8\u610f\uff1agender\u5217\u88ab\u9ed8\u8ba4\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c55\u793a\u4e86\u4f7f\u7528data.frame()\u51fd\u6570\u521b\u5efa\u6570\u636e\u6846\u7684\u4e0d\u540c\u60c5\u51b5\u3002

\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u6846df\uff0c\u4f7f\u7528name\u3001age\u548cheight\u4f5c\u4e3a\u5217\u5411\u91cf\u6784\u5efa\u6570\u636e\u6846\u3002\u51fd\u6570\u5c06\u8fd9\u4e9b\u5217\u5408\u5e76\u4e3a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5e76\u6253\u5370\u51fa\u6570\u636e\u6846\u7684\u5185\u5bb9\u3002

\u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5177\u6709\u884c\u540d\u7684\u6570\u636e\u6846df\uff0c\u4f7f\u7528name\u3001age\u548cheight\u4f5c\u4e3a\u5217\u5411\u91cf\u6784\u5efa\u6570\u636e\u6846\uff0c\u5e76\u4f7f\u7528row.names\u53c2\u6570\u6307\u5b9a\u4e86\u884c\u540d\u3002\u51fd\u6570\u5c06\u8fd9\u4e9b\u5217\u5408\u5e76\u4e3a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5e76\u6253\u5370\u51fa\u6570\u636e\u6846\u7684\u5185\u5bb9\u3002

\u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5177\u6709\u56e0\u5b50\u5217\u7684\u6570\u636e\u6846df\uff0c\u4f7f\u7528name\u3001age\u548cgender\u4f5c\u4e3a\u5217\u5411\u91cf\u6784\u5efa\u6570\u636e\u6846\uff0c\u5e76\u4f7f\u7528stringsAsFactors\u53c2\u6570\u5c06\u5b57\u7b26\u5217gender\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\u3002\u51fd\u6570\u5c06\u8fd9\u4e9b\u5217\u5408\u5e76\u4e3a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5e76\u6253\u5370\u51fa\u6570\u636e\u6846\u7684\u5185\u5bb9\u3002

\u901a\u8fc7\u4f7f\u7528data.frame()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u6839\u636e\u7ed9\u5b9a\u7684\u5217\u5411\u91cf\u521b\u5efa\u6570\u636e\u6846\uff0c\u5e76\u6839\u636e\u9700\u8981\u6307\u5b9a\u884c\u540d\u3001\u68c0\u67e5\u884c\u6570\u548c\u5217\u540d\u7684\u5408\u6cd5\u6027\uff0c\u4ee5\u53ca\u5904\u7406\u5b57\u7b26\u5217\u662f\u5426\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\u7b49\u3002\u6570\u636e\u6846\u662fR\u8bed\u8a00\u4e2d\u5e38\u7528\u7684\u6570\u636e\u7ed3\u6784\uff0c\u7528\u4e8e\u5904\u7406\u548c\u5206\u6790\u7ed3\u6784\u5316\u6570\u636e\u3002

"},{"location":"R/base-content/data.frame%28%29/#_1","title":"\u5e38\u89c1\u521b\u5efa\u5f62\u5f0f","text":"

\u6ce8\u610f\u6bcf\u4e2a\u5217\u540e\u9762\u8981\u52a0\u9017\u53f7\u3002

# \u521b\u5efa\u6570\u636e\u5e93\u6570\u636e\ndatabase_data <- data.frame(\n  ID = c(1, 2, 3, 4, 5),\n  Name = c(\"John\", \"Emma\", \"Michael\", \"Sophia\", \"William\"),\n  Age = c(25, 28, 32, 27, 30),\n  Country = c(\"USA\", \"Canada\", \"UK\", \"Australia\", \"Germany\"),\n  Salary = c(50000, 60000, 70000, 55000, 65000),\n  stringsAsFactors = FALSE\n)\n\n# \u6253\u5370\u8f93\u51fa\u6570\u636e\u5e93\u6570\u636e\nprint(database_data)\n
"},{"location":"R/base-content/dchisq%28%29/","title":"Dchisq()","text":"

\u662fR\u8bed\u8a00\u4e2d\u7528\u4e8e\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08Probability Density Function\uff0cPDF\uff09\u7684\u51fd\u6570\u3002\u5361\u65b9\u5206\u5e03\u662f\u4e00\u79cd\u5e38\u7528\u7684\u6982\u7387\u5206\u5e03\uff0c\u7279\u522b\u7528\u4e8e\u7edf\u8ba1\u63a8\u65ad\u548c\u5047\u8bbe\u68c0\u9a8c\u3002 dchisq()\u51fd\u6570\u7684\u8bed\u6cd5\u5982\u4e0b\uff1a

dchisq(x, df)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u8981\u8ba1\u7b97\u6982\u7387\u5bc6\u5ea6\u7684\u503c\u6216\u4e00\u7ec4\u503c\u3002 - df\uff1a\u5361\u65b9\u5206\u5e03\u7684\u81ea\u7531\u5ea6\uff08degrees of freedom\uff09\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528dchisq()\u51fd\u6570\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\uff1a

# \u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a3\u7684\u5361\u65b9\u5206\u5e03\u5728x=2\u5904\u7684\u6982\u7387\u5bc6\u5ea6\npdf_value <- dchisq(2, df = 3)\nprint(pdf_value)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528dchisq(2, df = 3)\u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a3\u7684\u5361\u65b9\u5206\u5e03\u5728x=2\u5904\u7684\u6982\u7387\u5bc6\u5ea6\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728pdf_value\u53d8\u91cf\u4e2d\u3002print()\u51fd\u6570\u7528\u4e8e\u6253\u5370\u6982\u7387\u5bc6\u5ea6\u7684\u503c\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cdchisq()\u51fd\u6570\u8ba1\u7b97\u7684\u662f\u5361\u65b9\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u503c\uff0c\u5373\u7ed9\u5b9a\u81ea\u7531\u5ea6\u4e0b\u67d0\u4e2a\u7279\u5b9a\u53d6\u503c\u7684\u6982\u7387\u5bc6\u5ea6\u3002\u5bf9\u4e8e\u8fde\u7eed\u5206\u5e03\uff0c\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u8868\u793a\u4e86\u968f\u673a\u53d8\u91cf\u843d\u5728\u67d0\u4e2a\u53d6\u503c\u9644\u8fd1\u7684\u6982\u7387\u5bc6\u5ea6\u3002

\u5e0c\u671b\u8fd9\u4e2a\u4f8b\u5b50\u80fd\u591f\u5e2e\u52a9\u60a8\u7406\u89e3dchisq()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/density%28%29/","title":"Density()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cdensity()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6838\u5bc6\u5ea6\u4f30\u8ba1\uff08kernel density estimation\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

density(x, bw = \"nrd0\", kernel = \"gaussian\", ...)\n

\u53c2\u6570\uff1a \u4ee5\u4e0b\u662fdensity()\u51fd\u6570\u4e2d\u5e38\u7528\u7684\u53c2\u6570\uff1a

  • x\uff1a\u8981\u8fdb\u884c\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7684\u5411\u91cf\u6216\u6570\u503c\u5411\u91cf\u3002

  • bw\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u5e26\u5bbd\uff08bandwidth\uff09\u7684\u9009\u62e9\u65b9\u6cd5\u3002\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u503c\uff0c\u5982\"nrd0\"\u3001\"nrd\"\u3001\"ucv\"\u7b49\uff0c\u6216\u8005\u662f\u4e00\u4e2a\u6570\u5b57\u503c\u3002

  • kernel\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u6838\u51fd\u6570\u7684\u9009\u62e9\u3002\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u503c\uff0c\u5982\"gaussian\"\u3001\"epanechnikov\"\u3001\"rectangular\"\u7b49\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684\u6838\u5bc6\u5ea6\u4f30\u8ba1\u51fd\u6570\u3002

\u8fd4\u56de\u503c\uff1a density()\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u542b\u4ee5\u4e0b\u7ec4\u6210\u90e8\u5206\uff1a

  • x\uff1a\u539f\u59cb\u6570\u636e\u3002

  • y\uff1a\u5bf9\u5e94\u4e8e\u6bcf\u4e2ax\u503c\u7684\u6838\u5bc6\u5ea6\u4f30\u8ba1\u3002

  • bw\uff1a\u4f7f\u7528\u7684\u5e26\u5bbd\u3002

  • n\uff1a\u89c2\u6d4b\u503c\u7684\u6570\u91cf\u3002

  • call\uff1a\u51fd\u6570\u7684\u8c03\u7528\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528density()\u51fd\u6570\u8fdb\u884c\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nx <- c(1, 2, 2, 3, 4, 4, 4, 5)\n\n# \u8fdb\u884c\u6838\u5bc6\u5ea6\u4f30\u8ba1\ndens <- density(x, bw = \"nrd0\", kernel = \"gaussian\")\n\n# \u6253\u5370\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7ed3\u679c\nprint(dens)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5411\u91cfx\uff0c\u5b83\u5305\u542b\u4e00\u4e9b\u89c2\u6d4b\u503c\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528density()\u51fd\u6570\u5bf9\u5411\u91cfx\u8fdb\u884c\u6838\u5bc6\u5ea6\u4f30\u8ba1\u3002\u901a\u8fc7\u6307\u5b9abw = \"nrd0\"\u548ckernel = \"gaussian\"\u53c2\u6570\uff0c\u6211\u4eec\u4f7f\u7528\u4e86\u9ed8\u8ba4\u7684\u5e26\u5bbd\u9009\u62e9\u65b9\u6cd5\u548c\u9ad8\u65af\u6838\u51fd\u6570\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u6838\u5bc6\u5ea6\u4f30\u8ba1\u5bf9\u8c61dens\uff0c\u5b83\u5305\u542b\u4e86\u8ba1\u7b97\u5f97\u5230\u7684\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0c\u4e0a\u8ff0\u793a\u4f8b\u4ec5\u6f14\u793a\u4e86\u57fa\u672c\u7528\u6cd5\uff0c\u66f4\u591a\u8be6\u7ec6\u7684\u53c2\u6570\u548c\u9009\u9879\u53ef\u4ee5\u53c2\u8003R\u8bed\u8a00\u7684\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528?density\u547d\u4ee4\u67e5\u770b\u51fd\u6570\u7684\u5e2e\u52a9\u6587\u6863\u3002

\u5173\u4e8e\u201c\u8ddd\u79bb\u201d\u7684\u90e8\u5206\uff0cdensity()\u51fd\u6570\u672c\u8eab\u4e0d\u6d89\u53ca\u8ddd\u79bb\u7684\u8ba1\u7b97\u3002\u5b83\u4e3b\u8981\u7528\u4e8e\u4f30\u8ba1\u5bc6\u5ea6\u51fd\u6570\uff0c\u800c\u4e0d\u662f\u8ba1\u7b97\u89c2\u6d4b\u503c\u4e4b\u95f4\u7684\u8ddd\u79bb\u3002\u5982\u679c\u4f60\u5bf9\u8ddd\u79bb\u8ba1\u7b97\u611f\u5174\u8da3\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u5176\u4ed6R\u5305\u4e2d\u7684\u51fd\u6570\uff0c\u5982dist()\u7528\u4e8e\u8ba1\u7b97\u8ddd\u79bb\u77e9\u9635\u3002

"},{"location":"R/base-content/df%28%29/","title":"Df()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cdf()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08PDF\uff09\u503c\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

df(x, df1, df2)\n
\u53c2\u6570\uff1a - x\uff1a\u81ea\u53d8\u91cf\uff0c\u5373\u8981\u8ba1\u7b97\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u7684\u70b9\u3002 - df1\uff1a\u5206\u5b50\u81ea\u7531\u5ea6\u3002 - df2\uff1a\u5206\u6bcd\u81ea\u7531\u5ea6\u3002 \u793a\u4f8b\uff1a
# \u793a\u4f8b\uff1a\u8ba1\u7b97F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\n# \u8ba1\u7b97F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\ndensity <- df(x = 2.5, df1 = 3, df2 = 6)\nprint(density)\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528df()\u51fd\u6570\u8ba1\u7b97F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002\u6211\u4eec\u6307\u5b9a\u4e86\u81ea\u53d8\u91cfx\u4e3a2.5\uff0c\u5206\u5b50\u81ea\u7531\u5ea6df1\u4e3a3\uff0c\u5206\u6bcd\u81ea\u7531\u5ea6df2\u4e3a6\u3002\u901a\u8fc7\u5c06\u7ed3\u679c\u5b58\u50a8\u5728density\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cF\u5206\u5e03\u662f\u7528\u4e8e\u7edf\u8ba1\u63a8\u65ad\u4e2d\u7684\u5047\u8bbe\u68c0\u9a8c\u548c\u65b9\u5dee\u5206\u6790\u7b49\u95ee\u9898\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u9700\u6c42\u8c03\u6574\u53c2\u6570\u6765\u8ba1\u7b97F\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002

"},{"location":"R/base-content/df%E7%B4%A2%E5%BC%95/","title":"Df\u7d22\u5f15","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u8981\u9009\u51fa\u6570\u636e\u6846\uff08data frame\uff09\u4e2d\u7684\u524d\u591a\u5c11\u884c\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u7d22\u5f15\u64cd\u4f5c\u7b26 [ ] \u7ed3\u5408\u6574\u6570\u7d22\u5f15\u6765\u5b9e\u73b0\u3002\u4e0b\u9762\u662f\u51e0\u79cd\u9009\u53d6\u524d\u591a\u5c11\u884c\u7684\u65b9\u6cd5\uff1a 1. \u4f7f\u7528\u57fa\u672c\u7d22\u5f15\uff1a

# \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(x = 1:10, y = letters[1:10])\n\n# \u9009\u53d6\u524d3\u884c\ntop_rows <- df[1:3, ]\n

  1. \u4f7f\u7528 head() \u51fd\u6570\uff1a

    # \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(x = 1:10, y = letters[1:10])\n\n# \u9009\u53d6\u524d3\u884c\ntop_rows <- head(df, n = 3)\n

  2. \u4f7f\u7528\u903b\u8f91\u6761\u4ef6\uff1a

    # \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(x = 1:10, y = letters[1:10])\n\n# \u9009\u53d6 x \u5927\u4e8e5\u7684\u524d3\u884c\ntop_rows <- df[df$x > 5, ][1:3, ]\n

\u4ee5\u4e0a\u4e09\u79cd\u65b9\u6cd5\u90fd\u53ef\u4ee5\u7528\u6765\u9009\u53d6\u6570\u636e\u6846\u4e2d\u7684\u524d\u591a\u5c11\u884c\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u9009\u62e9\u9002\u5408\u7684\u65b9\u6cd5\u3002

"},{"location":"R/base-content/df%E7%B4%A2%E5%BC%95/#_1","title":"\u6839\u636e\u67d0\u5217\u4e2d\u7684\u6570\u636e\uff0c\u7b5b\u9009\u53e6\u4e00\u5217\u540c\u884c\u6570\u636e","text":"
# \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(\n  field1 = c(\"A\", \"B\", \"A\", \"C\", \"B\"),\n  field2 = c(10, 20, 30, 40, 50)\n)\n\n# \u4f7f\u7528\u57fa\u7840\u7684\u6570\u636e\u6846\u5b50\u96c6\u9009\u62e9\u8bed\u6cd5\nfiltered_values <- df[df$field1 == \"A\", \"field2\"]\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(filtered_values)\n
"},{"location":"R/base-content/df%E7%B4%A2%E5%BC%95/#df","title":"df[[]]","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c\u6570\u636e\u6846\u7684\u884c\u548c\u5217\u7684\u9009\u62e9\u64cd\u4f5c\u4f7f\u7528\u4e86\u4e0d\u540c\u7684\u8bed\u6cd5\u3002 - \u884c\u9009\u62e9\uff1a\u8981\u9009\u62e9\u6570\u636e\u6846\u7684\u884c\uff0c\u53ef\u4ee5\u4f7f\u7528\u65b9\u62ec\u53f7[]\uff0c\u5e76\u6307\u5b9a\u9700\u8981\u9009\u62e9\u7684\u884c\u7684\u7d22\u5f15\u6216\u903b\u8f91\u6761\u4ef6\u3002\u4f8b\u5982\uff0cdf[1, ]\u9009\u62e9\u6570\u636e\u6846df\u7684\u7b2c\u4e00\u884c\u3002 - \u5217\u9009\u62e9\uff1a\u8981\u9009\u62e9\u6570\u636e\u6846\u7684\u5217\uff0c\u6709\u4e24\u79cd\u5e38\u7528\u7684\u65b9\u6cd5\uff1a 1. \u4f7f\u7528\u65b9\u62ec\u53f7[]\u5e76\u6307\u5b9a\u9700\u8981\u9009\u62e9\u7684\u5217\u7684\u7d22\u5f15\u6216\u5217\u540d\u3002\u4f8b\u5982\uff0cdf[, 1]\u9009\u62e9\u6570\u636e\u6846df\u7684\u7b2c\u4e00\u5217\u3002\u8fd9\u79cd\u65b9\u5f0f\u8fd4\u56de\u7684\u662f\u4e00\u4e2a\u5411\u91cf\u3002 2. \u4f7f\u7528\u53cc\u65b9\u62ec\u53f7[[]]\u6216$\u7b26\u53f7\uff0c\u901a\u8fc7\u5217\u540d\u9009\u62e9\u6570\u636e\u6846\u7684\u5217\u3002\u4f8b\u5982\uff0cdf[[1]]\u6216df$column_name\u9009\u62e9\u6570\u636e\u6846df\u4e2d\u540d\u4e3acolumn_name\u7684\u5217\u3002\u8fd9\u79cd\u65b9\u5f0f\u8fd4\u56de\u7684\u662f\u4e00\u4e2a\u5411\u91cf\u3002 \u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528\u4e0d\u540c\u7684\u8bed\u6cd5\u8fdb\u884c\u884c\u548c\u5217\u7684\u9009\u62e9\u5462\uff1f \u8fd9\u662f\u56e0\u4e3a\u6570\u636e\u6846\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u5bf9\u8c61\uff0c\u5728R\u4e2d\u5b83\u88ab\u5b58\u50a8\u4e3a\u5217\u8868\uff08list\uff09\u7684\u5f62\u5f0f\u3002\u6570\u636e\u6846\u7684\u6bcf\u4e00\u5217\u90fd\u662f\u4f5c\u4e3a\u5217\u8868\u7684\u5143\u7d20\u5b58\u50a8\u7684\uff0c\u800c\u6bcf\u4e00\u5217\u53c8\u53ef\u4ee5\u662f\u4e0d\u540c\u7684\u6570\u636e\u7c7b\u578b\uff08\u4f8b\u5982\u5b57\u7b26\u578b\u3001\u6570\u503c\u578b\u7b49\uff09\u3002\u56e0\u6b64\uff0c\u5bf9\u4e8e\u6570\u636e\u6846\u7684\u5217\u9009\u62e9\uff0c\u9700\u8981\u4f7f\u7528\u53cc\u65b9\u62ec\u53f7[[]]\u6216$\u7b26\u53f7\u6765\u660e\u786e\u6307\u5b9a\u8981\u9009\u62e9\u7684\u5217\uff0c\u5e76\u8fd4\u56de\u5217\u5411\u91cf\u3002 \u76f8\u6bd4\u4e4b\u4e0b\uff0c\u6570\u636e\u6846\u7684\u884c\u9009\u62e9\u66f4\u52a0\u76f4\u89c2\u548c\u5e38\u89c1\uff0c\u56e0\u6b64\u53ef\u4ee5\u4f7f\u7528\u5e38\u89c4\u7684\u65b9\u62ec\u53f7[]\u6765\u9009\u62e9\u884c\uff0c\u800c\u4e0d\u9700\u8981\u4f7f\u7528\u53cc\u65b9\u62ec\u53f7[[]]\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u9009\u62e9\u6570\u636e\u6846\u7684\u884c\u548c\u5217\uff1a

# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(A = c(1, 2, 3), B = c(4, 5, 6), C = c(7, 8, 9))\n\n# \u9009\u62e9\u884c\ndf[1, ]  # \u9009\u62e9\u7b2c\u4e00\u884c\n# \u8f93\u51fa\uff1a\n#   A B C\n# 1 1 4 7\n\n# \u9009\u62e9\u5217\uff08\u4f7f\u7528\u7d22\u5f15\uff09\ndf[, 1]  # \u9009\u62e9\u7b2c\u4e00\u5217\n# \u8f93\u51fa\uff1a\n# [1] 1 2 3\n\n# \u9009\u62e9\u5217\uff08\u4f7f\u7528\u5217\u540d\uff09\ndf$A  # \u9009\u62e9\u540d\u4e3a \"A\" \u7684\u5217\n# \u8f93\u51fa\uff1a\n# [1] 1 2 3\n\ndf[[\"A\"]]  # \u9009\u62e9\u540d\u4e3a \"A\" \u7684\u5217\n# \u8f93\u51fa\uff1a\n# [1] 1 2 3\n\ndf[[1]]  # \u9009\u62e9\u7b2c\u4e00\u5217\n# \u8f93\u51fa\uff1a\n# [1] 1 2 3\n

\u5e0c\u671b\u8fd9\u6837\u89e3\u7b54\u4e86\u60a8\u7684\u7591\u95ee\u3002\u5982\u679c\u60a8\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/dim%28%29/","title":"Dim()","text":"

dim() \u662f R \u8bed\u8a00\u4e2d\u7528\u4e8e\u83b7\u53d6\u6216\u8bbe\u7f6e\u5bf9\u8c61\u7684\u7ef4\u5ea6\u7684\u51fd\u6570\u3002\u5b83\u9002\u7528\u4e8e\u77e9\u9635\u3001\u6570\u7ec4\u548c\u6570\u636e\u6846\u7b49\u5bf9\u8c61\u3002dim() \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6574\u6570\u5411\u91cf\uff0c\u8868\u793a\u5bf9\u8c61\u7684\u7ef4\u5ea6\u3002\u5982\u679c\u5bf9\u8c61\u662f\u4e00\u7ef4\u7684\uff0c\u5219\u8fd4\u56de\u4e00\u4e2a\u957f\u5ea6\u4e3a 1 \u7684\u5411\u91cf\u3002

dim(x)\n
- x\uff1a\u8981\u83b7\u53d6\u6216\u8bbe\u7f6e\u7ef4\u5ea6\u7684\u5bf9\u8c61\u3002 1. \u83b7\u53d6\u77e9\u9635\u7684\u7ef4\u5ea6\uff1a
mat <- matrix(1:6, nrow = 2, ncol = 3)\nresult <- dim(mat)\nprint(result)  # \u8f93\u51fa\uff1a2 3\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `dim()` \u51fd\u6570\u83b7\u53d6\u77e9\u9635\u7684\u7ef4\u5ea6\u3002\n
2. \u83b7\u53d6\u6570\u7ec4\u7684\u7ef4\u5ea6\uff1a
arr <- array(1:24, dim = c(2, 3, 4))\nresult <- dim(arr)\nprint(result)  # \u8f93\u51fa\uff1a2 3 4\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u4e09\u7ef4\u6570\u7ec4 `arr`\uff0c\u5176\u7ef4\u5ea6\u4e3a 2 \u00d7 3 \u00d7 4\u3002\u4f7f\u7528 `dim()` \u51fd\u6570\u83b7\u53d6\u6570\u7ec4\u7684\u7ef4\u5ea6\u3002\n
3. \u83b7\u53d6\u6570\u636e\u6846\u7684\u7ef4\u5ea6\uff1a
df <- data.frame(A = 1:3, B = 4:6, C = 7:9)\nresult <- dim(df)\nprint(result)  # \u8f93\u51fa\uff1a3 3\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 `df`\uff0c\u5176\u4e2d\u5305\u542b 3 \u884c\u548c 3 \u5217\u3002\u4f7f\u7528 `dim()` \u51fd\u6570\u83b7\u53d6\u6570\u636e\u6846\u7684\u7ef4\u5ea6\u3002\n
4. \u8bbe\u7f6e\u77e9\u9635\u7684\u7ef4\u5ea6\uff1a
mat <- matrix(1:6, nrow = 2, ncol = 3)\ndim(mat) <- c(3, 2)\nprint(dim(mat))  # \u8f93\u51fa\uff1a3 2\n\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `dim()` \u51fd\u6570\u8bbe\u7f6e\u77e9\u9635\u7684\u7ef4\u5ea6\u4e3a 3 \u00d7 2\u3002\n
dim() \u51fd\u6570\u5728\u5904\u7406\u77e9\u9635\u3001\u6570\u7ec4\u548c\u6570\u636e\u6846\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u83b7\u53d6\u548c\u8bbe\u7f6e\u5bf9\u8c61\u7684\u7ef4\u5ea6\uff0c\u4ece\u800c\u66f4\u597d\u5730\u7406\u89e3\u548c\u64cd\u4f5c\u6570\u636e\u3002

"},{"location":"R/base-content/dimnames%28%29/","title":"Dimnames()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7528\u4e8e\u83b7\u53d6\u6216\u8bbe\u7f6e\u77e9\u9635\u7684\u884c\u540d\u548c\u5217\u540d\u7684\u51fd\u6570\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u77e9\u9635\u5bf9\u8c61\u3002dimnames() \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u884c\u540d\u548c\u5217\u540d\u7684\u5217\u8868\u3002\u5982\u679c\u5bf9\u8c61\u6ca1\u6709\u884c\u540d\u6216\u5217\u540d\uff0c\u5219\u8fd4\u56de\u4e00\u4e2a\u7a7a\u7684\u5217\u8868\u3002

dimnames(x)\n
- x\uff1a\u8981\u83b7\u53d6\u6216\u8bbe\u7f6e\u884c\u540d\u548c\u5217\u540d\u7684\u5bf9\u8c61\uff0c\u901a\u5e38\u662f\u77e9\u9635\u3001\u6570\u636e\u6846\u3002 1. \u83b7\u53d6\u77e9\u9635\u7684\u884c\u540d\u548c\u5217\u540d\uff1a
mat <- matrix(1:6, nrow = 2, ncol = 3)\nrownames(mat) <- c(\"Row1\", \"Row2\")\ncolnames(mat) <- c(\"Col1\", \"Col2\", \"Col3\")\nresult <- dimnames(mat)\nprint(result)\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `rownames()` \u51fd\u6570\u548c `colnames()` \u51fd\u6570\u5206\u522b\u4e3a\u77e9\u9635\u7684\u884c\u548c\u5217\u8bbe\u7f6e\u540d\u79f0\u3002\u6700\u540e\uff0c\u4f7f\u7528 `dimnames()` \u51fd\u6570\u83b7\u53d6\u77e9\u9635\u7684\u884c\u540d\u548c\u5217\u540d\u3002\n\n# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a\n$Row.names\n[1] \"Row1\" \"Row2\"\n$colnames\n[1] \"Col1\" \"Col2\" \"Col3\"\n
2. \u8bbe\u7f6e\u77e9\u9635\u7684\u884c\u540d\u548c\u5217\u540d\uff1a
mat <- matrix(1:6, nrow = 2, ncol = 3)\ndimnames(mat) <- list(c(\"Row1\", \"Row2\"), c(\"Col1\", \"Col2\", \"Col3\"))\nprint(dimnames(mat))\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 `mat`\uff0c\u7136\u540e\u4f7f\u7528 `dimnames()` \u51fd\u6570\u4e3a\u77e9\u9635\u7684\u884c\u548c\u5217\u8bbe\u7f6e\u540d\u79f0\u3002\n\n# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a\n$Row.names\n\\[1\\] \"Row1\" \"Row2\"\n$colnames\n\\[1\\] \"Col1\" \"Col2\" \"Col3\"\n

dimnames() \u51fd\u6570\u5728\u5904\u7406\u77e9\u9635\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u83b7\u53d6\u548c\u8bbe\u7f6e\u77e9\u9635\u7684\u884c\u540d\u548c\u5217\u540d\uff0c\u4ece\u800c\u66f4\u597d\u5730\u7406\u89e3\u548c\u64cd\u4f5c\u6570\u636e\u3002

"},{"location":"R/base-content/dnorm%28%29/","title":"Dnorm()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08PDF\uff09\u3002\u4e5f\u5c31\u662f\u6b63\u6001\u5206\u5e03\u51fd\u6570\uff08\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff09

dnorm(x, mean = 0, sd = 1)\n

\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a

  • x\uff1a\u8981\u8ba1\u7b97\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u7684\u6570\u503c\u3002
  • mean\uff1a\u6b63\u6001\u5206\u5e03\u7684\u5747\u503c\uff08\u9ed8\u8ba4\u4e3a 0\uff09\u3002
  • sd\uff1a\u6b63\u6001\u5206\u5e03\u7684\u6807\u51c6\u5dee\uff08\u9ed8\u8ba4\u4e3a 1\uff09\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 dnorm() \u51fd\u6570\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff1a

# \u8ba1\u7b97\u5747\u503c\u4e3a 0\u3001\u6807\u51c6\u5dee\u4e3a 1 \u7684\u6b63\u6001\u5206\u5e03\u5728 x = 1 \u5904\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\npdf <- dnorm(1)\n\n# \u6253\u5370\u7ed3\u679c\nprint(pdf)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 dnorm() \u51fd\u6570\u8ba1\u7b97\u5747\u503c\u4e3a 0\u3001\u6807\u51c6\u5dee\u4e3a 1 \u7684\u6b63\u6001\u5206\u5e03\u5728 x = 1 \u5904\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a pdf \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 pdf \u6765\u67e5\u770b\u8ba1\u7b97\u5f97\u5230\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cdnorm() \u51fd\u6570\u8ba1\u7b97\u7684\u662f\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u3002\u5982\u679c\u9700\u8981\u8ba1\u7b97\u5176\u4ed6\u5747\u503c\u548c\u6807\u51c6\u5dee\u7684\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 mean \u548c sd \u53c2\u6570\u7684\u503c\u6765\u5b9e\u73b0\u3002

"},{"location":"R/base-content/dnorm%28%29/#dnorm0-03989423","title":"dnorm(0) \u4e3a0.3989423?","text":"

\u5c31\u662f\u5bf9\u5e94x\u503c\uff0c\u5728\u5bc6\u5ea6\u66f2\u7ebf\u4e0a\u7684\u9ad8 \u5728R\u8bed\u8a00\u4e2d\uff0cdnorm()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\uff08\u9ad8\u65af\u5206\u5e03\uff09\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002\u8be5\u51fd\u6570\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u8f93\u5165\u503c\uff08\u6216\u4e00\u7ec4\u8f93\u5165\u503c\uff09\u4ee5\u53ca\u6b63\u6001\u5206\u5e03\u7684\u5747\u503c\uff08mean\uff09\u548c\u6807\u51c6\u5dee\uff08standard deviation\uff09\u3002 \u5728\u60a8\u63d0\u4f9b\u7684\u5177\u4f53\u793a\u4f8b\u4e2d\uff0cdnorm(0, mean = 0, sd = 1)\u8ba1\u7b97\u7684\u662f\u5728\u5747\u503c\u4e3a0\u3001\u6807\u51c6\u5dee\u4e3a1\u7684\u6b63\u6001\u5206\u5e03\u4e2d\uff0c\u8f93\u5165\u503c\u4e3a0\u65f6\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002 \u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u662f\u4e00\u4e2a\u949f\u5f62\u66f2\u7ebf\uff0c\u5176\u6700\u9ad8\u70b9\u4f4d\u4e8e\u5747\u503c\u5904\uff0c\u6807\u51c6\u5dee\u51b3\u5b9a\u4e86\u66f2\u7ebf\u7684\u5bbd\u5ea6\u3002\u5728\u6807\u51c6\u6b63\u6001\u5206\u5e03\uff08\u5747\u503c\u4e3a0\uff0c\u6807\u51c6\u5dee\u4e3a1\uff09\u4e2d\uff0c\u8f93\u5165\u503c\u4e3a0\u65f6\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u662f\u4e00\u4e2a\u5e38\u6570\u3002 \u5177\u4f53\u8ba1\u7b97\u8fc7\u7a0b\u5982\u4e0b\u6240\u793a\uff1a - dnorm(0, mean = 0, sd = 1)\u8868\u793a\u5728\u5747\u503c\u4e3a0\u3001\u6807\u51c6\u5dee\u4e3a1\u7684\u6b63\u6001\u5206\u5e03\u4e2d\uff0c\u8ba1\u7b97\u8f93\u5165\u503c\u4e3a0\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002 - \u6807\u51c6\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u5728\u8f93\u5165\u503c\u4e3a0\u65f6\u662f\u4e00\u4e2a\u5e38\u6570\uff0c\u5176\u503c\u4e3a0.3989423\u3002 \u56e0\u6b64\uff0cdnorm(0, mean = 0, sd = 1)\u7684\u7ed3\u679c\u4e3a0.3989423\u3002\u8fd9\u8868\u793a\u5728\u6807\u51c6\u6b63\u6001\u5206\u5e03\u4e2d\uff0c\u8f93\u5165\u503c\u4e3a0\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u4e3a0.3989423\uff0c\u53730\u70b9\u5904\u7684\u66f2\u7ebf\u9ad8\u5ea6\u4e3a0.3989423\u3002

"},{"location":"R/base-content/droplevels%28%29/","title":"Droplevels()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cdroplevels()\u51fd\u6570\u7528\u4e8e\u53bb\u9664\u56e0\u5b50\uff08factor\uff09\u5bf9\u8c61\u4e2d\u6ca1\u6709\u51fa\u73b0\u7684\u6c34\u5e73\uff08levels\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

droplevels(x, ...)\n

\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u56e0\u5b50\u5bf9\u8c61\u3002 - ...\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5176\u4ed6\u56e0\u5b50\u5bf9\u8c61\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528droplevels()\u51fd\u6570\u53bb\u9664\u56e0\u5b50\u4e2d\u6ca1\u6709\u51fa\u73b0\u7684\u6c34\u5e73\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b\u56e0\u5b50\nfactor_vector <- factor(c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\"))\n\n# \u53bb\u9664\u56e0\u5b50\u4e2d\u6ca1\u6709\u51fa\u73b0\u7684\u6c34\u5e73\ncleared_factor <- droplevels(factor_vector)\n\n# \u6253\u5370\u5904\u7406\u540e\u7684\u56e0\u5b50\nprint(cleared_factor)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u56e0\u5b50factor_vector\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u6c34\u5e73\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528droplevels()\u51fd\u6570\u5bf9factor_vector\u8fdb\u884c\u5904\u7406\uff0c\u53bb\u9664\u4e86\u56e0\u5b50\u4e2d\u6ca1\u6709\u51fa\u73b0\u7684\u6c34\u5e73\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u5904\u7406\u540e\u7684\u56e0\u5b50cleared_factor\uff0c\u5b83\u5c06\u53ea\u5305\u542b\u51fa\u73b0\u8fc7\u7684\u6c34\u5e73\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] A B A C B C\nLevels: A B C\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230cleared_factor\u53bb\u9664\u4e86\u56e0\u5b50\u4e2d\u6ca1\u6709\u51fa\u73b0\u7684\u6c34\u5e73\uff0c\u4ec5\u4fdd\u7559\u4e86\"A\"\u3001\"B\"\u548c\"C\"\u8fd9\u4e09\u4e2a\u6c34\u5e73\u3002

"},{"location":"R/base-content/dt%28%29/","title":"Dt()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97 t \u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\uff08PDF\uff09\u503c\u3002

dt(x, df)\n
\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a - x\uff1a\u8981\u8ba1\u7b97\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u7684\u6570\u503c\u3002 - df\uff1at \u5206\u5e03\u7684\u81ea\u7531\u5ea6\u53c2\u6570\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 dt() \u51fd\u6570\u8ba1\u7b97 t \u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\uff1a

# \u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a 10 \u7684 t \u5206\u5e03\u5728 x = 1 \u5904\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\npdf <- dt(1, df = 10)\n\n# \u6253\u5370\u7ed3\u679c\nprint(pdf)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 dt() \u51fd\u6570\u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a 10 \u7684 t \u5206\u5e03\u5728 x = 1 \u5904\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a pdf \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 pdf \u6765\u67e5\u770b\u8ba1\u7b97\u5f97\u5230\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cdt() \u51fd\u6570\u8ba1\u7b97\u7684\u662f t \u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u503c\u3002\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u63cf\u8ff0\u4e86\u968f\u673a\u53d8\u91cf\u5728\u7ed9\u5b9a\u53d6\u503c\u5904\u7684\u6982\u7387\u5bc6\u5ea6\u3002\u901a\u8fc7\u8c03\u6574 df \u53c2\u6570\uff0c\u53ef\u4ee5\u63a7\u5236 t \u5206\u5e03\u7684\u81ea\u7531\u5ea6\u3002

"},{"location":"R/base-content/duplicated%28%29/","title":"Duplicated()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cduplicated() \u51fd\u6570\u662f\u57fa\u7840\u7684 R \u51fd\u6570\uff0c\u7528\u4e8e\u6807\u8bc6\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u91cd\u590d\u5143\u7d20\u3002\u8fd9\u4e2a\u51fd\u6570\u4e5f\u4e0d\u5c5e\u4e8e\u7279\u5b9a\u7684\u5305\uff0c\u800c\u662f R \u8bed\u8a00\u7684\u57fa\u672c\u51fd\u6570\uff0c\u53ef\u4ee5\u5728\u4e0d\u5bfc\u5165\u5176\u4ed6\u5305\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u4f7f\u7528\u3002

\u529f\u80fd\uff1a \u6807\u8bc6\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u91cd\u590d\u5143\u7d20\u3002

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nvec <- c(1, 2, 3, 1, 2, 4, 5)\n\n# \u4f7f\u7528 duplicated() \u67e5\u627e\u91cd\u590d\u5143\u7d20\nduplicated_elements <- duplicated(vec)\n\n# \u6253\u5370\u7ed3\u679c\nprint(duplicated_elements)\n\n# \u8f93\u51fa\uff1a\n[1] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE\n

\u5b9a\u4e49\uff1a

duplicated(x, incomparables = FALSE, fromLast = FALSE)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u8981\u68c0\u67e5\u91cd\u590d\u5143\u7d20\u7684\u5411\u91cf\u6216\u6570\u636e\u6846\u3002 - incomparables\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\u6216\u5411\u91cf\uff0c\u6307\u5b9a\u5728\u6bd4\u8f83\u5143\u7d20\u65f6\u662f\u5426\u5e94\u5c06\u67d0\u4e9b\u503c\u89c6\u4e3a\u4e0d\u53ef\u6bd4\u8f83\u7684\u3002\u9ed8\u8ba4\u4e3a FALSE\u3002 - fromLast\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u4ece\u5411\u91cf\u7684\u672b\u5c3e\u5f00\u59cb\u67e5\u627e\u91cd\u590d\u5143\u7d20\u3002\u9ed8\u8ba4\u4e3a FALSE\u3002

\u8fd4\u56de\u503c\uff1a \u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\uff0c\u957f\u5ea6\u4e0e\u8f93\u5165\u5411\u91cf\u76f8\u540c\uff0c\u5176\u4e2d TRUE \u8868\u793a\u91cd\u590d\u5143\u7d20\uff0cFALSE \u8868\u793a\u975e\u91cd\u590d\u5143\u7d20\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cduplicated(vec) \u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\uff0c\u5176\u4e2d TRUE \u8868\u793a\u8f93\u5165\u5411\u91cf vec \u4e2d\u7684\u91cd\u590d\u5143\u7d20\uff0c\u800c FALSE \u8868\u793a\u975e\u91cd\u590d\u5143\u7d20\u3002\u901a\u8fc7\u67e5\u770b\u8f93\u51fa\uff0c\u53ef\u4ee5\u770b\u5230\u5728\u5411\u91cf\u4e2d\u54ea\u4e9b\u5143\u7d20\u662f\u91cd\u590d\u7684\u3002

"},{"location":"R/base-content/expand.grid%28%29/","title":"Expand.grid()","text":"

\u51fd\u6570\u7528\u4e8e\u751f\u6210\u591a\u4e2a\u5411\u91cf\u7684\u7b1b\u5361\u5c14\u79ef\u3002\u5b83\u63a5\u53d7\u591a\u4e2a\u53c2\u6570\uff0c\u6bcf\u4e2a\u53c2\u6570\u90fd\u4ee3\u8868\u4e00\u4e2a\u5411\u91cf\uff0c\u51fd\u6570\u4f1a\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u6240\u6709\u53ef\u80fd\u7684\u7ec4\u5408\u3002

expand.grid(...)\n
- ...: \u4e00\u4e2a\u6216\u591a\u4e2a\u5411\u91cf\uff0c\u7528\u4e8e\u751f\u6210\u5176\u7b1b\u5361\u5c14\u79ef\u3002\u6bcf\u4e2a\u53c2\u6570\u90fd\u5e94\u8be5\u662f\u4e00\u4e2a\u5411\u91cf\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u6570\u503c\u5411\u91cf\u3001\u5b57\u7b26\u5411\u91cf\u3001\u56e0\u5b50\u5411\u91cf\u7b49\u3002
# \u793a\u4f8b\u6570\u636e\nvec1 <- c(\"A\", \"B\", \"C\")\nvec2 <- c(1, 2)\nvec3 <- c(TRUE, FALSE)\n\n# \u751f\u6210\u7b1b\u5361\u5c14\u79ef\nresult <- expand.grid(vec1, vec2, vec3)\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e09\u4e2a\u5411\u91cf vec1\u3001vec2 \u548c vec3\uff0c\u5206\u522b\u5305\u542b\u4e86\u4e0d\u540c\u7684\u5143\u7d20\u3002\u901a\u8fc7\u8c03\u7528 expand.grid() \u51fd\u6570\uff0c\u5e76\u5c06\u8fd9\u4e09\u4e2a\u5411\u91cf\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u8be5\u51fd\u6570\uff0c\u6211\u4eec\u751f\u6210\u4e86\u8fd9\u4e09\u4e2a\u5411\u91cf\u7684\u7b1b\u5361\u5c14\u79ef\u3002\u7ed3\u679c\u5b58\u50a8\u5728 result \u4e2d\uff0c\u5e76\u901a\u8fc7\u6253\u5370\u8bed\u53e5\u8f93\u51fa\u3002 \u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\u6240\u793a\uff1a

  Var1 Var2  Var3\n1    A    1  TRUE\n2    B    1  TRUE\n3    C    1  TRUE\n4    A    2  TRUE\n5    B    2  TRUE\n6    C    2  TRUE\n7    A    1 FALSE\n8    B    1 FALSE\n9    C    1 FALSE\n10   A    2 FALSE\n11   B    2 FALSE\n12   C    2 FALSE\n

\u5728\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u6bcf\u4e00\u884c\u4ee3\u8868\u4e00\u4e2a\u7b1b\u5361\u5c14\u79ef\u7684\u7ec4\u5408\uff0c\u5217\u540d\u4ee5 Var \u5f00\u5934\uff0c\u540e\u9762\u8ddf\u7740\u5bf9\u5e94\u7684\u53c2\u6570\u5e8f\u53f7\u3002\u4f8b\u5982\uff0cVar1 \u5217\u5bf9\u5e94 vec1 \u7684\u5143\u7d20\uff0cVar2 \u5217\u5bf9\u5e94 vec2 \u7684\u5143\u7d20\uff0cVar3 \u5217\u5bf9\u5e94 vec3 \u7684\u5143\u7d20\u3002\u8fd9\u6837\uff0c\u6211\u4eec\u5c31\u5f97\u5230\u4e86\u6240\u6709\u53ef\u80fd\u7684\u7ec4\u5408\u3002

"},{"location":"R/base-content/factor%28%29/","title":"Factor()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cfactor()\u51fd\u6570\u7528\u4e8e\u5c06\u4e00\u4e2a\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\uff08factor\uff09\u7c7b\u578b\u7684\u6570\u636e\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

factor(x, levels, labels = levels, exclude = NA, ordered = is.ordered(x))\n

\u53c2\u6570\uff1a - x\uff1a\u8981\u8f6c\u6362\u4e3a\u56e0\u5b50\u7684\u5411\u91cf\u6216\u6570\u636e\u3002

  • levels\uff1a\u6307\u5b9a\u56e0\u5b50\u7684\u6c34\u5e73\uff08levels\uff09\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793a\u56e0\u5b50\u7684\u6c34\u5e73\u503c\uff0c\u5bf9\u5e94\u4e8e\u539f\u59cb\u5411\u91cfvector\u7684\u552f\u4e00\u503c\u3002\u6216\u8005\u662f\u4e00\u4e2a\u6574\u6570\uff0c\u8868\u793a\u8981\u5c06x\u7684\u552f\u4e00\u503c\u4f5c\u4e3a\u6c34\u5e73\u503c\u3002

  • labels\uff1a\u6307\u5b9a\u56e0\u5b50\u6c34\u5e73\u7684\u6807\u7b7e\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6c34\u5e73\u7684\u6807\u7b7e\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u6807\u7b7e\u3002

  • exclude\uff1a\u8981\u6392\u9664\u7684\u503c\uff0c\u4e0d\u5305\u62ec\u5728\u56e0\u5b50\u4e2d\u3002\u9ed8\u8ba4\u4e3aNA\u3002

  • ordered\uff1a\u662f\u5426\u521b\u5efa\u6709\u5e8f\u56e0\u5b50\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u521b\u5efa\u6709\u5e8f\u56e0\u5b50\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u521b\u5efa\u65e0\u5e8f\u56e0\u5b50\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528factor()\u51fd\u6570\u5c06\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b\u5411\u91cf\nvector <- c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\")\n\n# \u5c06\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\nfactor_vector <- factor(vector)\n\n# \u6253\u5370\u56e0\u5b50\nprint(factor_vector)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u5411\u91cfvector\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u5b57\u7b26\u5143\u7d20\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528factor()\u51fd\u6570\u5c06vector\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\u7684\u6570\u636e\u3002\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6ca1\u6709\u6307\u5b9alevels\u53c2\u6570\uff0c\u56e0\u6b64\u51fd\u6570\u4f1a\u6839\u636evector\u4e2d\u7684\u552f\u4e00\u503c\u81ea\u52a8\u521b\u5efa\u56e0\u5b50\u7684\u6c34\u5e73\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u8f6c\u6362\u540e\u7684\u56e0\u5b50factor_vector\uff0c\u5b83\u5c06\u5411\u91cf\u7684\u6bcf\u4e2a\u5143\u7d20\u8f6c\u6362\u4e3a\u5bf9\u5e94\u7684\u56e0\u5b50\u6c34\u5e73\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] A B A C B C\nLevels: A B C\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u56e0\u5b50factor_vector\u7684\u6c34\u5e73\u4e3a\"A\"\u3001\"B\"\u548c\"C\"\uff0c\u5bf9\u5e94\u4e8e\u539f\u59cb\u5411\u91cfvector\u7684\u552f\u4e00\u503c\u3002

"},{"location":"R/base-content/factor%28%29/#x","title":"\u5bf9x\u8f74\u7684\u6570\u503c\u8fdb\u884c\u5206\u7c7b","text":"

\u5c06x\u8f74\u8f6c\u5316\u4e3a\u5206\u7c7b\u53d8\u91cf\uff0c\u6c47\u603b\u65f6\uff0c\u80fd\u5728\u4e00\u5f20\u56fe\u7247\u4e0a\u663e\u793a\u591a\u4e2a\u6c34\u5e73\u7684\u7bb1\u7ebf\u56fe\u3002

"},{"location":"R/base-content/factor/","title":"Factor","text":"

R\u8bed\u8a00\u4e2d\u7684\u56e0\u5b50\uff08factors\uff09\u6570\u636e\u7c7b\u578b\u662f\u4e00\u79cd\u7528\u4e8e\u8868\u793a\u5206\u7c7b\u53d8\u91cf\u7684\u7279\u6b8a\u7c7b\u578b\u3002\u5b83\u53ef\u4ee5\u5c06\u5b57\u7b26\u578b\u7684\u5206\u7c7b\u53d8\u91cf\u8f6c\u5316\u4e3a\u6709\u5e8f\u6216\u65e0\u5e8f\u7684\u56e0\u5b50\u578b\u53d8\u91cf\uff0c\u4fbf\u4e8e\u540e\u7eed\u7684\u63cf\u8ff0\u3001\u6c47\u603b\u3001\u53ef\u89c6\u5316\u548c\u5efa\u6a21\u7b49\u64cd\u4f5c\u3002

"},{"location":"R/base-content/factor/#_1","title":"\u521b\u5efa\u56e0\u5b50","text":"

\u5982\u4f55\u7406\u89e3R\u4e2d\u56e0\u5b50(factor)\u7684\u6982\u5ff5? - \u7334\u5b50\u7684\u56de\u7b54 - \u77e5\u4e4e https://www.zhihu.com/question/48472404/answer/164790545

\u5728R\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528factor()\u51fd\u6570\u6765\u521b\u5efa\u56e0\u5b50\u3002\u8be5\u51fd\u6570\u7684\u53c2\u6570\u5305\u62ec\uff1a - x\uff1a\u8981\u521b\u5efa\u56e0\u5b50\u7684\u6570\u636e\u5411\u91cf\u3002 - levels\uff1a\u6307\u5b9a\u56e0\u5b50\u7684\u5404\u6c34\u5e73\u503c\uff0c\u9ed8\u8ba4\u4e3a\u6570\u636e\u5411\u91cf\u4e2d\u7684\u4e0d\u91cd\u590d\u503c\u3002 - labels\uff1a\u8bbe\u7f6e\u5404\u6c34\u5e73\u7684\u540d\u79f0\uff0c\u4e0e\u6c34\u5e73\u4e00\u4e00\u5bf9\u5e94\u3002 - ordered\uff1a\u8bbe\u7f6e\u662f\u5426\u5bf9\u56e0\u5b50\u6c34\u5e73\u8fdb\u884c\u6392\u5e8f\uff0c\u9ed8\u8ba4\u4e3aFALSE\u8868\u793a\u65e0\u5e8f\u56e0\u5b50\uff0cTRUE\u8868\u793a\u6709\u5e8f\u56e0\u5b50\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u521b\u5efa\u56e0\u5b50\u7684\u793a\u4f8b\uff1a

sex <- factor(c('f', 'm', 'f', 'f', 'm'), levels = c('f', 'm'), labels = c('female', 'male'), ordered = TRUE) [[2]](https://blog.csdn.net/weixin_46587777/article/details/124985611)\n

"},{"location":"R/base-content/factor/#_2","title":"\u4f7f\u7528\u56e0\u5b50","text":"

\u521b\u5efa\u5b8c\u56e0\u5b50\u540e\uff0c\u53ef\u4ee5\u5bf9\u5176\u8fdb\u884c\u5404\u79cd\u64cd\u4f5c\uff0c\u4f8b\u5982\u6392\u5e8f\u3001\u7edf\u8ba1\u9891\u6570\u548c\u7ed8\u56fe\u7b49\u3002\u56e0\u5b50\u5177\u6709\u987a\u5e8f\uff0c\u53ef\u4ee5\u6309\u7167\u8bbe\u5b9a\u7684\u987a\u5e8f\u8fdb\u884c\u64cd\u4f5c\u3002

\u53ef\u4ee5\u4f7f\u7528levels()\u51fd\u6570\u6765\u8bbf\u95ee\u6216\u4fee\u6539\u56e0\u5b50\u7684\u6c34\u5e73\u503c\u3002\u8be5\u51fd\u6570\u53ef\u4ee5\u7528\u4e8e\u67e5\u770b\u56e0\u5b50\u7684\u6c34\u5e73\u503c\u6216\u4fee\u6539\u6c34\u5e73\u503c\u7684\u987a\u5e8f\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528\u56e0\u5b50\u7684\u793a\u4f8b\uff1a

levels(sex) # \u67e5\u770b\u56e0\u5b50\u7684\u6c34\u5e73\u503c\n

\u56e0\u5b50\u662f\u4ee5\u6574\u6570\u5411\u91cf\u7684\u5f62\u5f0f\u5b58\u50a8\u7684\uff0c\u6bcf\u4e2a\u6574\u6570\u5bf9\u5e94\u4e00\u4e2a\u6c34\u5e73\u503c\u3002\u8fd9\u6837\u53ef\u4ee5\u5728\u4e0d\u6539\u53d8\u539f\u59cb\u6570\u636e\u7684\u60c5\u51b5\u4e0b\u89c4\u5b9a\u987a\u5e8f\uff0c\u5e76\u8282\u7701\u5b58\u50a8\u7a7a\u95f4\u3002

"},{"location":"R/base-content/factor/#_3","title":"\u603b\u7ed3","text":"

\u56e0\u5b50\u662fR\u8bed\u8a00\u4e2d\u7528\u4e8e\u8868\u793a\u5206\u7c7b\u53d8\u91cf\u7684\u6570\u636e\u7c7b\u578b\u3002\u5b83\u53ef\u4ee5\u5c06\u5b57\u7b26\u578b\u7684\u5206\u7c7b\u53d8\u91cf\u8f6c\u5316\u4e3a\u6709\u5e8f\u6216\u65e0\u5e8f\u7684\u56e0\u5b50\u578b\u53d8\u91cf\uff0c\u65b9\u4fbf\u540e\u7eed\u7684\u64cd\u4f5c\u548c\u5206\u6790\u3002

"},{"location":"R/base-content/format%28%29/","title":"Format()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cformat()\u51fd\u6570\u7528\u4e8e\u683c\u5f0f\u5316\u6570\u503c\u6216\u65e5\u671f\u65f6\u95f4\u5bf9\u8c61\u7684\u663e\u793a\u65b9\u5f0f\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

format(x, ...)\n

\u53c2\u6570\uff1a - x\uff1a\u8981\u683c\u5f0f\u5316\u7684\u6570\u503c\u3001\u65e5\u671f\u65f6\u95f4\u5bf9\u8c61\u6216\u5176\u4ed6\u53ef\u8f6c\u6362\u4e3a\u5b57\u7b26\u7684\u5bf9\u8c61\u3002 - ...\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u683c\u5f0f\u5316\u7684\u9009\u9879\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528format()\u51fd\u6570\u683c\u5f0f\u5316\u6570\u503c\u548c\u65e5\u671f\u65f6\u95f4\u7684\u793a\u4f8b\uff1a

# \u683c\u5f0f\u5316\u6570\u503c\nnum <- 12345.6789\nformatted_num <- format(num, digits = 2, scientific = FALSE)\nprint(formatted_num)\n\n# \u683c\u5f0f\u5316\u65e5\u671f\u65f6\u95f4\ndate <- as.Date(\"2021-09-30\")\nformatted_date <- format(date, format = \"%Y-%m-%d\")\nprint(formatted_date)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5b9a\u4e49\u4e86\u4e00\u4e2a\u6570\u503cnum\u548c\u4e00\u4e2a\u65e5\u671fdate\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528format()\u51fd\u6570\u5bf9\u6570\u503cnum\u8fdb\u884c\u683c\u5f0f\u5316\uff0c\u6307\u5b9a\u4e86\u663e\u793a2\u4f4d\u5c0f\u6570\uff0c\u5e76\u5173\u95ed\u79d1\u5b66\u8ba1\u6570\u6cd5\u3002\u683c\u5f0f\u5316\u540e\u7684\u7ed3\u679c\u4fdd\u5b58\u5728formatted_num\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\u3002

\u63a5\u7740\uff0c\u6211\u4eec\u4f7f\u7528format()\u51fd\u6570\u5bf9\u65e5\u671fdate\u8fdb\u884c\u683c\u5f0f\u5316\uff0c\u6307\u5b9a\u4e86\u65e5\u671f\u7684\u683c\u5f0f\u4e3a\u5e74-\u6708-\u65e5\uff08%Y-%m-%d\uff09\u3002\u683c\u5f0f\u5316\u540e\u7684\u7ed3\u679c\u4fdd\u5b58\u5728formatted_date\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] \"12345.68\"\n[1] \"2021-09-30\"\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6570\u503cnum\u88ab\u683c\u5f0f\u5316\u4e3a\u5e26\u6709\u4e24\u4f4d\u5c0f\u6570\u7684\u5b57\u7b26\u4e32\uff0c\u800c\u65e5\u671fdate\u88ab\u683c\u5f0f\u5316\u4e3a\"\u5e74-\u6708-\u65e5\"\u7684\u5f62\u5f0f\u3002

# \u793a\u4f8b\u56e0\u5b50\nfactor_vector <- factor(c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\"))\n\n# \u83b7\u53d6\u56e0\u5b50\u7684\u6c34\u5e73\u6570\u91cf\nnum_levels <- nlevels(factor_vector)\n\n# \u6253\u5370\u56e0\u5b50\u7684\u6c34\u5e73\u6570\u91cf\nprint(num_levels)\n\n### \u7ed3\u679c\n[1] 3\n
"},{"location":"R/base-content/function%28%29/","title":"Function()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\"lambda\" \u901a\u5e38\u6307\u7684\u662f\u533f\u540d\u51fd\u6570\uff08anonymous function\uff09\u3002\u533f\u540d\u51fd\u6570\u662f\u4e00\u79cd\u65e0\u9700\u4e3a\u5176\u5b9a\u4e49\u540d\u79f0\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u5728\u9700\u8981\u51fd\u6570\u7684\u5730\u65b9\u76f4\u63a5\u5b9a\u4e49\u548c\u4f7f\u7528\u3002R \u8bed\u8a00\u4e2d\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528 function() \u5173\u952e\u5b57\u6765\u521b\u5efa\u533f\u540d\u51fd\u6570\u3002

\u4e0b\u9762\u662f\u533f\u540d\u51fd\u6570\u7684\u4e00\u4e9b\u793a\u4f8b\uff1a

  1. \u57fa\u672c\u7684\u533f\u540d\u51fd\u6570\u793a\u4f8b\uff1a
# \u5b9a\u4e49\u533f\u540d\u51fd\u6570\u5e76\u8d4b\u503c\u7ed9\u53d8\u91cf\nadd_one <- function(x) x + 1\n\n# \u4f7f\u7528\u533f\u540d\u51fd\u6570\nresult <- add_one(3)\nprint(result)\n

\u8f93\u51fa\uff1a

[1] 4\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 function() \u5173\u952e\u5b57\u5b9a\u4e49\u4e86\u4e00\u4e2a\u533f\u540d\u51fd\u6570\uff0c\u5e76\u5c06\u5176\u8d4b\u503c\u7ed9\u53d8\u91cf add_one\u3002\u7136\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u50cf\u8c03\u7528\u5176\u4ed6\u51fd\u6570\u4e00\u6837\u8c03\u7528\u8be5\u533f\u540d\u51fd\u6570\uff0c\u5e76\u4f20\u9012\u53c2\u6570\u3002

  1. \u76f4\u63a5\u5728\u51fd\u6570\u8c03\u7528\u4e2d\u5b9a\u4e49\u533f\u540d\u51fd\u6570\uff1a
# \u4f7f\u7528\u533f\u540d\u51fd\u6570\u4f5c\u4e3a\u53c2\u6570\nresult <- sapply(1:5, function(x) x * 2)\nprint(result)\n

\u8f93\u51fa\uff1a

[1]  2  4  6  8 10\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5728 sapply() \u51fd\u6570\u7684\u8c03\u7528\u4e2d\u76f4\u63a5\u5b9a\u4e49\u4e86\u533f\u540d\u51fd\u6570\u3002\u8be5\u533f\u540d\u51fd\u6570\u5c06\u6bcf\u4e2a\u5143\u7d20\u4e58\u4ee5 2\uff0c\u5e76\u8fd4\u56de\u7ed3\u679c\u3002

\u533f\u540d\u51fd\u6570\u5728\u9700\u8981\u4f7f\u7528\u4e00\u6b21\u6027\u51fd\u6570\u6216\u5c06\u51fd\u6570\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u5176\u4ed6\u51fd\u6570\u65f6\u975e\u5e38\u6709\u7528\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5728 R \u4e2d\u521b\u5efa\u548c\u4f7f\u7528\u533f\u540d\u51fd\u6570\uff0c\u4ece\u800c\u589e\u5f3a\u4ee3\u7801\u7684\u7075\u6d3b\u6027\u548c\u53ef\u8bfb\u6027\u3002

"},{"location":"R/base-content/function%28%29/#_1","title":"...\u63a5\u6536\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c\u5f53\u5728\u51fd\u6570\u5b9a\u4e49\u4e2d\u5b9a\u4e49\u591a\u4e2a\u53c2\u6570\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\"...\"\u8fd9\u4e2a\u7b26\u53f7\u7b80\u5199\u6765\u8868\u793a\u51fd\u6570\u53ef\u4ee5\u63a5\u53d7\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570\u3002

\u4f8b\u5982\uff0c\u5982\u679c\u4f60\u60f3\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\uff0c\u8be5\u51fd\u6570\u63a5\u53d7\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570\uff0c\u5e76\u5c06\u5b83\u4eec\u76f8\u52a0\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a

add_numbers <- function(...) \n{    sum <- 0    \n     for (num in list(...)) { \n      sum <- sum + num    \n      } \n     return(sum)  }\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\"...\"\u8868\u793a\u51fd\u6570\u53ef\u4ee5\u63a5\u53d7\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570\uff0c\u5e76\u5c06\u5b83\u4eec\u5b58\u50a8\u5728\u4e00\u4e2a\u5217\u8868\u4e2d\u3002\u7136\u540e\uff0c\u901a\u8fc7\u5faa\u73af\u904d\u5386\u8fd9\u4e2a\u5217\u8868\uff0c\u5c06\u6240\u6709\u53c2\u6570\u76f8\u52a0\u5e76\u8fd4\u56de\u7ed3\u679c\u3002

"},{"location":"R/base-content/getwd%28%29/","title":"Getwd()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cgetwd()\u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u5f53\u524d\u7684\u5de5\u4f5c\u76ee\u5f55\uff08working directory\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

getwd()\n

\u53c2\u6570\uff1a getwd()\u51fd\u6570\u6ca1\u6709\u4efb\u4f55\u53c2\u6570\u3002

\u8fd4\u56de\u503c\uff1a getwd()\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u8def\u5f84\u7684\u5b57\u7b26\u5411\u91cf\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528getwd()\u51fd\u6570\u83b7\u53d6\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u7684\u793a\u4f8b\uff1a

# \u83b7\u53d6\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\ncurrent_dir <- getwd()\n\n# \u6253\u5370\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\nprint(current_dir)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528getwd()\u51fd\u6570\u83b7\u53d6\u5f53\u524d\u7684\u5de5\u4f5c\u76ee\u5f55\uff0c\u5e76\u5c06\u5176\u8d4b\u503c\u7ed9\u53d8\u91cfcurrent_dir\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528print()\u51fd\u6570\u6253\u5370current_dir\uff0c\u5373\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u7684\u8def\u5f84\u3002

\u8bf7\u6ce8\u610f\uff0cgetwd()\u51fd\u6570\u7684\u8fd4\u56de\u503c\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u56e0\u4e3a\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u5de5\u4f5c\u76ee\u5f55\u53ef\u80fd\u5305\u542b\u591a\u4e2a\u8def\u5f84\u3002

\u6b64\u5916\uff0cR\u8bed\u8a00\u4e2d\u8fd8\u6709\u5176\u4ed6\u4e0e\u5de5\u4f5c\u76ee\u5f55\u76f8\u5173\u7684\u51fd\u6570\uff0c\u4f8b\u5982setwd()\u51fd\u6570\u7528\u4e8e\u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\uff0cdir()\u51fd\u6570\u7528\u4e8e\u5217\u51fa\u76ee\u5f55\u4e2d\u7684\u6587\u4ef6\u548c\u5b50\u76ee\u5f55\u7b49\u3002\u4f60\u53ef\u4ee5\u8fdb\u4e00\u6b65\u63a2\u7d22\u8fd9\u4e9b\u51fd\u6570\u4ee5\u6ee1\u8db3\u7279\u5b9a\u7684\u9700\u6c42\u3002

"},{"location":"R/base-content/glm%28%29/","title":"Glm()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cglm()\u51fd\u6570\u662f\u7528\u4e8e\u62df\u5408\u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\u7684\u5185\u7f6e\u51fd\u6570\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

glm(formula, data, family = gaussian, subset, weights, na.action,\n    start = NULL, etastart, mustart, offset, control = list(...),\n    model = TRUE, method = \"glm.fit\", x = FALSE, y = TRUE, contrasts = NULL,\n    ...)\n

\u53c2\u6570\uff1a - formula\uff1a\u4e00\u4e2a\u516c\u5f0f\uff0c\u6307\u5b9a\u4e86\u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\u7684\u5f62\u5f0f\u3002\u901a\u5e38\u5305\u542b\u81ea\u53d8\u91cf\u548c\u56e0\u53d8\u91cf\u7684\u5173\u7cfb\u3002

  • data\uff1a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5305\u542b\u7528\u4e8e\u6784\u5efa\u6a21\u578b\u7684\u6240\u6709\u53d8\u91cf\u3002

  • family\uff1a\u4e00\u4e2a\u63cf\u8ff0\u8bef\u5dee\u7ed3\u6784\u548c\u94fe\u63a5\u51fd\u6570\u7684\u5bf9\u8c61\u3002\u9ed8\u8ba4\u4e3a\u9ad8\u65af\u5206\u5e03\uff0c\u5373\u9002\u7528\u4e8e\u666e\u901a\u7ebf\u6027\u56de\u5f52\u3002 family = binomial \u7528\u4e8e\u903b\u8f91\u56de\u5f52

  • subset\uff1a\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\u6216\u8868\u8fbe\u5f0f\uff0c\u7528\u4e8e\u6307\u5b9a\u7528\u4e8e\u62df\u5408\u6a21\u578b\u7684\u5b50\u96c6\u89c2\u6d4b\u3002

  • weights\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u4e3a\u6bcf\u4e2a\u89c2\u6d4b\u6307\u5b9a\u6743\u91cd\u3002
  • na.action\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5904\u7406\u7f3a\u5931\u503c\u3002
  • start\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6a21\u578b\u53c2\u6570\u7684\u521d\u59cb\u503c\u3002
  • etastart\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u7ebf\u6027\u9884\u6d4b\u5668\u7684\u521d\u59cb\u503c\u3002
  • mustart\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6761\u4ef6\u5747\u503c\u7684\u521d\u59cb\u503c\u3002
  • offset\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u7ebf\u6027\u9884\u6d4b\u5668\u7684\u504f\u79fb\u91cf\u3002
  • control\uff1a\u4e00\u4e2a\u5217\u8868\uff0c\u7528\u4e8e\u6307\u5b9a\u63a7\u5236\u53c2\u6570\u3002
  • model\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8fd4\u56de\u62df\u5408\u7684\u6a21\u578b\u5bf9\u8c61\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002
  • method\uff1a\u4e00\u4e2a\u5b57\u7b26\uff0c\u8868\u793a\u7528\u4e8e\u62df\u5408\u6a21\u578b\u7684\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a\"glm.fit\"\u3002
  • x\u3001y\u3001contrasts\uff1a\u8fd9\u4e9b\u53c2\u6570\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u901a\u5e38\u4e0d\u9700\u8981\u624b\u52a8\u6307\u5b9a\u3002
  • ...\uff1a\u5176\u4ed6\u4f20\u9012\u7ed9\u62df\u5408\u51fd\u6570\u7684\u53c2\u6570\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u5e38\u89c1\u7528\u6cd5\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u793a\u4f8b\u6570\u636e\nx <- c(1, 2, 3, 4, 5)\ny <- c(0, 0, 0, 1, 1)\n\n# \u62df\u5408\u903b\u8f91\u56de\u5f52\u6a21\u578b\nmodel <- glm(y ~ x, family = binomial)\n\n# \u6253\u5370\u6a21\u578b\u6458\u8981\nsummary(model)\n

\u8f93\u51fa\uff1a

Call:\nglm(formula = y ~ x, family = binomial)\n\nDeviance Residuals: \n       1         2         3         4         5  \n-1.18972  -1.18972  -1.18972   1.23326   1.23326  \n\nCoefficients:\n            Estimate Std. Error z value Pr(>|z|)  \n(Intercept)    4.605      2.699   1.706   0.0878 .\nx             -1.292      0.932  -1.386   0.1650  \n---\nSignif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1\n\n(Dispersion parameter for binomial family taken to be 1)\n\n    Null deviance: 6.8541  on 4  degrees of freedom\nResidual deviance: 5.9843  on 3  degrees of freedom\nAIC: 9.9843\n\nNumber of Fisher Scoring iterations: 4\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u81ea\u53d8\u91cf\u5411\u91cfx\u548c\u56e0\u53d8\u91cf\u5411\u91cfy\u4f5c\u4e3a\u793a\u4f8b\u6570\u636e\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528glm()\u51fd\u6570\u62df\u5408\u4e86\u4e00\u4e2a\u903b\u8f91\u56de\u5f52\u6a21\u578b\uff0c\u5176\u4e2d\u56e0\u53d8\u91cfy\u4e0e\u81ea\u53d8\u91cfx\u4e4b\u95f4\u7684\u5173\u7cfb\u7531\u516c\u5f0fy ~ x\u6307\u5b9a\uff0c\u5e76\u4f7f\u7528family = binomial\u6307\u5b9a\u4e86\u4e8c\u9879\u5206\u5e03\u7684\u94fe\u63a5\u51fd\u6570\u3002 \u5c06\u62df\u5408\u7684\u6a21\u578b\u5b58\u50a8\u5728model\u53d8\u91cf\u4e2d\u3002 \u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528summary()\u51fd\u6570\u6253\u5370\u4e86\u6a21\u578b\u7684\u6458\u8981\u3002\u6458\u8981\u5305\u542b\u4e86\u62df\u5408\u7cfb\u4f30\u8ba1\u3001\u6807\u51c6\u8bef\u5dee\u3001z\u503c\u3001p\u503c\u4ee5\u53ca\u5176\u4ed6\u7edf\u8ba1\u6307\u6807\u3002 \u901a\u8fc7\u4f7f\u7528glm()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u6570\u636e\u548c\u6307\u5b9a\u7684\u516c\u5f0f\u62df\u5408\u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\uff0c\u5e76\u5bf9\u62df\u5408\u7684\u6a21\u578b\u8fdb\u884c\u7edf\u8ba1\u5206\u6790\u3002

"},{"location":"R/base-content/head%28%29/","title":"Head()","text":"

head() \u662f\u4e00\u4e2a\u5728 R \u4e2d\u5e38\u7528\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u67e5\u770b\u5bf9\u8c61\u7684\u524d\u51e0\u884c\u3002 \u4ee5\u4e0b\u662f head() \u51fd\u6570\u7684\u4e00\u822c\u8bed\u6cd5\uff1a

head(x, n = 6)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x: \u8981\u67e5\u770b\u7684\u5bf9\u8c61\uff0c\u4f8b\u5982\u5411\u91cf\u3001\u5217\u8868\u3001\u6570\u636e\u6846\u7b49\u3002 - n: \u8981\u663e\u793a\u7684\u884c\u6570\uff0c\u9ed8\u8ba4\u4e3a 6\u3002

\u4ee5\u4e0b\u662f head() \u51fd\u6570\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b1\uff1a\u5411\u91cf\nx <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)\n\n# \u67e5\u770b\u5411\u91cf\u7684\u524d\u51e0\u884c\uff0c\u9ed8\u8ba4\u663e\u793a\u524d6\u884c\nhead(x)\n\n# \u793a\u4f8b2\uff1a\u6570\u636e\u6846\ndf <- data.frame(A = 1:10, B = letters[1:10], C = 11:20)\n\n# \u67e5\u770b\u6570\u636e\u6846\u7684\u524d\u51e0\u884c\uff0c\u9ed8\u8ba4\u663e\u793a\u524d6\u884c\nhead(df)\n\n# \u793a\u4f8b3\uff1a\u6307\u5b9a\u663e\u793a\u7684\u884c\u6570\nhead(df, n = 3)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

\u793a\u4f8b1\u7684\u8f93\u51fa\u7ed3\u679c\uff1a

[1] 1 2 3 4 5 6\n

\u793a\u4f8b2\u7684\u8f93\u51fa\u7ed3\u679c\uff1a

   A B  C\n1  1 a 11\n2  2 b 12\n3  3 c 13\n4  4 d 14\n5  5 e 15\n6  6 f 16\n

\u793a\u4f8b3\u7684\u8f93\u51fa\u7ed3\u679c\uff1a

  A B  C\n1 1 a 11\n2 2 b 12\n3 3 c 13\n

\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5411\u91cf x\uff0c\u7136\u540e\u4f7f\u7528 head() \u51fd\u6570\u67e5\u770b\u4e86\u8be5\u5411\u91cf\u7684\u524d\u51e0\u884c\uff0c\u9ed8\u8ba4\u663e\u793a\u524d6\u884c\u3002

\u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 df\uff0c\u7136\u540e\u4f7f\u7528 head() \u51fd\u6570\u67e5\u770b\u4e86\u8be5\u6570\u636e\u6846\u7684\u524d\u51e0\u884c\uff0c\u9ed8\u8ba4\u663e\u793a\u524d6\u884c\u3002

\u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 head() \u51fd\u6570\u6307\u5b9a\u4e86\u8981\u663e\u793a\u7684\u884c\u6570\u4e3a3\uff0c\u56e0\u6b64\u53ea\u663e\u793a\u4e86\u6570\u636e\u6846\u7684\u524d3\u884c\u3002

\u603b\u7ed3\u6765\u8bf4\uff0chead() \u51fd\u6570\u7528\u4e8e\u67e5\u770b\u5bf9\u8c61\u7684\u524d\u51e0\u884c\uff0c\u9ed8\u8ba4\u663e\u793a\u524d6\u884c\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u8be5\u51fd\u6570\u67e5\u770b\u5411\u91cf\u3001\u6570\u636e\u6846\u7b49\u5bf9\u8c61\u7684\u90e8\u5206\u6570\u636e\u3002

\u5e0c\u671b\u8fd9\u4e2a\u89e3\u91ca\u5bf9\u4f60\u6709\u5e2e\u52a9\uff01\u5982\u679c\u4f60\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/hist%28%29/","title":"Hist()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0chist()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u76f4\u65b9\u56fe\uff0c\u5b83\u5c06\u6570\u636e\u5206\u6210\u82e5\u5e72\u4e2a\u7b49\u5bbd\u7684\u533a\u95f4\uff0c\u5e76\u8ba1\u7b97\u6bcf\u4e2a\u533a\u95f4\u4e2d\u6570\u636e\u7684\u9891\u6570\u6216\u9891\u7387\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

hist(x, breaks = \"Sturges\", freq = TRUE, probability = FALSE,\n     density = NULL, angle = 45, col = NULL, border = NULL,\n     main = paste(\"Histogram of\", xname),\n     xlim = range(breaks), ylim = NULL, xlab = xname, ylab,\n     axes = TRUE, plot = TRUE, labels = TRUE, ...)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u7ed8\u5236\u76f4\u65b9\u56fe\u7684\u6570\u636e\u5411\u91cf\u6216\u6570\u636e\u6846\u7684\u5217\u3002 - breaks\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u533a\u95f4\u7684\u8ba1\u7b97\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a\"Sturges\"\uff0c\u8868\u793a\u4f7f\u7528Sturges\u516c\u5f0f\u8ba1\u7b97\u533a\u95f4\u3002\u8fd8\u53ef\u4ee5\u9009\u62e9\u5176\u4ed6\u65b9\u6cd5\uff0c\u5982\"Scott\"\u3001\"FD\"\u3001\"sqrt\"\u7b49\uff0c\u6216\u8005\u76f4\u63a5\u6307\u5b9a\u4e00\u4e2a\u6574\u6570\u6765\u8868\u793a\u533a\u95f4\u7684\u6570\u91cf\u3002 - freq\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u7ed8\u5236\u9891\u6570\u76f4\u65b9\u56fe\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u7ed8\u5236\u9891\u6570\u76f4\u65b9\u56fe\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aFALSE\uff0c\u5219\u7ed8\u5236\u6982\u7387\u5bc6\u5ea6\u76f4\u65b9\u56fe\u3002 - probability\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u7ed8\u5236\u6982\u7387\u5bc6\u5ea6\u76f4\u65b9\u56fe\u3002\u9ed8\u8ba4\u4e3aFALSE\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aTRUE\uff0c\u5219\u7ed8\u5236\u6982\u7387\u5bc6\u5ea6\u76f4\u65b9\u56fe\uff0c\u603b\u9762\u79ef\u5c06\u6807\u51c6\u5316\u4e3a1\u3002 - density\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5bc6\u5ea6\u4f30\u8ba1\u65b9\u6cd5\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aNULL\uff08\u9ed8\u8ba4\uff09\uff0c\u5219\u4e0d\u8fdb\u884c\u5bc6\u5ea6\u4f30\u8ba1\u3002\u53ef\u4ee5\u9009\u62e9\u5176\u4ed6\u65b9\u6cd5\uff0c\u5982\"kernel\"\u3002 - angle\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u76f4\u65b9\u56fe\u7684\u586b\u5145\u89d2\u5ea6\uff08\u4ee5\u5ea6\u4e3a\u5355\u4f4d\uff09\u3002\u9ed8\u8ba4\u4e3a45\u5ea6\u3002 - col\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u76f4\u65b9\u56fe\u7684\u586b\u5145\u989c\u8272\u3002 - border\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u76f4\u65b9\u56fe\u7684\u8fb9\u6846\u989c\u8272\u3002 - main\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u76f4\u65b9\u56fe\u7684\u6807\u9898\u3002 - xlim\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9ax\u8f74\u7684\u8303\u56f4\u3002 - ylim\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9ay\u8f74\u7684\u8303\u56f4\u3002 - xlab\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9ax\u8f74\u7684\u6807\u7b7e\u3002 - ylab\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9ay\u8f74\u7684\u6807\u7b7e\u3002 - axes\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u7ed8\u5236\u5750\u6807\u8f74\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002 - plot\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u7ed8\u5236\u76f4\u65b9\u56fe\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aFALSE\uff0c\u5219\u53ea\u8ba1\u7b97\u76f4\u65b9\u56fe\u5e76\u8fd4\u56de\u7ed3\u679c\u3002 - labels\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5728\u76f4\u65b9\u56fe\u4e0a\u663e\u793a\u6807\u7b7e\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002

\u793a\u4f8b\uff1a

# \u793a\u4f8b\uff1a\u521b\u5efa\u76f4\u65b9\u56fe\ndata <- c(1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 5)\n\n# \u521b\u5efa\u9891\u6570\u76f4\u65b9\u56fe\nhist(data, main = \"Histogram of Data\", xlab = \"Value\", ylab = \"Frequency\")\n\n# \u521b\u5efa\u6982\u7387\u5bc6\u5ea6\u76f4\u65b9\u56fe\nhist(data, freq = FALSE, main = \"Histogram of Data\", xlab = \"Value\", ylab = \"Density\")\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3adata\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u5305\u542b\u4e00\u4e9b\u6570\u636e\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528hist()\u51fd\u6570\u521b\u5efa\u76f4\u65b9\u56fe\u3002

\u7b2c\u4e00\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u9ed8\u8ba4\u53c2\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u9891\u6570\u76f4\u65b9\u56fe\u3002\u901a\u8fc7\u6307\u5b9amain\u3001xlab\u548cylab\u53c2\u6570\uff0c\u6211\u4eec\u8bbe\u7f6e\u4e86\u76f4\u65b9\u56fe\u7684\u6807\u9898\u3001x\u8f74\u6807\u7b7e\u548cy\u8f74\u6807\u7b7e\u3002

\u7b2c\u4e8c\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u901a\u8fc7\u5c06freq\u53c2\u6570\u8bbe\u7f6e\u4e3aFALSE\uff0c\u521b\u5efa\u4e86\u4e00\u4e2a\u6982\u7387\u5bc6\u5ea6\u76f4\u65b9\u56fe\u3002\u8fd9\u5c06\u8ba1\u7b97\u6bcf\u4e2a\u533a\u95f4\u4e2d\u6570\u636e\u7684\u6982\u7387\u5bc6\u5ea6\uff0c\u5e76\u5c06\u76f4\u65b9\u56fe\u7684\u9ad8\u5ea6\u6807\u51c6\u5316\u4e3a\u603b\u9762\u79ef\u4e3a1\u3002\u540c\u6837\uff0c\u6211\u4eec\u4f7f\u7528main\u3001xlab\u548cylab\u53c2\u6570\u6765\u8bbe\u7f6e\u76f4\u65b9\u56fe\u7684\u6807\u9898\u3001x\u8f74\u6807\u7b7e\u548cy\u8f74\u6807\u7b7e\u3002

\u8bf7\u6ce8\u610f\uff0c\u793a\u4f8b\u4e2d\u7684\u6570\u636e\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u5411\u91cf\uff0c\u4f46hist()\u51fd\u6570\u4e5f\u53ef\u4ee5\u7528\u4e8e\u5904\u7406\u6570\u636e\u6846\u7684\u5217\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u53c2\u6570\u6765\u6ee1\u8db3\u60a8\u7684\u8981\u6c42\uff0c\u5982\u8bbe\u7f6e\u8fb9\u6846\u989c\u8272\u3001\u5bc6\u5ea6\u4f30\u8ba1\u65b9\u6cd5\u7b49\u3002

"},{"location":"R/base-content/interval%28%29/","title":"Interval()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cinterval()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u548c\u64cd\u4f5c\u6570\u503c\u7684\u533a\u95f4\u5bf9\u8c61\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

interval(start, end, closed = \"left\")\n

\u53c2\u6570\uff1a - start\uff1a\u533a\u95f4\u7684\u8d77\u59cb\u503c\u3002 - end\uff1a\u533a\u95f4\u7684\u7ed3\u675f\u503c\u3002 - closed\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u533a\u95f4\u7684\u95ed\u5408\u65b9\u5f0f\u3002\u53ef\u9009\u503c\u4e3a\"left\"\uff08\u9ed8\u8ba4\uff0c\u5de6\u95ed\u53f3\u5f00\uff09\u3001\"right\"\uff08\u53f3\u95ed\u5de6\u5f00\uff09\u3001\"both\"\uff08\u4e24\u7aef\u95ed\u5408\uff09\u548c\"neither\"\uff08\u4e24\u7aef\u5f00\u653e\uff09\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528interval()\u51fd\u6570\u521b\u5efa\u548c\u64cd\u4f5c\u533a\u95f4\u5bf9\u8c61\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u533a\u95f4\u5bf9\u8c61\nint1 <- interval(0, 5)\nint2 <- interval(3, 7, closed = \"right\")\n\n# \u64cd\u4f5c\u533a\u95f4\u5bf9\u8c61\noverlap <- int_overlap(int1, int2)\nunion <- int_union(int1, int2)\nintersection <- int_intersection(int1, int2)\n\n# \u6253\u5370\u7ed3\u679c\nprint(overlap)\nprint(union)\nprint(intersection)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528interval()\u51fd\u6570\u521b\u5efa\u4e86\u4e24\u4e2a\u533a\u95f4\u5bf9\u8c61int1\u548cint2\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528int_overlap()\u51fd\u6570\u8ba1\u7b97\u4e86int1\u548cint2\u4e4b\u95f4\u7684\u91cd\u53e0\u90e8\u5206\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728overlap\u4e2d\u3002

\u63a5\u7740\uff0c\u6211\u4eec\u4f7f\u7528int_union()\u51fd\u6570\u8ba1\u7b97\u4e86int1\u548cint2\u7684\u5e76\u96c6\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728union\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528int_intersection()\u51fd\u6570\u8ba1\u7b97\u4e86int1\u548cint2\u7684\u4ea4\u96c6\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728intersection\u4e2d\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] 3 4 5\n[1] 0 1 2 3 4 5 6 7\n[1] 3 4 5\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u91cd\u53e0\u90e8\u5206\u5305\u542b\u4e86\u533a\u95f43\u52305\uff0c\u5e76\u96c6\u5305\u542b\u4e86\u533a\u95f40\u52307\uff0c\u4ea4\u96c6\u5305\u542b\u4e86\u533a\u95f43\u52305\u3002

"},{"location":"R/base-content/is.infinite%28%29/","title":"Is.infinite()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cis.infinite()\u51fd\u6570\u7528\u4e8e\u68c0\u6d4b\u4e00\u4e2a\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\uff08infinite\uff09\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

is.infinite(x)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u68c0\u6d4b\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u7684\u6570\u503c\u3002 \u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e9b\u4f7f\u7528is.infinite()\u51fd\u6570\u68c0\u6d4b\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u7684\u793a\u4f8b\uff1a
# \u793a\u4f8b1\uff1a\u68c0\u6d4b\u65e0\u7a77\u5927\nx <- Inf\nresult <- is.infinite(x)\nprint(result)\n# \u8f93\u51fa: TRUE\n\n# \u793a\u4f8b2\uff1a\u68c0\u6d4b\u975e\u65e0\u7a77\u5927\ny <- 10\nresult <- is.infinite(y)\nprint(result)\n# \u8f93\u51fa: FALSE\n\n# \u793a\u4f8b3\uff1a\u68c0\u6d4b\u5411\u91cf\u4e2d\u7684\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\nnums <- c(1, Inf, -Inf, 5)\nresult <- sapply(nums, is.infinite)\nprint(result)\n# \u8f93\u51fa: FALSE  TRUE  TRUE FALSE\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c55\u793a\u4e86\u4f7f\u7528is.infinite()\u51fd\u6570\u68c0\u6d4b\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u7684\u4e0d\u540c\u60c5\u51b5\u3002

\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u65e0\u7a77\u5927\u7684\u6570\u503cx\uff0c\u7136\u540e\u4f7f\u7528is.infinite()\u51fd\u6570\u68c0\u6d4b\u5b83\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u3002\u51fd\u6570\u8fd4\u56deTRUE\uff0c\u8868\u793a\u6570\u503c\u4e3a\u65e0\u7a77\u5927\u3002

\u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u975e\u65e0\u7a77\u5927\u7684\u6570\u503cy\uff0c\u7136\u540e\u4f7f\u7528is.infinite()\u51fd\u6570\u68c0\u6d4b\u5b83\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u3002\u51fd\u6570\u8fd4\u56deFALSE\uff0c\u8868\u793a\u6570\u503c\u4e0d\u662f\u65e0\u7a77\u5927\u3002

\u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u503c\u5411\u91cfnums\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u6709\u9650\u6570\u503c\u548c\u65e0\u7a77\u5927\u6570\u503c\u3002\u6211\u4eec\u4f7f\u7528sapply()\u51fd\u6570\u548cis.infinite()\u51fd\u6570\u6765\u68c0\u6d4b\u5411\u91cf\u4e2d\u7684\u6bcf\u4e2a\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u3002\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5e03\u5c14\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u53ea\u6709\u7b2c\u4e8c\u4e2a\u548c\u7b2c\u4e09\u4e2a\u6570\u503c\u4e3a\u65e0\u7a77\u5927\uff0c\u6240\u4ee5\u8fd4\u56deTRUE\uff0c\u5176\u4ed6\u6570\u503c\u4e0d\u662f\u65e0\u7a77\u5927\uff0c\u8fd4\u56deFALSE\u3002

\u901a\u8fc7\u4f7f\u7528is.infinite()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u68c0\u6d4b\u4e00\u4e2a\u6570\u503c\u662f\u5426\u4e3a\u65e0\u7a77\u5927\uff0c\u5728\u6570\u503c\u8ba1\u7b97\u548c\u903b\u8f91\u5224\u65ad\u4e2d\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u3002

"},{"location":"R/base-content/is.logical%28%29/","title":"Is.logical()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cis.logical() \u51fd\u6570\u662f\u57fa\u7840\u7684R\u51fd\u6570\uff0c\u7528\u4e8e\u68c0\u67e5\u5bf9\u8c61\u662f\u5426\u4e3a\u903b\u8f91\u578b\uff08logical\uff09\u7684\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e is.logical() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/base-content/is.logical%28%29/#islogical","title":"is.logical \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u68c0\u67e5\u5bf9\u8c61\u662f\u5426\u4e3a\u903b\u8f91\u578b\u3002

\u6240\u5c5e\u5305\uff1a \u7531\u4e8e\u662f\u57fa\u7840\u7684R\u51fd\u6570\uff0c\u56e0\u6b64\u65e0\u9700\u52a0\u8f7d\u4efb\u4f55\u7279\u5b9a\u5305\u3002

\u5b9a\u4e49\uff1a

is.logical(x)\n

"},{"location":"R/base-content/is.logical%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • x\uff1a \u8981\u68c0\u67e5\u7684\u5bf9\u8c61\u3002
"},{"location":"R/base-content/is.logical%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u521b\u5efa\u4e00\u4e2a\u903b\u8f91\u578b\u5411\u91cf\nlogical_vector <- c(TRUE, FALSE, TRUE, FALSE)\n\n# \u68c0\u67e5\u5411\u91cf\u662f\u5426\u4e3a\u903b\u8f91\u578b\nresult <- is.logical(logical_vector)\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n
"},{"location":"R/base-content/is.logical%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cis.logical() \u51fd\u6570\u88ab\u7528\u4e8e\u68c0\u67e5\u4e00\u4e2a\u903b\u8f91\u578b\u5411\u91cf\u662f\u5426\u4e3a\u903b\u8f91\u578b\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] TRUE\n

\u8fd9\u8868\u793a\u903b\u8f91\u578b\u5411\u91cf\u786e\u5b9e\u662f\u903b\u8f91\u578b\u7684\u3002\u5982\u679c\u4f60\u5bf9\u5176\u4ed6\u5bf9\u8c61\u4f7f\u7528\u8be5\u51fd\u6570\uff0c\u8f93\u51fa\u5c06\u6839\u636e\u5bf9\u8c61\u7684\u7c7b\u578b\u800c\u53d8\u5316\uff0c\u53ef\u80fd\u662f TRUE \u6216 FALSE\u3002

"},{"location":"R/base-content/is.na%28%29/","title":"Is.na()","text":"

is.na() \u662f\u4e00\u4e2a\u5728 R \u8bed\u8a00\u4e2d\u7528\u4e8e\u68c0\u67e5\u7f3a\u5931\u503c\u7684\u51fd\u6570\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\uff0c\u6307\u793a\u6bcf\u4e2a\u5143\u7d20\u662f\u5426\u4e3a\u7f3a\u5931\u503c\u3002

is.na(x)\n

  • x: \u6307\u5b9a\u8981\u68c0\u67e5\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\u3001\u77e9\u9635\u3001\u6570\u636e\u6846\u6216\u5176\u4ed6 R \u5bf9\u8c61\u3002

\u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 is.na() \u51fd\u6570\uff1a 1. \u68c0\u67e5\u5411\u91cf\u4e2d\u7684\u7f3a\u5931\u503c\uff1a

x <- c(1, 2, NA, 4, NA)\nis.na(x)\n
\u8f93\u51fa\u7ed3\u679c\uff1a
[1] FALSE FALSE  TRUE FALSE  TRUE\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u7f3a\u5931\u503c\u7684\u5411\u91cf x\uff0c\u7136\u540e\u4f7f\u7528 is.na() \u51fd\u6570\u68c0\u67e5\u6bcf\u4e2a\u5143\u7d20\u662f\u5426\u4e3a\u7f3a\u5931\u503c\u3002\u8fd4\u56de\u7684\u903b\u8f91\u5411\u91cf\u663e\u793a\u4e86\u6bcf\u4e2a\u5143\u7d20\u7684\u7f3a\u5931\u503c\u60c5\u51b5\u3002

  1. \u68c0\u67e5\u6570\u636e\u6846\u4e2d\u7684\u7f3a\u5931\u503c\uff1a
    df <- data.frame(\n  x = c(1, 2, NA),\n  y = c(\"a\", NA, \"c\")\n)\nis.na(df)\n
    \u8f93\u51fa\u7ed3\u679c\uff1a
          x     y\n[1,] FALSE FALSE\n[2,] FALSE  TRUE\n[3,]  TRUE FALSE\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u7f3a\u5931\u503c\u7684\u6570\u636e\u6846 df\uff0c\u7136\u540e\u4f7f\u7528 is.na() \u51fd\u6570\u68c0\u67e5\u6570\u636e\u6846\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u662f\u5426\u4e3a\u7f3a\u5931\u503c\u3002\u8fd4\u56de\u7684\u903b\u8f91\u77e9\u9635\u663e\u793a\u4e86\u6bcf\u4e2a\u5143\u7d20\u7684\u7f3a\u5931\u503c\u60c5\u51b5\u3002

\u901a\u8fc7\u4f7f\u7528 is.na() \u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u5728 R \u4e2d\u65b9\u4fbf\u5730\u68c0\u6d4b\u548c\u5904\u7406\u7f3a\u5931\u503c\uff0c\u4ee5\u6ee1\u8db3\u6570\u636e\u5206\u6790\u548c\u5904\u7406\u7684\u9700\u6c42\u3002

"},{"location":"R/base-content/is.nan%28%29/","title":"Is.nan()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u68c0\u67e5\u7ed9\u5b9a\u7684\u503c\u662f\u5426\u4e3a NaN\uff08\u4e0d\u662f\u4e00\u4e2a\u6570\u5b57\uff09\u3002\u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u5982\u679c\u7ed9\u5b9a\u7684\u503c\u662f NaN\uff0c\u5219\u8fd4\u56de TRUE\uff1b\u5426\u5219\uff0c\u8fd4\u56de FALSE\u3002

is.nan(x)\n
- x\uff1a\u8981\u68c0\u67e5\u7684\u503c\u3002 1. \u68c0\u67e5\u5355\u4e2a\u503c\u662f\u5426\u4e3a NaN\uff1a
result <- is.nan(NaN)\nprint(result)  # \u8f93\u51fa\uff1aTRUE\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `is.nan()` \u51fd\u6570\u68c0\u67e5 `NaN` \u503c\uff0c\u51fd\u6570\u8fd4\u56de `TRUE`\u3002\n
2. \u68c0\u67e5\u5411\u91cf\u4e2d\u7684\u591a\u4e2a\u503c\u662f\u5426\u4e3a NaN\uff1a
values <- c(1, NaN, 3, NaN, NA)\nresult <- is.nan(values)\nprint(result)  # \u8f93\u51fa\uff1aFALSE  TRUE FALSE  TRUE FALSE\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u591a\u4e2a\u503c\u7684\u5411\u91cf `values`\uff0c\u5176\u4e2d\u5305\u542b\u4e86 `NaN`\u3001`NA` \u548c\u5176\u4ed6\u6570\u5b57\u3002\u4f7f\u7528 `is.nan()` \u51fd\u6570\u68c0\u67e5\u5411\u91cf\u4e2d\u7684\u6bcf\u4e2a\u503c\u662f\u5426\u4e3a `NaN`\uff0c\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u578b\u5411\u91cf\uff0c\u6307\u793a\u6bcf\u4e2a\u503c\u662f\u5426\u4e3a `NaN`\u3002\n

is.nan() \u51fd\u6570\u5728\u5904\u7406\u6570\u503c\u8ba1\u7b97\u548c\u6570\u636e\u5904\u7406\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u7528\u4e8e\u68c0\u67e5\u7ed3\u679c\u662f\u5426\u4e3a NaN\uff0c\u4ee5\u8fdb\u884c\u9519\u8bef\u5904\u7406\u6216\u6761\u4ef6\u5224\u65ad\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cis.nan() \u51fd\u6570\u53ea\u7528\u4e8e\u68c0\u67e5 NaN\uff0c\u4e0d\u9002\u7528\u4e8e\u68c0\u67e5\u5176\u4ed6\u7279\u6b8a\u503c\uff08\u5982 NA \u6216 Inf\uff09\u3002\u5bf9\u4e8e\u5176\u4ed6\u7279\u6b8a\u503c\u7684\u68c0\u67e5\uff0c\u53ef\u4ee5\u4f7f\u7528\u76f8\u5173\u7684\u51fd\u6570\uff08\u5982 is.na()\u3001is.infinite()\uff09\u3002

"},{"location":"R/base-content/is.null%28%29/","title":"Is.null()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cis.null()\u51fd\u6570\u7528\u4e8e\u68c0\u6d4b\u4e00\u4e2a\u5bf9\u8c61\u662f\u5426\u4e3a\u7a7a\uff08NULL\uff09\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

is.null(x)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u68c0\u6d4b\u662f\u5426\u4e3a\u7a7a\u7684\u5bf9\u8c61\u3002 \u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e9b\u4f7f\u7528is.null()\u51fd\u6570\u68c0\u6d4b\u5bf9\u8c61\u662f\u5426\u4e3a\u7a7a\u7684\u793a\u4f8b\uff1a
# \u793a\u4f8b1\uff1a\u68c0\u6d4b\u7a7a\u5bf9\u8c61\nx <- NULL\nresult <- is.null(x)\nprint(result)\n# \u8f93\u51fa: TRUE\n\n# \u793a\u4f8b2\uff1a\u68c0\u6d4b\u975e\u7a7a\u5bf9\u8c61\ny <- 10\nresult <- is.null(y)\nprint(result)\n# \u8f93\u51fa: FALSE\n\n# \u793a\u4f8b3\uff1a\u68c0\u6d4b\u51fd\u6570\u8fd4\u56de\u503c\u662f\u5426\u4e3a\u7a7a\nmy_function <- function() {\n  # \u51fd\u6570\u4f53\n}\nresult <- is.null(my_function())\nprint(result)\n# \u8f93\u51fa: TRUE\n\n# \u793a\u4f8b4\uff1a\u68c0\u6d4b\u5217\u8868\u4e2d\u7684\u5143\u7d20\u662f\u5426\u4e3a\u7a7a\nmy_list <- list(a = NULL, b = 20, c = \"Hello\")\nresult <- sapply(my_list, is.null)\nprint(result)\n# \u8f93\u51fa:  TRUE FALSE FALSE\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c55\u793a\u4e86\u4f7f\u7528is.null()\u51fd\u6570\u68c0\u6d4b\u5bf9\u8c61\u662f\u5426\u4e3a\u7a7a\u7684\u4e0d\u540c\u60c5\u51b5\u3002

\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u7a7a\u5bf9\u8c61x\uff0c\u7136\u540e\u4f7f\u7528is.null()\u51fd\u6570\u68c0\u6d4b\u5b83\u662f\u5426\u4e3a\u7a7a\u3002\u51fd\u6570\u8fd4\u56deTRUE\uff0c\u8868\u793a\u5bf9\u8c61\u4e3a\u7a7a\u3002

\u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u975e\u7a7a\u5bf9\u8c61y\uff0c\u7136\u540e\u4f7f\u7528is.null()\u51fd\u6570\u68c0\u6d4b\u5b83\u662f\u5426\u4e3a\u7a7a\u3002\u51fd\u6570\u8fd4\u56deFALSE\uff0c\u8868\u793a\u5bf9\u8c61\u4e0d\u4e3a\u7a7a\u3002

\u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u51fd\u6570my_function()\uff0c\u51fd\u6570\u4f53\u4e3a\u7a7a\u3002\u7136\u540e\uff0c\u6211\u4eec\u8c03\u7528\u51fd\u6570\uff0c\u5e76\u4f7f\u7528is.null()\u51fd\u6570\u68c0\u6d4b\u51fd\u6570\u8fd4\u56de\u503c\u662f\u5426\u4e3a\u7a7a\u3002\u7531\u4e8e\u51fd\u6570\u4f53\u4e3a\u7a7a\uff0c\u51fd\u6570\u8fd4\u56de\u7a7a\u5bf9\u8c61NULL\uff0c\u56e0\u6b64is.null()\u51fd\u6570\u8fd4\u56deTRUE\u3002

\u5728\u793a\u4f8b4\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5217\u8868my_list\uff0c\u5176\u4e2d\u5305\u542b\u4e09\u4e2a\u5143\u7d20\u3002\u6211\u4eec\u4f7f\u7528sapply()\u51fd\u6570\u548cis.null()\u51fd\u6570\u6765\u68c0\u6d4b\u5217\u8868\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u5426\u4e3a\u7a7a\u3002\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5e03\u5c14\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u5143\u7d20\u662f\u5426\u4e3a\u7a7a\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u7b2c\u4e00\u4e2a\u5143\u7d20\u4e3aNULL\uff0c\u6240\u4ee5\u8fd4\u56deTRUE\uff0c\u5176\u4ed6\u5143\u7d20\u4e0d\u4e3a\u7a7a\uff0c\u8fd4\u56deFALSE\u3002

\u901a\u8fc7\u4f7f\u7528is.null()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u68c0\u6d4b\u4e00\u4e2a\u5bf9\u8c61\u662f\u5426\u4e3a\u7a7a\uff0c\u4ee5\u8fdb\u884c\u76f8\u5e94\u7684\u903b\u8f91\u5904\u7406\u548c\u6761\u4ef6\u5224\u65ad\u3002

"},{"location":"R/base-content/is.numeric%28%29/","title":"Is.numeric()","text":"

\u51fd\u6570\u662fR\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u68c0\u67e5\u7ed9\u5b9a\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b\uff08numeric\uff09\u3002is.numeric()\u51fd\u6570\u7528\u4e8e\u68c0\u67e5\u4e00\u4e2a\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b\uff08numeric\uff09\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u5982\u679c\u5bf9\u8c61\u662f\u6570\u503c\u578b\uff0c\u5219\u8fd4\u56deTRUE\uff1b\u5426\u5219\u8fd4\u56deFALSE\u3002 \u6ce8\u610f\uff0cis.numeric()\u51fd\u6570\u5bf9\u4e8e\u6574\u6570\uff08integer\uff09\u4e5f\u4f1a\u8fd4\u56deTRUE\uff0c\u56e0\u4e3a\u5728R\u4e2d\u6574\u6570\u88ab\u89c6\u4e3a\u6570\u503c\u578b\u3002

\u51fd\u6570\u8bed\u6cd5\uff1a

is.numeric(x)\n
\u53c2\u6570x\u4ee3\u8868\u8981\u68c0\u67e5\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u4efb\u4f55R\u8bed\u8a00\u4e2d\u7684\u6570\u636e\u7c7b\u578b\uff0c\u5305\u62ec\u5411\u91cf\u3001\u77e9\u9635\u3001\u6570\u636e\u6846\u7b49\u3002

\u51fd\u6570\u793a\u4f8b\uff1a

\u793a\u4f8b1\uff1a\u68c0\u67e5\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b

# \u68c0\u67e5\u5411\u91cf\u662f\u5426\u4e3a\u6570\u503c\u578b\nx <- c(1, 2, 3)\nis.numeric(x)\n# \u8f93\u51fa: TRUE\n\n# \u68c0\u67e5\u6574\u6570\u662f\u5426\u4e3a\u6570\u503c\u578b\ny <- 5L # L\u8868\u793a\u6574\u6570\nis.numeric(y)\n# \u8f93\u51fa: TRUE\n\n# \u68c0\u67e5\u5b57\u7b26\u5411\u91cf\u662f\u5426\u4e3a\u6570\u503c\u578b\nz <- c(\"a\", \"b\", \"c\")\nis.numeric(z)\n# \u8f93\u51fa: FALSE\n

\u793a\u4f8b2\uff1a\u5728\u6570\u636e\u6846\u4e2d\u68c0\u67e5\u5217\u662f\u5426\u4e3a\u6570\u503c\u578b

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  name = c(\"Alice\", \"Bob\", \"Charlie\"),\n  age = c(25, 30, 35),\n  salary = c(50000, 60000, 70000)\n)\n\n# \u68c0\u67e5age\u5217\u662f\u5426\u4e3a\u6570\u503c\u578b\nis.numeric(data$age)\n# \u8f93\u51fa: TRUE\n\n# \u68c0\u67e5name\u5217\u662f\u5426\u4e3a\u6570\u503c\u578b\nis.numeric(data$name)\n# \u8f93\u51fa: FALSE\n

\u793a\u4f8b3\uff1a\u68c0\u67e5\u4e00\u4e2a\u77e9\u9635\u662f\u5426\u4e3a\u6570\u503c\u578b

# \u521b\u5efa\u4e00\u4e2a\u77e9\u9635\nmat <- matrix(1:9, nrow = 3, ncol = 3)\n\n# \u68c0\u67e5\u77e9\u9635\u662f\u5426\u4e3a\u6570\u503c\u578b\nis.numeric(mat)\n# \u8f93\u51fa: TRUE\n

\u901a\u8fc7\u8c03\u7528is.numeric()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u68c0\u67e5\u5bf9\u8c61\u662f\u5426\u4e3a\u6570\u503c\u578b\uff0c\u4ee5\u4fbf\u8fdb\u884c\u76f8\u5e94\u7684\u6570\u636e\u5904\u7406\u548c\u5904\u7406\u3002

"},{"location":"R/base-content/ks.test%28%29/","title":"Ks.test()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cks.test() \u51fd\u6570\u7528\u4e8e\u6267\u884c Kolmogorov-Smirnov \u68c0\u9a8c\uff0c\u7528\u4e8e\u6bd4\u8f83\u89c2\u6d4b\u6570\u636e\u4e0e\u7406\u8bba\u5206\u5e03\u4e4b\u95f4\u7684\u5dee\u5f02\u3002Kolmogorov-Smirnov \u68c0\u9a8c\u5e38\u7528\u4e8e\u68c0\u9a8c\u4e24\u4e2a\u6837\u672c\u662f\u5426\u6765\u81ea\u540c\u4e00\u8fde\u7eed\u5206\u5e03\uff0c\u6216\u8005\u68c0\u9a8c\u89c2\u6d4b\u6570\u636e\u4e0e\u67d0\u4e2a\u7406\u8bba\u5206\u5e03\u662f\u5426\u62df\u5408\u826f\u597d\u3002\u4e0b\u9762\u662f\u5bf9 ks.test() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

ks.test(x, y, alternative = c(\"two.sided\", \"less\", \"greater\"), exact = NULL, ...)\n

\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u4e00\u4e2a\u6570\u636e\u5411\u91cf\u6216\u8005\u4e00\u4e2a\u6570\u636e\u77e9\u9635\uff0c\u8868\u793a\u89c2\u6d4b\u6570\u636e\u3002 - y\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u4e00\u4e2a\u5b57\u7b26\u5b57\u7b26\u4e32\u6216\u51fd\u6570\uff0c\u8868\u793a\u7406\u8bba\u5206\u5e03\u7684\u540d\u79f0\u6216\u51fd\u6570\u3002\u5982\u679c\u63d0\u4f9b\u4e86 y\uff0c\u5219\u4f1a\u5c06\u89c2\u6d4b\u6570\u636e\u4e0e y \u6240\u8868\u793a\u7684\u7406\u8bba\u5206\u5e03\u8fdb\u884c\u6bd4\u8f83\uff1b\u5982\u679c\u672a\u63d0\u4f9b y\uff0c\u5219\u9ed8\u8ba4\u6bd4\u8f83\u89c2\u6d4b\u6570\u636e\u4e0e\u6807\u51c6\u5747\u5300\u5206\u5e03\u3002 - alternative\uff1a\u7528\u4e8e\u6307\u5b9a\u5907\u62e9\u5047\u8bbe\u7684\u7c7b\u578b\u3002\u53ef\u9009\u503c\u4e3a \"two.sided\"\uff08\u53cc\u4fa7\u68c0\u9a8c\uff0c\u9ed8\u8ba4\u503c\uff09\u3001\"less\"\uff08\u5de6\u4fa7\u68c0\u9a8c\uff09\u548c \"greater\"\uff08\u53f3\u4fa7\u68c0\u9a8c\uff09\u3002 - exact\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\u6216\u8005\u4e00\u4e2a\u6b63\u6574\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u5e94\u8be5\u8fdb\u884c\u7cbe\u786e\u8ba1\u7b97\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6839\u636e\u6837\u672c\u91cf\u7684\u5927\u5c0f\u9009\u62e9\u9002\u5f53\u7684\u8fd1\u4f3c\u65b9\u6cd5\u8fdb\u884c\u8ba1\u7b97\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9 ks.test() \u51fd\u6570\u7684\u9009\u9879\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b Kolmogorov-Smirnov \u68c0\u9a8c\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u3001p \u503c\u7b49\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528 ks.test() \u51fd\u6570\u8fdb\u884c Kolmogorov-Smirnov \u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u751f\u6210\u4e00\u4e2a\u670d\u4ece\u6b63\u6001\u5206\u5e03\u7684\u89c2\u6d4b\u6570\u636e\nset.seed(123)\nx <- rnorm(100)\n\n# \u4f7f\u7528 ks.test() \u8fdb\u884c Kolmogorov-Smirnov \u68c0\u9a8c\nresult <- ks.test(x, \"pnorm\")\n\n# \u6253\u5370 Kolmogorov-Smirnov \u68c0\u9a8c\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528 rnorm() \u51fd\u6570\u751f\u6210\u4e00\u4e2a\u670d\u4ece\u6b63\u6001\u5206\u5e03\u7684\u89c2\u6d4b\u6570\u636e\u5411\u91cf x\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 ks.test() \u51fd\u6570\u5bf9\u89c2\u6d4b\u6570\u636e x \u8fdb\u884c Kolmogorov-Smirnov \u68c0\u9a8c\uff0c\u6bd4\u8f83\u89c2\u6d4b\u6570\u636e\u4e0e\u6807\u51c6\u6b63\u6001\u5206\u5e03\u8fdb\u884c\u62df\u5408\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa Kolmogorov-Smirnov \u68c0\u9a8c\u7684\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0cks.test() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u6bd4\u8f83\u89c2\u6d4b\u6570\u636e\u4e0e\u5176\u4ed6\u7406\u8bba\u5206\u5e03\uff0c\u4f8b\u5982\u6307\u6570\u5206\u5e03\u3001\u5747\u5300\u5206\u5e03\u7b49\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u8981\u4f20\u9012\u4e0d\u540c\u7684\u53c2\u6570\u6765\u6267\u884c\u76f8\u5e94\u7684 Kolmogorov-Smirnov \u68c0\u9a8c\uff0c\u5e76\u6839\u636e\u68c0\u9a8c\u7ed3\u679c\u8fdb\u884c\u6570\u636e\u5206\u6790\u548c\u89e3\u91ca\u3002

"},{"location":"R/base-content/lambda/","title":"Lambda","text":""},{"location":"R/base-content/lambda/#lambda","title":"lambda\u51fd\u6570","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cLambda\u51fd\u6570\u7684\u6982\u5ff5\u5e76\u4e0d\u50cfPython\u90a3\u6837\u76f4\u63a5\u63d0\u4f9b\u5185\u7f6e\u7684lambda\u5173\u952e\u5b57\u3002\u7136\u800c\uff0cR\u8bed\u8a00\u63d0\u4f9b\u4e86\u7c7b\u4f3c\u7684\u529f\u80fd\uff0c\u53ef\u4ee5\u4f7f\u7528\u533f\u540d\u51fd\u6570\u6765\u5b9e\u73b0\u7c7b\u4f3c\u7684\u6548\u679c\u3002 \u5728R\u8bed\u8a00\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528function()\u51fd\u6570\u6765\u521b\u5efa\u533f\u540d\u51fd\u6570\uff0c\u5176\u8bed\u6cd5\u5982\u4e0b\uff1a

function(arg1, arg2, ...) { expression }\n
\u5176\u4e2d\uff0carg1, arg2, ...\u662f\u51fd\u6570\u7684\u53c2\u6570\u5217\u8868\uff0c\u53ef\u4ee5\u5305\u542b\u96f6\u4e2a\u6216\u591a\u4e2a\u53c2\u6570\uff0c\u7528\u9017\u53f7\u5206\u9694\u3002expression\u662f\u4e00\u4e2a\u5355\u884c\u7684\u8868\u8fbe\u5f0f\uff0c\u8868\u793a\u533f\u540d\u51fd\u6570\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff0c\u5e76\u8fd4\u56de\u8868\u8fbe\u5f0f\u7684\u7ed3\u679c\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528\u533f\u540d\u51fd\u6570\uff08\u7c7b\u4f3c\u4e8eLambda\u51fd\u6570\uff09\u8ba1\u7b97\u4e24\u4e2a\u6570\u7684\u548c\uff1a
add <- function(x, y) { x + y }\nresult <- add(5, 3)\nprint(result)  # \u8f93\u51fa: 8\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cfunction(x, y) { x + y }\u5b9a\u4e49\u4e86\u4e00\u4e2a\u63a5\u53d7\u4e24\u4e2a\u53c2\u6570 x \u548c y \u7684\u533f\u540d\u51fd\u6570\uff0c\u5b83\u5c06\u8fd9\u4e24\u4e2a\u53c2\u6570\u76f8\u52a0\u5e76\u8fd4\u56de\u7ed3\u679c\u3002\u4f7f\u7528add\u53d8\u91cf\u4fdd\u5b58\u8fd9\u4e2a\u533f\u540d\u51fd\u6570\uff0c\u5e76\u901a\u8fc7add(5, 3)\u8fdb\u884c\u8c03\u7528\uff0c\u5f97\u5230\u7ed3\u679c8\u3002 \u5c3d\u7ba1\u5728R\u8bed\u8a00\u4e2d\u6ca1\u6709\u76f4\u63a5\u7684lambda\u5173\u952e\u5b57\uff0c\u4f46\u901a\u8fc7\u4f7f\u7528function()\u51fd\u6570\uff0c\u53ef\u4ee5\u5b9e\u73b0\u7c7b\u4f3c\u7684\u533f\u540d\u51fd\u6570\u529f\u80fd\uff0c\u8fbe\u5230\u7c7b\u4f3cLambda\u51fd\u6570\u7684\u6548\u679c\u3002

"},{"location":"R/base-content/lapply%28%29/","title":"Lapply()","text":"

lapply() \u662fR\u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5bf9\u5217\u8868\uff08list\uff09\u7684\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u6307\u5b9a\u7684\u51fd\u6570\u3002\u8fd9\u4e2a\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u5305\u542b\u5e94\u7528\u4e86\u6307\u5b9a\u51fd\u6570\u7684\u6bcf\u4e2a\u5143\u7d20\u7684\u7ed3\u679c\u3002

\u8bed\u6cd5\u5982\u4e0b\uff1a

lapply(X, FUN, ...)\n
  • X\uff1a\u8981\u5e94\u7528\u51fd\u6570\u7684\u5217\u8868\uff08\u6216\u5176\u4ed6\u53ef\u8fed\u4ee3\u5bf9\u8c61\uff09\u3002
  • FUN\uff1a\u8981\u5e94\u7528\u4e8e\u6bcf\u4e2a\u5217\u8868\u5143\u7d20\u7684\u51fd\u6570\u3002
  • ...\uff1a\u7528\u4e8e\u4f20\u9012\u7ed9\u51fd\u6570 FUN \u7684\u5176\u4ed6\u53c2\u6570\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u6f14\u793a\u4e86 lapply() \u7684\u57fa\u672c\u7528\u6cd5\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5217\u8868\nmy_list <- list(a = 1:5, b = 6:10, c = 11:15)\n\n# \u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\uff0c\u8ba1\u7b97\u6bcf\u4e2a\u5411\u91cf\u7684\u5e73\u5747\u503c\ncalculate_mean <- function(x) {\n  return(mean(x))\n}\n\n# \u4f7f\u7528lapply\u5e94\u7528\u51fd\u6570\nresult <- lapply(my_list, calculate_mean)\n\n# \u7ed3\u679c\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5305\u542b\u6bcf\u4e2a\u5411\u91cf\u7684\u5e73\u5747\u503c\nprint(result)\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0clapply() \u5c06 calculate_mean \u51fd\u6570\u5e94\u7528\u4e8e my_list \u4e2d\u7684\u6bcf\u4e2a\u5411\u91cf\uff0c\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u6bcf\u4e2a\u5411\u91cf\u5e73\u5747\u503c\u7684\u5217\u8868\u3002

lapply() \u901a\u5e38\u7528\u4e8e\u5bf9\u5217\u8868\u7684\u6bcf\u4e2a\u5143\u7d20\u6267\u884c\u76f8\u540c\u7684\u64cd\u4f5c\uff0c\u800c\u4e0d\u9700\u8981\u4fee\u6539\u539f\u59cb\u5217\u8868\u7684\u7ed3\u6784\u3002\u5982\u679c\u9700\u8981\u66f4\u7075\u6d3b\u7684\u64cd\u4f5c\uff0c\u5e76\u4e14\u53ef\u80fd\u4fee\u6539\u5217\u8868\u7ed3\u6784\uff0c\u5219\u53ef\u80fd\u9700\u8981\u4f7f\u7528 sapply() \u6216 mapply() \u8fd9\u6837\u7684\u51fd\u6570\u3002

"},{"location":"R/base-content/last%28%29/","title":"Last()","text":"

\u5728 R \u4e2d\uff0clast() \u51fd\u6570\u7528\u4e8e\u8fd4\u56de\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u6216\u884c\u3002 \u4ee5\u4e0b\u662f last() \u51fd\u6570\u7684\u4e00\u822c\u8bed\u6cd5\uff1a

last(x, n = 1)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u8981\u63d0\u53d6\u6700\u540e\u5143\u7d20\u7684\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u3002 - n\uff1a\u8981\u8fd4\u56de\u7684\u5143\u7d20\u6216\u884c\u6570\uff0c\u9ed8\u8ba4\u4e3a 1\uff0c\u8868\u793a\u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u6216\u884c\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a\u5927\u4e8e 1 \u7684\u6574\u6570\uff0c\u5219\u8fd4\u56de\u6700\u540e n \u4e2a\u5143\u7d20\u6216\u884c\u3002 \u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 last() \u51fd\u6570\uff1a
# \u793a\u4f8b1\uff1a\u5411\u91cf\nx <- c(3, 1, 4, 1, 5, 9)\n\n# \u63d0\u53d6\u5411\u91cf\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\nlast_element <- last(x)\nprint(last_element)\n\n# \u793a\u4f8b2\uff1a\u5217\u8868\nmy_list <- list(a = 1, b = 2, c = 3, d = 4)\n\n# \u63d0\u53d6\u5217\u8868\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\nlast_element <- last(my_list)\nprint(last_element)\n\n# \u793a\u4f8b3\uff1a\u6570\u636e\u6846\nmy_df <- data.frame(x = c(1, 2, 3), y = c(\"a\", \"b\", \"c\"))\n\n# \u63d0\u53d6\u6570\u636e\u6846\u7684\u6700\u540e\u4e00\u884c\nlast_row <- last(my_df)\nprint(last_row)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 9\n\n$a\n[1] 4\n\n  x y\n3 3 c\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u7ed3\u6784\u3002\u9996\u5148\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5411\u91cf x\uff0c\u7136\u540e\u4f7f\u7528 last() \u51fd\u6570\u63d0\u53d6\u4e86\u5411\u91cf\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 last_element \u4e2d\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5217\u8868 my_list\uff0c\u4f7f\u7528 last() \u51fd\u6570\u63d0\u53d6\u4e86\u5217\u8868\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 last_element \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846 my_df\uff0c\u4f7f\u7528 last() \u51fd\u6570\u63d0\u53d6\u4e86\u6570\u636e\u6846\u7684\u6700\u540e\u4e00\u884c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 last_row \u4e2d\u3002 \u603b\u7ed3\u6765\u8bf4\uff0clast() \u51fd\u6570\u7528\u4e8e\u63d0\u53d6\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u6216\u884c\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u53c2\u6570\u6765\u83b7\u53d6\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u6216\u591a\u4e2a\u5143\u7d20\u3002

"},{"location":"R/base-content/length%28%29/","title":"Length()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0clength()\u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u5bf9\u8c61\u7684\u957f\u5ea6\uff0c\u5373\u5bf9\u8c61\u4e2d\u5143\u7d20\u7684\u4e2a\u6570\u3002

length(object)\n
- object\uff1a\u8981\u8ba1\u7b97\u957f\u5ea6\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u5411\u91cf\u3001\u5217\u8868\u3001\u77e9\u9635\u3001\u6570\u636e\u6846\u7b49\u3002

  1. \u83b7\u53d6\u5411\u91cf\u7684\u957f\u5ea6\uff1a

    my_vector <- c(1, 2, 3, 4, 5)\nlength(my_vector)\n
    \u8f93\u51fa\u7ed3\u679c\u4e3a 5\uff0c\u8868\u793a\u5411\u91cf my_vector \u4e2d\u6709 5 \u4e2a\u5143\u7d20\u3002

  2. \u83b7\u53d6\u5217\u8868\u7684\u957f\u5ea6\uff1a

    my_list <- list(a = 1, b = 2, c = 3)\nlength(my_list)\n
    \u8f93\u51fa\u7ed3\u679c\u4e3a 3\uff0c\u8868\u793a\u5217\u8868 my_list \u4e2d\u6709 3 \u4e2a\u5143\u7d20\u3002

  3. \u83b7\u53d6\u77e9\u9635\u7684\u957f\u5ea6\uff1a

    my_matrix <- matrix(1:6, nrow = 2)\nlength(my_matrix)\n
    \u8f93\u51fa\u7ed3\u679c\u4e3a 6\uff0c\u8868\u793a\u77e9\u9635 my_matrix \u4e2d\u6709 6 \u4e2a\u5143\u7d20\u3002

  4. \u83b7\u53d6\u6570\u636e\u6846\u7684\u957f\u5ea6\uff08\u884c\u6570\uff09\uff1a

    my_df <- data.frame(a = 1:3, b = c(\"x\", \"y\", \"z\"))\nlength(my_df)\n
    \u8f93\u51fa\u7ed3\u679c\u4e3a 3\uff0c\u8868\u793a\u6570\u636e\u6846 my_df \u4e2d\u6709 3 \u884c\u3002

length()\u51fd\u6570\u5bf9\u4e8e\u786e\u5b9a\u5bf9\u8c61\u7684\u5927\u5c0f\u548c\u7ef4\u5ea6\u975e\u5e38\u6709\u7528\u3002\u5b83\u9002\u7528\u4e8e\u5404\u79cd\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u5e76\u4e14\u53ef\u4ee5\u5e2e\u52a9\u60a8\u5728\u5904\u7406\u6570\u636e\u65f6\u83b7\u53d6\u6709\u5173\u5bf9\u8c61\u7ed3\u6784\u7684\u4fe1\u606f\u3002

"},{"location":"R/base-content/length%28%29/#nasumisna","title":"NA\u503c\uff08\u7f3a\u5931\u503c\uff09\u5f71\u54cd\uff0csum(is.na())","text":"

\u5f53\u4f7f\u7528length()\u51fd\u6570\u8ba1\u7b97\u4e00\u4e2a\u5411\u91cf\u7684\u957f\u5ea6\u65f6\uff0c\u5982\u679c\u5411\u91cf\u4e2d\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\uff0c\u5219\u8be5\u7f3a\u5931\u503c\u5c06\u88ab\u8ba1\u7b97\u5728\u5185\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\u6765\u8bf4\u660e\u8fd9\u4e00\u70b9\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5305\u542b\u7f3a\u5931\u503c\u7684\u5411\u91cf\nvec <- c(1, 2, NA, 4, NA)\n\n# \u8ba1\u7b97\u5411\u91cf\u7684\u957f\u5ea6\nlen <- length(vec)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(len)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 5\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u5411\u91cfvec\u5305\u542b\u4e86\u4e24\u4e2a\u7f3a\u5931\u503c\uff08NA\uff09\u3002\u7136\u800c\uff0c\u4f7f\u7528length()\u51fd\u6570\u8ba1\u7b97\u5411\u91cf\u7684\u957f\u5ea6\u65f6\uff0c\u7f3a\u5931\u503c\u4f1a\u88ab\u89c6\u4e3a\u6709\u6548\u503c\uff0c\u5e76\u88ab\u8ba1\u7b97\u5728\u5185\uff0c\u56e0\u6b64\u5411\u91cf\u7684\u957f\u5ea6\u4e3a5\u3002 \u5982\u679c\u4f60\u60f3\u5ffd\u7565\u7f3a\u5931\u503c\uff0c\u53ea\u8ba1\u7b97\u6709\u6548\u503c\u7684\u6570\u91cf\uff0c\u53ef\u4ee5\u4f7f\u7528sum(!is.na(vec))\u6765\u8ba1\u7b97\u975e\u7f3a\u5931\u503c\u7684\u4e2a\u6570\u3002\u4f8b\u5982\uff1a

# \u8ba1\u7b97\u975e\u7f3a\u5931\u503c\u7684\u4e2a\u6570\nvalid_len <- sum(!is.na(vec))\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(valid_len)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 3\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u4f7f\u7528sum(!is.na(vec))\u8ba1\u7b97\u4e86\u5411\u91cfvec\u4e2d\u975e\u7f3a\u5931\u503c\u7684\u4e2a\u6570\uff0c\u7ed3\u679c\u4e3a3\u3002\u8fd9\u6837\u53ef\u4ee5\u6392\u9664\u7f3a\u5931\u503c\uff0c\u53ea\u8ba1\u7b97\u6709\u6548\u503c\u7684\u6570\u91cf\u3002

"},{"location":"R/base-content/levels%28%29/","title":"Levels()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0clevels()\u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u56e0\u5b50\uff08factor\uff09\u5bf9\u8c61\u7684\u6c34\u5e73\uff08levels\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

levels(x)\n

\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u56e0\u5b50\u5bf9\u8c61\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528levels()\u51fd\u6570\u83b7\u53d6\u56e0\u5b50\u7684\u6c34\u5e73\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b\u56e0\u5b50\nfactor_vector <- factor(c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\"))\n\n# \u83b7\u53d6\u56e0\u5b50\u7684\u6c34\u5e73\nfactor_levels <- levels(factor_vector)\n\n# \u6253\u5370\u56e0\u5b50\u7684\u6c34\u5e73\nprint(factor_levels)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u56e0\u5b50factor_vector\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u6c34\u5e73\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528levels()\u51fd\u6570\u83b7\u53d6factor_vector\u7684\u6c34\u5e73\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728factor_levels\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fafactor_levels\uff0c\u5b83\u5305\u542b\u4e86factor_vector\u7684\u6c34\u5e73\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] \"A\" \"B\" \"C\"\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230factor_vector\u7684\u6c34\u5e73\u4e3a\"A\"\u3001\"B\"\u548c\"C\"\u3002

"},{"location":"R/base-content/leveneTest%28%29/","title":"leveneTest()","text":"","tags":[]},{"location":"R/base-content/leveneTest%28%29/#levenetest","title":"leveneTest\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a leveneTest()\u51fd\u6570\u7528\u4e8e\u6267\u884cLevene's test\uff08\u5217\u6587\u68c0\u9a8c\uff09\uff0c\u7528\u4e8e\u68c0\u9a8c\u591a\u4e2a\u7ec4\u7684\u65b9\u5dee\u662f\u5426\u76f8\u7b49\u3002\u8fd9\u4e2a\u68c0\u9a8c\u901a\u5e38\u7528\u4e8e\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u7b49\u7edf\u8ba1\u65b9\u6cd5\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u65b9\u6cd5\u5728\u5047\u8bbe\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u60c5\u51b5\u4e0b\u66f4\u4e3a\u6709\u6548\u3002

\u6240\u5c5e\u5305\uff1a leveneTest\u51fd\u6570\u5c5e\u4e8ecar\u5305\uff08Companion to Applied Regression\uff09\u3002

\u5b9a\u4e49\uff1a

leveneTest(y, group, center = \"median\")\n

","tags":[]},{"location":"R/base-content/leveneTest%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • y\uff1a \u6570\u503c\u578b\u5411\u91cf\uff0c\u5305\u542b\u89c2\u6d4b\u503c\u3002

  • group\uff1a \u5206\u7ec4\u53d8\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u89c2\u6d4b\u503c\u6240\u5c5e\u7684\u7ec4\u522b\u3002

  • center\uff1a \u4e2d\u5fc3\u5316\u9009\u9879\uff0c\u7528\u4e8e\u6307\u5b9a\u5982\u4f55\u4e2d\u5fc3\u5316\u6570\u636e\u3002\u9ed8\u8ba4\u4e3a\"median\"\uff0c\u53ef\u9009\u7684\u8fd8\u6709\"mean\"\u3002

","tags":[]},{"location":"R/base-content/leveneTest%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dcar\u5305\ninstall.packages(\"car\")\nlibrary(car)\n\n# \u521b\u5efa\u4e24\u4e2a\u7ec4\u7684\u6570\u636e\uff08\u793a\u4f8b\u6570\u636e\uff09\ngroup1 <- c(23, 25, 28, 30, 32)\ngroup2 <- c(18, 20, 24, 28, 30)\n\n# \u6267\u884cLevene's test\nresult <- leveneTest(c(group1, group2), group = rep(c(\"Group1\", \"Group2\"), each = 5), center = \"median\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n
","tags":[]},{"location":"R/base-content/leveneTest%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u793a\u4f8b\u4e2d\u7684\u8f93\u51fa\u7ed3\u679c\u5c06\u5305\u542bLevene's test\u7684\u7edf\u8ba1\u91cf\uff08W\uff09\u3001\u81ea\u7531\u5ea6\uff08DF1\uff0cDF2\uff09\u548cp\u503c\uff08Pr(>W)\uff09\u3002\u5177\u4f53\u8f93\u51fa\u4fe1\u606f\u5c06\u7c7b\u4f3c\u4e8e\uff1a

Levene's Test for Homogeneity of Variance (center = median)\n      Df F value Pr(>F)\ngroup  1  0.0667 0.7996\n      8\n

\u8fd9\u4e2a\u8f93\u51fa\u63d0\u4f9b\u4e86Levene's test\u7684\u7edf\u8ba1\u91cf\uff08F value\uff09\u3001\u81ea\u7531\u5ea6\uff08DF1\uff0cDF2\uff09\u4ee5\u53cap\u503c\uff08Pr(>F)\uff09\u3002\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u4f60\u53ef\u4ee5\u67e5\u770bp\u503c\u6765\u5224\u65ad\u662f\u5426\u62d2\u7edd\u4e86\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u5047\u8bbe\u3002

","tags":[]},{"location":"R/base-content/list%28%29/","title":"List()","text":"

list() \u662f R \u8bed\u8a00\u4e2d\u7528\u4e8e\u521b\u5efa\u5217\u8868\uff08list\uff09\u7684\u51fd\u6570\u3002

\u8fd9\u8fb9\u7684\u5217\u8868\u8ddfpython\u4e2d\u7684\u5217\u8868\u6709\u4e9b\u5dee\u5f02\uff0c\u662f\u4e00\u4e2a\u4e2a\u7ec4\u6210\u6210\u5206\u6784\u5efa\u8d77\u6765\u7684\u3002

list(...)\n
...\uff1a\u5217\u8868\u4e2d\u7684\u5143\u7d20\uff0c\u53ef\u4ee5\u662f\u4efb\u610f\u6570\u91cf\u7684\u5bf9\u8c61\uff0c\u4f8b\u5982\u6807\u91cf\u3001\u5411\u91cf\u3001\u77e9\u9635\u3001\u6570\u636e\u6846\u7b49\u3002

\u793a\u4f8b 1\uff1a\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u5217\u8868

my_list <- list(\"apple\", 2, TRUE)\nprint(my_list)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[[1]]\n[1] \"apple\"\n\n[[2]]\n[1] 2\n\n[[3]]\n[1] TRUE\n

\u793a\u4f8b 2\uff1a\u521b\u5efa\u4e00\u4e2a\u5305\u542b\u5411\u91cf\u548c\u77e9\u9635\u7684\u5217\u8868

vec <- c(1, 2, 3)\nmat <- matrix(1:6, nrow = 2)\nmy_list <- list(vec, mat)\nprint(my_list)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[[1]]\n[1] 1 2 3\n\n[[2]]\n     [,1] [,2] [,3]\n[1,]    1    3    5\n[2,]    2    4    6\n

\u793a\u4f8b 3\uff1a\u521b\u5efa\u4e00\u4e2a\u5d4c\u5957\u7684\u5217\u8868

inner_list <- list(\"x\", \"y\", \"z\")\nmy_list <- list(1, inner_list, 3)\nprint(my_list)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[[1]]\n[1] 1\n\n[[2]]\n[[2]][[1]]\n[1] \"x\"\n\n[[2]][[2]]\n[1] \"y\"\n\n[[2]][[3]]\n[1] \"z\"\n\n\n[[3]]\n[1] 3\n

\u975e\u5e38\u62b1\u6b49\u7ed9\u60a8\u5e26\u6765\u7684\u56f0\u6270\uff0c\u6211\u4f1a\u5c3d\u529b\u786e\u4fdd\u63d0\u4f9b\u6b63\u786e\u7684\u4ee3\u7801\u683c\u5f0f\u3002\u5982\u679c\u60a8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u544a\u8bc9\u6211\u3002

"},{"location":"R/base-content/list%28%29/#ltcom3","title":"lt$com3\u7684\u610f\u4e49","text":"

\u662f\u4e00\u4e2a\u8868\u8fbe\u5f0f\u4e2d\u7684\u4e00\u90e8\u5206\uff0c\u5b83\u8868\u793a\u5bf9\u8c61 lt \u4e2d\u540d\u4e3a \"com3\" \u7684\u6210\u5458\u6216\u5143\u7d20\u3002\u8fd9\u79cd\u8868\u793a\u65b9\u5f0f\u901a\u5e38\u7528\u4e8e\u8bbf\u95ee\u5217\u8868\u3001\u6570\u636e\u6846\u6216\u5176\u4ed6\u5177\u6709\u547d\u540d\u6210\u5458\u7684\u5bf9\u8c61\u4e2d\u7684\u7279\u5b9a\u6210\u5458\u3002

\u4ee5\u4e0b\u662f\u5173\u4e8e lt$com3 \u7684\u89e3\u91ca\u548c\u793a\u4f8b\uff1a

  • \u5047\u8bbe\u5b58\u5728\u4e00\u4e2a\u540d\u4e3a lt \u7684\u5217\u8868\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u591a\u4e2a\u547d\u540d\u7684\u6210\u5458\u3002\u4f8b\u5982\uff1a
lt <- list(com1 = \"Value 1\", com2 = \"Value 2\", com3 = \"Value 3\")\n```\n\n\u8fd9\u4e2a\u5217\u8868\u5bf9\u8c61 `lt` \u5305\u542b\u4e86\u4e09\u4e2a\u6210\u5458\uff0c\u5206\u522b\u662f `\"com1\"`\u3001`\"com2\"` \u548c `\"com3\"`\u3002\u6bcf\u4e2a\u6210\u5458\u90fd\u6709\u4e00\u4e2a\u5bf9\u5e94\u7684\u503c\u3002\n
  • lt$com3 \u8868\u8fbe\u5f0f\u8868\u793a\u901a\u8fc7\u5217\u8868\u5bf9\u8c61 lt \u8bbf\u95ee\u540d\u4e3a \"com3\" \u7684\u6210\u5458\u3002\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u5b83\u5c06\u8fd4\u56de\u5b57\u7b26\u4e32 \"Value 3\"\uff0c\u5373 lt \u5217\u8868\u5bf9\u8c61\u4e2d \"com3\" \u6210\u5458\u7684\u503c\u3002
lt$com3\n```\n\n\u8f93\u51fa\u7ed3\u679c\u4e3a `\"Value 3\"`\u3002\n

\u4f7f\u7528 $ \u7b26\u53f7\u53ef\u4ee5\u65b9\u4fbf\u5730\u4ece\u5217\u8868\u3001\u6570\u636e\u6846\u7b49\u5bf9\u8c61\u4e2d\u83b7\u53d6\u7279\u5b9a\u6210\u5458\u7684\u503c\uff0c\u53ea\u9700\u6307\u5b9a\u6210\u5458\u7684\u540d\u79f0\u5373\u53ef\u3002\u8fd9\u79cd\u8bed\u6cd5\u4f7f\u5f97\u4ee3\u7801\u66f4\u52a0\u7b80\u6d01\u548c\u6613\u8bfb\u3002\u8bf7\u6ce8\u610f\uff0c$ \u7b26\u53f7\u9002\u7528\u4e8e\u5177\u6709\u547d\u540d\u6210\u5458\u7684\u5bf9\u8c61\uff0c\u800c\u4e0d\u9002\u7528\u4e8e\u975e\u547d\u540d\u7684\u5411\u91cf\u6216\u77e9\u9635\u3002

"},{"location":"R/base-content/lm%28%29/","title":"Lm()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0clm()\u51fd\u6570\u662f\u7528\u4e8e\u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u5185\u7f6e\u51fd\u6570\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

lm(formula, data, subset, weights, na.action,\n   method = \"qr\", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE,\n   contrasts = NULL, offset, ...)\n

\u53c2\u6570\uff1a - formula\uff1a\u4e00\u4e2a\u516c\u5f0f\uff0c\u6307\u5b9a\u4e86\u56de\u5f52\u6a21\u578b\u7684\u5f62\u5f0f\u3002\u901a\u5e38\u5305\u542b\u81ea\u53d8\u91cf\u548c\u56e0\u53d8\u91cf\u7684\u5173\u7cfb\u3002\u5f62\u5f0f\u662fy ~ x\uff0c\u53ef\u4ee5\u76f4\u63a5\u7528data\u4e2d\u7684\u5217\u6807\u9898\uff0c\u5982

\u4e00\u5143\u56de\u5f52\uff1acolumn1~column2\n\n\u591a\u5143\u56de\u5f52\uff1acolumn1~column2+column3+...\n
  • data\uff1a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5305\u542b\u7528\u4e8e\u6784\u5efa\u6a21\u578b\u7684\u6240\u6709\u53d8\u91cf\u3002

  • subset\uff1a\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\u6216\u8868\u8fbe\u5f0f\uff0c\u7528\u4e8e\u6307\u5b9a\u7528\u4e8e\u62df\u5408\u6a21\u578b\u7684\u5b50\u96c6\u89c2\u6d4b\u3002

  • weights\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u4e3a\u6bcf\u4e2a\u89c2\u6d4b\u6307\u5b9a\u6743\u91cd\u3002

  • na.action\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5904\u7406\u7f3a\u5931\u503c\u3002

  • method\uff1a\u4e00\u4e2a\u5b57\u7b26\uff0c\u8868\u793a\u7528\u4e8e\u62df\u5408\u6a21\u578b\u7684\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a\"qr\"\uff0c\u8868\u793a\u4f7f\u7528QR\u5206\u89e3\u65b9\u6cd5\u3002

  • model\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8fd4\u56de\u62df\u5408\u7684\u6a21\u578b\u5bf9\u8c61\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002

  • x\u3001y\u3001qr\u3001singular.ok\uff1a\u8fd9\u4e9b\u53c2\u6570\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u901a\u5e38\u4e0d\u9700\u8981\u624b\u52a8\u6307\u5b9a\u3002

  • contrasts\uff1a\u4e00\u4e2a\u5217\u8868\uff0c\u7528\u4e8e\u6307\u5b9a\u53d8\u91cf\u7684\u5bf9\u6bd4\u65b9\u5f0f\u3002

  • offset\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u7ebf\u6027\u9884\u6d4b\u5668\u7684\u504f\u79fb\u91cf\u3002

  • ...\uff1a\u5176\u4ed6\u4f20\u9012\u7ed9\u62df\u5408\u51fd\u6570\u7684\u53c2\u6570\u3002

# \u521b\u5efa\u793a\u4f8b\u6570\u636e\nx <- c(1, 2, 3, 4, 5)\ny <- c(2, 4, 6, 8, 10)\n\n# \u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\nmodel <- lm(y ~ x)\n\n# \u6253\u5370\u6a21\u578b\u6458\u8981\nsummary(model)\n

\u8f93\u51fa\uff1a

Call:\nlm(formula = y ~ x)\n\nResiduals:\n     1      2      3      4      5 \n-5e-16  0e+00  0e+00  0e+00  0e+00 \n\nCoefficients:\nEstimate Std. Error   t value Pr(>|t|)    \n(Intercept)  1.332e-15  1.014e-15  1.314e+00    0.268    \nx            2.000e+00  1.157e-16  1.729e+16   <2e-16 ***\n---\nSignif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1\n\nResidual standard error: 8.659e-16 on 3 degrees of freedom\nMultiple R-squared:      1, Adjusted R-squared:      1 \nF-statistic: 2.988e+32 on 1 and 3 DF,  p-value: < 2.2e-16\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u81ea\u53d8\u91cf\u5411\u91cfx\u548c\u56e0\u53d8\u91cf\u5411\u91cfy\u4f5c\u4e3a\u793a\u4f8b\u6570\u636e\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528lm()\u51fd\u6570\u62df\u5408\u4e86\u4e00\u4e2a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff0c\u5176\u4e2d\u56e0\u53d8\u91cfy\u4e0e\u81ea\u53d8\u91cfx\u4e4b\u95f4\u7684\u5173\u7cfb\u7531\u516c\u5f0fy ~ x\u6307\u5b9a\u3002\u5c06\u62df\u5408\u7684\u6a21\u578b\u5b58\u50a8\u5728model\u53d8\u91cf\u4e2d\u3002 \u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528summary()\u51fd\u6570\u6253\u5370\u4e86\u6a21\u578b\u7684\u6458\u8981\u3002\u6458\u8981\u5305\u542b\u4e86\u62df\u5408\u7cfb\u6570\u4f30\u8ba1\u3001\u6807\u51c6\u8bef\u5dee\u3001t\u503c\u3001p\u503c\u4ee5\u53ca\u5176\u4ed6\u7edf\u8ba1\u6307\u6807\u3002 \u901a\u8fc7\u4f7f\u7528lm()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u6570\u636e\u548c\u6307\u5b9a\u7684\u516c\u5f0f\u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff0c\u5e76\u5bf9\u62df\u5408\u7684\u6a21\u578b\u8fdb\u884c\u7edf\u8ba1\u5206\u6790\u3002

"},{"location":"R/base-content/lm%28%29/#y-xcolumn1column2","title":"y ~ x\u6216column1~column2","text":"

\u4f7f\u7528lm()\u51fd\u6570\u8fdb\u884c\u7ebf\u6027\u56de\u5f52\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u516c\u5f0f\u8bed\u6cd5\u6307\u5b9a\u81ea\u53d8\u91cf\u548c\u56e0\u53d8\u91cfy~x\u3002 \u5728\u516c\u5f0f\u4e2d\uff0cy ~ x\u8868\u793a\u56e0\u53d8\u91cfy\u4e0e\u81ea\u53d8\u91cfx\u4e4b\u95f4\u7684\u5173\u7cfb\u3002 \u5f53\u63d0\u4f9bdata\u53c2\u6570\u65f6\uff0cR\u4f1a\u81ea\u52a8\u5728data\u4e2d\u67e5\u627e\u4e0e\u516c\u5f0f\u4e2d\u7684\u53d8\u91cf\u540d\u5339\u914d\u7684\u5217\u5411\u91cf\u3002 \u6570\u636e\u96c6\u7684\u53d8\u91cf\u540d\u5c31\u9700\u8981\u4e3ax\u3001y \u5982\u679c\u5728data\u4e2d\u627e\u4e0d\u5230\u4e0e\u516c\u5f0f\u4e2d\u53d8\u91cf\u540d\u76f8\u5339\u914d\u7684\u5217\uff0cR\u4f1a\u53d1\u51fa\u9519\u8bef\u63d0\u793a\u3002

\u66f4\u590d\u6742\u7684\u516c\u5f0f\uff1a 1. \u591a\u9879\u5f0f\u56de\u5f52\uff1a\u5982\u679c\u4f60\u60f3\u62df\u5408\u4e00\u4e2a\u591a\u9879\u5f0f\u56de\u5f52\u6a21\u578b\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u00a0^\u00a0\u7b26\u53f7\u6307\u5b9a\u591a\u9879\u5f0f\u7684\u6b21\u6570\u3002\u4f8b\u5982\uff0clm(y ~ x^2)\u00a0\u4f1a\u62df\u5408\u4e00\u4e2a\u4e8c\u6b21\u591a\u9879\u5f0f\u6a21\u578b\u3002 2. \u4ea4\u4e92\u9879\u548c\u4ea4\u4e92\u9879\uff1a\u4f7f\u7528\u00a0:\u00a0\u7b26\u53f7\u6765\u6dfb\u52a0\u4ea4\u4e92\u9879\u3002\u4f8b\u5982\uff0clm(y ~ x1:x2)\u00a0\u4f1a\u521b\u5efa\u4e00\u4e2a\u00a0x1\u00a0\u548c\u00a0x2\u00a0\u7684\u4ea4\u4e92\u9879\u3002 3. \u4ea4\u4e92\u9879\u548c\u4ea4\u4e92\u9879\u7684\u4ea4\u4e92\u9879\uff1a\u4f7f\u7528\u00a0#\u00a0\u7b26\u53f7\u6765\u521b\u5efa\u66f4\u9ad8\u9636\u7684\u4ea4\u4e92\u9879\u3002\u4f8b\u5982\uff0clm(y ~ x1#x2)\u00a0\u4f1a\u521b\u5efa\u4e00\u4e2a\u00a0x1\u00a0\u548c\u00a0x2\u00a0\u7684\u4e8c\u9636\u4ea4\u4e92\u9879\u3002 4. \u865a\u62df\u53d8\u91cf\uff08\u4e5f\u79f0\u4e3a\u54d1\u53d8\u91cf\uff09\uff1a\u5982\u679c\u4f60\u60f3\u5728\u6a21\u578b\u4e2d\u5305\u542b\u5206\u7c7b\u53d8\u91cf\uff0c\u5e76\u60f3\u5c06\u5b83\u4eec\u8f6c\u5316\u4e3a\u865a\u62df\u53d8\u91cf\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u00a0as.factor()\u00a0\u51fd\u6570\u6216\u8005\u5728\u516c\u5f0f\u4e2d\u4f7f\u7528\u00a0-\u00a0\u7b26\u53f7\u3002\u4f8b\u5982\uff0clm(y ~ factor(x) + z)\u00a0\u6216\u00a0lm(y ~ x - z)\u3002 5. \u975e\u7ebf\u6027\u6a21\u578b\uff1a\u867d\u7136\u00a0lm()\u00a0\u51fd\u6570\u4e3b\u8981\u7528\u4e8e\u7ebf\u6027\u6a21\u578b\uff0c\u4f46\u4f60\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u975e\u7ebf\u6027\u51fd\u6570\u6765\u521b\u5efa\u975e\u7ebf\u6027\u6a21\u578b\u3002\u4f8b\u5982\uff0clm(y ~ poly(x, 2, raw=TRUE))\u00a0\u4f1a\u521b\u5efa\u4e00\u4e2a\u5305\u542b\u00a0x\u00a0\u7684\u4e8c\u6b21\u591a\u9879\u5f0f\u7684\u975e\u7ebf\u6027\u6a21\u578b\u3002 6. \u57fa\u4e8e\u51fd\u6570\u7684\u9884\u6d4b\u53d8\u91cf\uff1a\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u4e49\u51fd\u6570\u6765\u8f6c\u6362\u9884\u6d4b\u53d8\u91cf\u3002\u4f8b\u5982\uff0clm(y ~ log(x))\u00a0\u4f1a\u521b\u5efa\u4e00\u4e2a\u4ee5\u00a0x\u00a0\u7684\u5bf9\u6570\u4e3a\u9884\u6d4b\u53d8\u91cf\u7684\u6a21\u578b\u3002 7. \u6df7\u5408\u6548\u5e94\u6a21\u578b\uff1a\u5982\u679c\u4f60\u60f3\u62df\u5408\u4e00\u4e2a\u6df7\u5408\u6548\u5e94\u6a21\u578b\uff08\u4e5f\u79f0\u4e3a\u968f\u673a\u6548\u5e94\u6a21\u578b\uff09\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u00a0lme()\u00a0\u6216\u00a0lmer()\u00a0\u51fd\u6570\uff0c\u8fd9\u4e24\u4e2a\u51fd\u6570\u6bd4\u00a0lm()\u00a0\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u7075\u6d3b\u6027\u3002 8. \u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\uff08GLM\uff09\uff1a\u8fd9\u662f\u66f4\u4e00\u822c\u7684\u7ebf\u6027\u6a21\u578b\u5f62\u5f0f\uff0c\u5141\u8bb8\u56e0\u53d8\u91cf\u7684\u5206\u5e03\u9664\u4e86\u6b63\u6001\u5206\u5e03\u5916\u8fd8\u6709\u5176\u4ed6\u7684\u5206\u5e03\u5f62\u5f0f\uff0c\u4f8b\u5982\u4e8c\u9879\u5206\u5e03\u3001\u6cca\u677e\u5206\u5e03\u7b49\u3002\u53ef\u4ee5\u4f7f\u7528\u00a0glm()\u00a0\u51fd\u6570\u6765\u62df\u5408\u8fd9\u4e9b\u6a21\u578b\u3002

"},{"location":"R/base-content/matrix%28%29/","title":"Matrix()","text":"

\u662f\u7528\u4e8e\u521b\u5efa\u77e9\u9635\uff08Matrix\uff09\u7684\u51fd\u6570\u3002\u77e9\u9635\u662f\u4e00\u4e2a\u4e8c\u7ef4\u7684\u6570\u636e\u7ed3\u6784\uff0c\u7531\u884c\u548c\u5217\u7ec4\u6210\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u5177\u6709\u76f8\u540c\u7684\u6570\u636e\u7c7b\u578b\u3002matrix() \u51fd\u6570\u6839\u636e\u7ed9\u5b9a\u7684\u53c2\u6570\u521b\u5efa\u4e00\u4e2a\u77e9\u9635\uff0c\u5e76\u8fd4\u56de\u8be5\u77e9\u9635\u5bf9\u8c61\u3002

matrix(data, nrow, ncol, byrow, dimnames)\n

  • data\uff1a\u8981\u586b\u5145\u5230\u77e9\u9635\u4e2d\u7684\u6570\u636e\u3002\u53ef\u4ee5\u662f\u5411\u91cf\u6216\u4e8c\u7ef4\u6570\u7ec4\u3002

  • nrow\uff1a\u77e9\u9635\u7684\u884c\u6570\u3002

  • ncol\uff1a\u77e9\u9635\u7684\u5217\u6570\u3002

  • byrow\uff1a\uff08\u53ef\u9009\uff09\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u6309\u884c\u586b\u5145\u6570\u636e\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u6309\u5217\u586b\u5145\u3002

  • dimnames\uff1a\uff08\u53ef\u9009\uff09\u4e00\u4e2a\u5305\u542b\u884c\u540d\u548c\u5217\u540d\u7684\u5217\u8868\u3002

  • \u521b\u5efa\u77e9\u9635\uff1a

    mat <- matrix(data = 1:6, nrow = 2, ncol = 3)\nprint(mat)\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `matrix()` \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u77e9\u9635\uff0c\u6570\u636e\u7531 1 \u5230 6 \u7ec4\u6210\uff0c\u884c\u6570\u4e3a 2\uff0c\u5217\u6570\u4e3a 3\u3002\n\n# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a\n     [,1] [,2] [,3]\n[1,]    1    3    5\n[2,]    2    4    6\n

  • \u6309\u884c\u586b\u5145\u6570\u636e\uff1a ```R mat <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE) print(mat)

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 matrix() \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u77e9\u9635\uff0c\u6570\u636e\u7531 1 \u5230 6 \u7ec4\u6210\uff0c\u884c\u6570\u4e3a 2\uff0c\u5217\u6570\u4e3a 3\uff0c\u5e76\u6309\u884c\u586b\u5145\u6570\u636e\u3002

# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6

``` 3. \u6dfb\u52a0\u884c\u540d\u548c\u5217\u540d\uff1a

mat <- matrix(data = 1:6, nrow = 2, ncol = 3,\n              dimnames = list(c(\"Row1\", \"Row2\"), c(\"Col1\", \"Col2\", \"Col3\")))\nprint(mat)\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `matrix()` \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u77e9\u9635\uff0c\u6570\u636e\u7531 1 \u5230 6 \u7ec4\u6210\uff0c\u884c\u6570\u4e3a 2\uff0c\u5217\u6570\u4e3a 3\uff0c\u5e76\u4e3a\u884c\u548c\u5217\u6dfb\u52a0\u540d\u79f0\u3002\n\n# \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a\n    Col1 Col2 Col3\nRow1    1    3    5\nRow2    2    4    6\n

matrix() \u51fd\u6570\u5728\u521b\u5efa\u77e9\u9635\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u63d0\u4f9b\u7684\u6570\u636e\u3001\u884c\u6570\u3001\u5217\u6570\u548c\u5176\u4ed6\u53c2\u6570\u6765\u751f\u6210\u6240\u9700\u7684\u77e9\u9635\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528 matrix() \u51fd\u6570\u521b\u5efa\u6570\u503c\u77e9\u9635\u3001\u5b57\u7b26\u578b\u77e9\u9635\u6216\u5176\u4ed6\u7c7b\u578b\u7684\u77e9\u9635\uff0c\u8fd8\u53ef\u4ee5\u9009\u62e9\u6309\u884c\u6216\u6309\u5217\u586b\u5145\u6570\u636e\uff0c\u5e76\u4e3a\u884c\u548c\u5217\u6dfb\u52a0\u540d\u79f0\u3002\u8fd9\u4e9b\u529f\u80fd\u4f7f\u5f97 matrix() \u51fd\u6570\u6210\u4e3a\u5904\u7406\u4e8c\u7ef4\u6570\u636e\u7ed3\u6784\u7684\u5f3a\u5927\u5de5\u5177\u3002

"},{"location":"R/base-content/mean%28%29/","title":"Mean()","text":"

mean()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6570\u503c\u5411\u91cf\u7684\u5e73\u5747\u503c\u3002\u5b83\u662fR\u8bed\u8a00\u4e2d\u7684\u57fa\u672c\u7edf\u8ba1\u51fd\u6570\u4e4b\u4e00\u3002

mean(x, trim = 0, na.rm = FALSE)\n

  • x\uff1a\u8868\u793a\u8981\u8ba1\u7b97\u5e73\u5747\u503c\u7684\u6570\u503c\u5411\u91cf\u3002

  • trim\uff1a\u4e00\u4e2a\u4ecb\u4e8e0\u548c1\u4e4b\u95f4\u7684\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u4fee\u526a\u7684\u6570\u636e\u7684\u6bd4\u4f8b\u3002\u9ed8\u8ba4\u503c\u4e3a0\uff0c\u8868\u793a\u4e0d\u8fdb\u884c\u4fee\u526a\u3002

  • na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5728\u8ba1\u7b97\u5e73\u5747\u503c\u65f6\u5ffd\u7565\u7f3a\u5931\u503c\uff08NA\uff09\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5ffd\u7565\u7f3a\u5931\u503c\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3aTRUE\uff0c\u5219\u5728\u8ba1\u7b97\u5e73\u5747\u503c\u65f6\u4f1a\u5ffd\u7565\u7f3a\u5931\u503c\u3002

  • \u8ba1\u7b97\u5411\u91cf\u7684\u5e73\u5747\u503c\uff1a

    x <- c(1, 3, 5, 7, 9)\nmean(x)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 5\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u8ba1\u7b97\u4e86\u5411\u91cfx\u7684\u5e73\u5747\u503c\uff0c\u7ed3\u679c\u4e3a5\u3002

  • \u5ffd\u7565\u7f3a\u5931\u503c\u7684\u5e73\u5747\u503c\u8ba1\u7b97\uff1a

    y <- c(1, 2, NA, 4, 5)\nmean(y, na.rm = TRUE)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 3\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86na.rm = TRUE\u53c2\u6570\uff0c\u8868\u793a\u5728\u8ba1\u7b97\u5e73\u5747\u503c\u65f6\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u7ed3\u679c\u4e2d\u7684NA\u88ab\u5ffd\u7565\uff0c\u8ba1\u7b97\u7684\u5e73\u5747\u503c\u4e3a3\u3002

  • \u8fdb\u884c\u4fee\u526a\u7684\u5e73\u5747\u503c\u8ba1\u7b97\uff1a

    z <- c(1, 2, 3, 4, 5)\nmean(z, trim = 0.2)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 3\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86trim = 0.2\u53c2\u6570\uff0c\u8868\u793a\u5bf9\u6570\u636e\u8fdb\u884c\u4fee\u526a\uff0c\u53bb\u6389\u6700\u4f4e\u548c\u6700\u9ad8\u768420%\u3002\u8ba1\u7b97\u7684\u5e73\u5747\u503c\u4e3a3\u3002

\u8fd9\u4e9b\u793a\u4f8b\u5c55\u793a\u4e86mean()\u51fd\u6570\u7684\u4e00\u4e9b\u5e38\u89c1\u7528\u6cd5\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528mean()\u51fd\u6570\u6765\u8ba1\u7b97\u6570\u503c\u5411\u91cf\u7684\u5e73\u5747\u503c\uff0c\u5e76\u8fdb\u884c\u7f3a\u5931\u503c\u5904\u7406\u6216\u6570\u636e\u4fee\u526a\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3mean()\u51fd\u6570\u7684\u7528\u6cd5\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/merge%28%29/","title":"Merge()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cmerge()\u51fd\u6570\u7528\u4e8e\u5408\u5e76\u4e24\u4e2a\u6216\u591a\u4e2a\u6570\u636e\u6846\uff08data frame\uff09\u6216\u6570\u636e\u96c6\uff08data set\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by,\n      all = FALSE, all.x = all, all.y = all,\n      sort = TRUE, suffixes = c(\".x\", \".y\"),\n      incomparables = NULL, ...)\n

\u53c2\u6570\uff1a \u4ee5\u4e0b\u662fmerge()\u51fd\u6570\u4e2d\u5e38\u7528\u7684\u53c2\u6570\uff1a - x\uff1a\u8981\u5408\u5e76\u7684\u7b2c\u4e00\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u3002 - y\uff1a\u8981\u5408\u5e76\u7684\u7b2c\u4e8c\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u3002 - by\uff1a\u6307\u5b9a\u7528\u4e8e\u5408\u5e76\u7684\u53d8\u91cf\uff08\u5217\uff09 \u7684\u540d\u79f0\u6216\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5b83\u662fx\u548cy\u4e2d\u5171\u6709\u7684\u5217\u540d\u3002 - by.x\uff1a\u6307\u5b9ax\u6570\u636e\u6846\u4e2d\u7528\u4e8e\u5408\u5e76\u7684\u53d8\u91cf\uff08\u5217\uff09\u7684\u540d\u79f0\u6216\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u503c\u4e3aby\u3002 - by.y\uff1a\u6307\u5b9ay\u6570\u636e\u6846\u4e2d\u7528\u4e8e\u5408\u5e76\u7684\u53d8\u91cf\uff08\u5217\uff09\u7684\u540d\u79f0\u6216\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u503c\u4e3aby\u3002 - all\uff1a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u5305\u62ec\u6240\u6709\u7684\u89c2\u6d4b\u503c\u3002\u5982\u679c\u4e3aFALSE\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u5219\u53ea\u5305\u62ec\u5728x\u548cy\u4e2d\u5171\u6709\u7684\u89c2\u6d4b\u503c\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u5305\u62ec\u6240\u6709\u89c2\u6d4b\u503c\uff0c\u7f3a\u5931\u503c\u7528NA\u586b\u5145\u3002 - all.x\uff1a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u5305\u62ecx\u4e2d\u7684\u6240\u6709\u89c2\u6d4b\u503c\u3002\u5982\u679c\u4e3aFALSE\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u5219\u53ea\u5305\u62ec\u5728x\u548cy\u4e2d\u5171\u6709\u7684\u89c2\u6d4b\u503c\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u5305\u62ecx\u4e2d\u7684\u6240\u6709\u89c2\u6d4b\u503c\uff0c\u7f3a\u5931\u503c\u7528NA\u586b\u5145\u3002 - all.y\uff1a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u5305\u62ecy\u4e2d\u7684\u6240\u6709\u89c2\u6d4b\u503c\u3002\u5982\u679c\u4e3aFALSE\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u5219\u53ea\u5305\u62ec\u5728x\u548cy\u4e2d\u5171\u6709\u7684\u89c2\u6d4b\u503c\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u5305\u62ecy\u4e2d\u7684\u6240\u6709\u89c2\u6d4b\u503c\uff0c\u7f3a\u5931\u503c\u7528NA\u586b\u5145\u3002 - sort\uff1a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u5bf9\u5408\u5e76\u540e\u7684\u6570\u636e\u6846\u8fdb\u884c\u6392\u5e8f\u3002\u5982\u679c\u4e3aTRUE\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u5219\u6309\u7167\u5408\u5e76\u7684\u5217\u8fdb\u884c\u6392\u5e8f\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u4fdd\u6301\u5408\u5e76\u524d\u7684\u89c2\u6d4b\u503c\u987a\u5e8f\u4e0d\u53d8\u3002 - suffixes\uff1a\u7528\u4e8e\u5728\u5408\u5e76\u65f6\u5904\u7406\u91cd\u590d\u5217\u540d\u7684\u540e\u7f00\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u901a\u8fc7\u5728x\u548cy\u4e2d\u91cd\u590d\u7684\u5217\u540d\u540e\u6dfb\u52a0.x\u548c.y\u540e\u7f00\u6765\u533a\u5206\u5b83\u4eec\u3002

  • incomparables\uff1a\u6307\u5b9a\u5728\u5408\u5e76\u65f6\u5982\u4f55\u5904\u7406\u4e0d\u53ef\u6bd4\u8f83\u7684\u503c\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684\u5408\u5e76\u51fd\u6570\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528merge()\u51fd\u6570\u5408\u5e76\u4e24\u4e2a\u6570\u636e\u6846\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e24\u4e2a\u6570\u636e\u6846\ndf1 <- data.frame(ID = c(1, 2, 3), Name = c(\"John\", \"Alice\", \"Bob\"))\ndf2 <- data.frame(ID = c(2, 3, 4), Age = c(25, 30, 35))\n\n# \u5408\u5e76\u6570\u636e\u6846\nmerged_df <- merge(df1, df2, by = \"ID\")\n\n# \u6253\u5370\u5408\u5e76\u540e\u7684\u6570\u636e\u6846\nprint(merged_df)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e24\u4e2a\u6570\u636e\u6846df1\u548cdf2\uff0c\u5206\u522b\u5305\u542bID\u548cName\u5217\uff0c\u4ee5\u53caID\u548cAge\u5217\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528merge()\u51fd\u6570\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u6309\u7167ID\u5217\u8fdb\u884c\u5408\u5e76\u3002\u7531\u4e8eID\u5217\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u90fd\u5b58\u5728\uff0c\u56e0\u6b64\u6211\u4eec\u4e0d\u9700\u8981\u663e\u5f0f\u6307\u5b9aby\u53c2\u6570\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u5408\u5e76\u540e\u7684\u6570\u636e\u6846merged_df\uff0c\u5b83\u5305\u542b\u4e86\u5408\u5e76\u524d\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5171\u6709\u7684ID\u5217\uff0c\u5e76\u5c06Name\u548cAge\u5217\u5408\u5e76\u5728\u4e00\u8d77\u3002

\u8bf7\u6ce8\u610f\uff0c\u4e0a\u8ff0\u793a\u4f8b\u4ec5\u6f14\u793a\u4e86\u57fa\u672c\u7528\u6cd5\uff0c\u66f4\u591a\u8be6\u7ec6\u7684\u53c2\u6570\u548c\u9009\u9879\u53ef\u4ee5\u53c2\u8003R\u8bed\u8a00\u7684\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528?merge\u547d\u4ee4\u67e5\u770b\u51fd\u6570\u7684\u5e2e\u52a9\u6587\u6863\u3002

"},{"location":"R/base-content/merge%28%29/#join","title":"\u4e0ejoin\u7684\u533a\u522b","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c*_join()\u51fd\u6570\u548cmerge()\u51fd\u6570\u90fd\u7528\u4e8e\u5408\u5e76\u6570\u636e\u96c6\uff0c\u4f46\u5b83\u4eec\u7684\u7528\u6cd5\u548c\u884c\u4e3a\u6709\u4e00\u4e9b\u533a\u522b\u3002

*_join()\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u51fd\u6570\uff08\u5982left_join()\u3001inner_join()\u3001right_join()\u3001full_join()\u7b49\uff09\uff0c\u800cmerge()\u51fd\u6570\u662f\u57fa\u7840\u7684R\u51fd\u6570\u3002

\u4e0b\u9762\u662f*_join()\u51fd\u6570\u548cmerge()\u51fd\u6570\u7684\u4e00\u4e9b\u533a\u522b\uff1a

  1. \u8bed\u6cd5\u548c\u7528\u6cd5\uff1a
  2. *_join()\u51fd\u6570\uff1a\u8fd9\u4e9b\u51fd\u6570\u7684\u8bed\u6cd5\u5f62\u5f0f\u4e3ax_join(x, y, by = ..., ...)\uff0c\u5176\u4e2dx\u548cy\u8868\u793a\u8981\u5408\u5e76\u7684\u6570\u636e\u96c6\uff0cby\u8868\u793a\u7528\u4e8e\u5339\u914d\u7684\u53d8\u91cf\u3002
  3. merge()\u51fd\u6570\uff1a\u8be5\u51fd\u6570\u7684\u8bed\u6cd5\u5f62\u5f0f\u4e3amerge(x, y, by = ..., ...)\uff0c\u5176\u4e2dx\u548cy\u8868\u793a\u8981\u5408\u5e76\u7684\u6570\u636e\u96c6\uff0cby\u8868\u793a\u7528\u4e8e\u5339\u914d\u7684\u53d8\u91cf\u3002

  4. \u5339\u914d\u65b9\u5f0f\uff1a

  5. *_join()\u51fd\u6570\uff1a\u8fd9\u4e9b\u51fd\u6570\u9ed8\u8ba4\u4f7f\u7528\u57fa\u4e8e\u53d8\u91cf\u7684\u5185\u8fde\u63a5\uff08inner join\uff09\uff0c\u4e5f\u53ef\u4ee5\u6839\u636e\u9700\u8981\u6307\u5b9a\u5176\u4ed6\u7c7b\u578b\u7684\u8fde\u63a5\uff0c\u5982\u5de6\u8fde\u63a5\uff08left join\uff09\u3001\u53f3\u8fde\u63a5\uff08right join\uff09\u548c\u5168\u8fde\u63a5\uff08full join\uff09\u3002
  6. merge()\u51fd\u6570\uff1a\u8be5\u51fd\u6570\u9ed8\u8ba4\u4f7f\u7528\u57fa\u4e8e\u53d8\u91cf\u7684\u5185\u8fde\u63a5\uff08inner join\uff09\uff0c\u4e5f\u53ef\u4ee5\u6839\u636e\u9700\u8981\u6307\u5b9a\u5176\u4ed6\u7c7b\u578b\u7684\u8fde\u63a5\uff0c\u5982\u5de6\u8fde\u63a5\uff08left join\uff09\u3001\u53f3\u8fde\u63a5\uff08right join\uff09\u548c\u5916\u8fde\u63a5\uff08outer join\uff09\u3002

  7. \u6570\u636e\u96c6\u7c7b\u578b\uff1a

  8. *_join()\u51fd\u6570\uff1a\u8fd9\u4e9b\u51fd\u6570\u53ef\u4ee5\u76f4\u63a5\u64cd\u4f5cdplyr\u5305\u4e2d\u7684\u6570\u636e\u6846\uff08tibble\uff09\u5bf9\u8c61\uff0c\u4e5f\u53ef\u4ee5\u64cd\u4f5c\u5176\u4ed6\u7c7b\u578b\u7684\u6570\u636e\u5bf9\u8c61\uff0c\u5982\u6570\u636e\u6846\uff08data.frame\uff09\u3002
  9. merge()\u51fd\u6570\uff1a\u8be5\u51fd\u6570\u53ef\u4ee5\u64cd\u4f5c\u57fa\u672c\u7684R\u6570\u636e\u5bf9\u8c61\uff0c\u5982\u6570\u636e\u6846\uff08data.frame\uff09\u3002

  10. \u9ed8\u8ba4\u884c\u4e3a\uff1a

  11. *_join()\u51fd\u6570\uff1a\u8fd9\u4e9b\u51fd\u6570\u5728\u5408\u5e76\u8fc7\u7a0b\u4e2d\u4f1a\u4fdd\u7559\u5339\u914d\u7684\u5217\uff0c\u5e76\u6839\u636e\u9700\u8981\u6dfb\u52a0\u524d\u7f00\u4ee5\u533a\u5206\u6765\u81ea\u4e0d\u540c\u6570\u636e\u96c6\u7684\u53d8\u91cf\u3002
  12. merge()\u51fd\u6570\uff1a\u8be5\u51fd\u6570\u5728\u5408\u5e76\u8fc7\u7a0b\u4e2d\u9ed8\u8ba4\u4e0d\u4fdd\u7559\u5339\u914d\u7684\u5217\uff0c\u5e76\u4e14\u4e0d\u6dfb\u52a0\u524d\u7f00\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c*_join()\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u529f\u80fd\u5f3a\u5927\u7684\u51fd\u6570\uff0c\u63d0\u4f9b\u4e86\u66f4\u76f4\u89c2\u3001\u6613\u7528\u548c\u4e00\u81f4\u7684\u8bed\u6cd5\uff0c\u5c24\u5176\u9002\u5408\u5728\u6570\u636e\u5206\u6790\u548c\u6570\u636e\u5904\u7406\u4e2d\u4f7f\u7528\u3002\u800cmerge()\u51fd\u6570\u662fR\u7684\u57fa\u7840\u51fd\u6570\uff0c\u9002\u7528\u4e8e\u57fa\u672c\u7684\u6570\u636e\u5408\u5e76\u64cd\u4f5c\u3002

\u603b\u7684\u6765\u8bf4\uff0c*_join()\u51fd\u6570\u548cmerge()\u51fd\u6570\u5728\u8bed\u6cd5\u548c\u7528\u6cd5\u4e0a\u6709\u6240\u5dee\u5f02\uff0c\u5e76\u4e14*_join()\u51fd\u6570\u63d0\u4f9b\u4e86\u66f4\u4e30\u5bcc\u7684\u8fde\u63a5\u9009\u9879\u548c\u66f4\u65b9\u4fbf\u7684\u64cd\u4f5c\u3002

\u5982\u679c\u60a8\u6709\u4efb\u4f55\u8fdb\u4e00\u6b65\u7684\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\uff01

"},{"location":"R/base-content/mode%28%29%E4%BC%97%E6%95%B0/","title":"Mode()\u4f17\u6570","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u6ca1\u6709\u5185\u7f6e\u51fd\u6570\u76f4\u63a5\u8ba1\u7b97\u4f17\u6570\uff08mode\uff09\uff0c\u56e0\u4e3a\u4f17\u6570\u4e0d\u50cf\u5747\u503c\u6216\u4e2d\u4f4d\u6570\u90a3\u6837\u662f\u57fa\u672c\u7684\u7edf\u8ba1\u91cf\u3002\u4f17\u6570\u662f\u6570\u636e\u96c6\u4e2d\u51fa\u73b0\u6b21\u6570\u6700\u591a\u7684\u503c\u3002\u4f46\u662f\uff0c\u4f60\u53ef\u4ee5\u7528\u51e0\u79cd\u65b9\u6cd5\u6765\u8ba1\u7b97\u4f17\u6570\u3002

"},{"location":"R/base-content/mode%28%29%E4%BC%97%E6%95%B0/#_1","title":"\u5355\u4e2a\u4f17\u6570\u7684\u60c5\u51b5","text":"

\u4e00\u79cd\u7b80\u5355\u7684\u65b9\u6cd5\u662f\u4f7f\u7528 table() \u51fd\u6570\u6765\u6784\u5efa\u9891\u7387\u8868\uff08\u56e0\u5b50\u7c7b\u578b\uff1f\uff1f\uff1f\uff09\uff0c\u7136\u540e\u4f7f\u7528 which.max() \u51fd\u6570\u627e\u5230\u6700\u5927\u503c\u5bf9\u5e94\u7684\u7d22\u5f15\uff0c\u50cf\u8fd9\u6837\uff1a 1\uff0c\u63a8\u8350

names(which.max(table(data_q1$viewers))\n

d <- c(4,5,3,1,6,7,8,9,11,12,32,1,3,4,5,5)\n\ntable(d) # \u751f\u6210\u9891\u7387\u8868\uff0c\u5e26\u6709\u5411\u91cf\u540d\u548c\u5bf9\u5e94\u9891\u7387\u503c\nwhich.max(table(d)) # \u4e0a\u9762\u662f\u540d\u79f05\uff0c\u4e0b\u9762\u6700\u5927\u9891\u7387\u5bf9\u5e94\u7684\u7d22\u5f15\u503c4\nnames(which.max(table(d))) # \u53d6\u540d\u79f0\n\nnames(table(d))\n

d <- c(2,1,3,4,5,6,7,8,9,0,11,12,32,1,3,4)\n\ntable(d) # \u751f\u6210\u9891\u7387\u8868\uff0c\u5e26\u6709\u5411\u91cf\u540d\u548c\u5bf9\u5e94\u9891\u7387\u503c\nwhich.max(table(d)) # \u4e0a\u9762\u662f\u540d\u79f01\uff0c\u4e0b\u9762\u6700\u5927\u9891\u7387\u5bf9\u5e94\u7684\u7d22\u5f15\u503c2\nnames(which.max(table(d))) \n\nnames(table(d))\n

2\uff0c

# \u5b9a\u4e49\u4e00\u4e2a\u8ba1\u7b97\u4f17\u6570\u7684\u51fd\u6570\nMode <- function(x) {\n  ux <- unique(x)\n  ux[which.max(tabulate(match(x, ux)))]\n}\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u5411\u91cf\nx <- c(1, 2, 2, 3, 3, 3, 4, 4, 4, 4)\n\n# \u8c03\u7528\u81ea\u5b9a\u4e49\u7684\u4f17\u6570\u51fd\u6570\nmode_value <- Mode(x)\nprint(mode_value)\n

\u5982\u679c\u4f60\u6709 dplyr \u5305\u5b89\u88c5\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528 dplyr \u7684\u529f\u80fd\u6765\u8ba1\u7b97\u4f17\u6570\uff0c\u4f8b\u5982\uff1a

library(dplyr)\n\n# \u4f7f\u7528 dplyr \u8ba1\u7b97\u4f17\u6570\nmode_value <- x %>%\n  as.data.frame() %>%\n  group_by(value = x) %>%\n  summarise(count = n()) %>%\n  arrange(desc(count)) %>%\n  slice(1) %>%\n  pull(value)\n\nprint(mode_value)\n

\u8bf7\u6ce8\u610f\uff0c\u5982\u679c\u6570\u636e\u4e2d\u6709\u591a\u4e2a\u4f17\u6570\uff08\u4e5f\u5c31\u662f\u8bf4\uff0c\u6709\u591a\u4e2a\u503c\u62e5\u6709\u76f8\u540c\u7684\u6700\u9ad8\u9891\u7387\uff09\uff0c\u4e0a\u8ff0\u4e24\u79cd\u65b9\u6cd5\u90fd\u53ea\u4f1a\u8fd4\u56de\u5176\u4e2d\u4e00\u4e2a\u3002\u5982\u679c\u4f60\u60f3\u8981\u8fd4\u56de\u6240\u6709\u4f17\u6570\uff0c\u9700\u8981\u5bf9\u51fd\u6570\u8fdb\u884c\u4fee\u6539\uff0c\u4ee5\u4fbf\u5b83\u80fd\u591f\u5904\u7406\u8fd9\u79cd\u60c5\u51b5\u3002

"},{"location":"R/base-content/mode%28%29%E4%BC%97%E6%95%B0/#_2","title":"\u591a\u4e2a\u4f17\u6570\u7684\u60c5\u51b5","text":"

\u5728\u5b58\u5728\u591a\u4e2a\u4f17\u6570\u7684\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u7f16\u5199\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684 R \u51fd\u6570\u6765\u627e\u51fa\u6240\u6709\u7684\u4f17\u6570\u3002\u8fd9\u4e2a\u51fd\u6570\u5c06\u4f7f\u7528 table() \u51fd\u6570\u6765\u521b\u5efa\u4e00\u4e2a\u9891\u7387\u8868\uff0c\u5e76\u627e\u51fa\u6240\u6709\u51fa\u73b0\u9891\u7387\u6700\u9ad8\u7684\u503c\u3002\u8fd9\u91cc\u6709\u4e00\u4e2a\u7b80\u5355\u7684\u51fd\u6570\u5b9a\u4e49\u793a\u4f8b\uff1a

Mode <- function(x) {\n  freq_table <- table(x)\n  mode_values <- names(freq_table[freq_table == max(freq_table)])\n  as.numeric(mode_values)\n}\n\n# \u521b\u5efa\u4e00\u4e2a\u542b\u6709\u591a\u4e2a\u4f17\u6570\u7684\u5411\u91cf\nx <- c(1, 1, 2, 2, 3, 3, 4)\n\n# \u8c03\u7528\u81ea\u5b9a\u4e49\u7684\u4f17\u6570\u51fd\u6570\nmode_values <- Mode(x)\nprint(mode_values)\n\n## \u8f93\u51fa\n# [1, 2, 3]\n

\u5728\u8fd9\u4e2a\u51fd\u6570\u4e2d\uff1a

  1. table(x) \u8ba1\u7b97\u5411\u91cf x \u4e2d\u6bcf\u4e2a\u503c\u7684\u51fa\u73b0\u9891\u7387\u3002
  2. freq_table == max(freq_table) \u627e\u51fa\u6240\u6709\u51fa\u73b0\u9891\u7387\u7b49\u4e8e\u6700\u5927\u9891\u7387\u7684\u503c\u3002
  3. names() \u83b7\u53d6\u8fd9\u4e9b\u9891\u7387\u503c\u7684\u540d\u79f0\uff0c\u8fd9\u4e9b\u540d\u79f0\u5b9e\u9645\u4e0a\u5c31\u662f\u5411\u91cf x \u4e2d\u7684\u503c\u3002
  4. as.numeric() \u5c06\u7ed3\u679c\u8f6c\u6362\u4e3a\u6570\u503c\u7c7b\u578b\uff0c\u56e0\u4e3a table() \u51fd\u6570\u7684\u7ed3\u679c\u4f1a\u8fd4\u56de\u56e0\u5b50\u7c7b\u578b\u7684\u540d\u79f0\u3002

\u5f53\u4f60\u8fd0\u884c\u8fd9\u4e2a\u51fd\u6570\u65f6\uff0c\u5b83\u4f1a\u8fd4\u56de\u5411\u91cf\u4e2d\u6240\u6709\u7684\u4f17\u6570\u3002\u5982\u679c\u6709\u591a\u4e2a\u503c\u51fa\u73b0\u9891\u7387\u76f8\u540c\u4e14\u90fd\u662f\u6700\u9ad8\u7684\uff0c\u90a3\u4e48\u8fd9\u4e9b\u503c\u90fd\u5c06\u88ab\u8fd4\u56de\u3002

\u6216\u76f4\u63a5\u5728df\u4e0a\u8fdb\u884c\u64cd\u4f5c\uff1a

# the function for computing mode\nmode <- df_bbt %>% \n  group_by(Viewers..millions.) %>%\n  summarise(count = n()) %>% \n  slice_max(count, with_ties = TRUE)\n\n# the mean, median, and mode\ncat(paste0(\"the mean of viewers:\", round(mean(df_bbt$Viewers..millions.),2), \"\\n\",\n          \"the median of viewers:\", median(df_bbt$Viewers..millions.), \"\\n\"))\ncat(\"the mode of viewers:\", mode$Viewers..millions.)\n
"},{"location":"R/base-content/na.omit%28%29/","title":"Na.omit()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cna.omit()\u51fd\u6570\u7528\u4e8e\u5220\u9664\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u89c2\u6d4b\u884c\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u6216\u5411\u91cf\uff0c\u5176\u4e2d\u4e0d\u5305\u542b\u4efb\u4f55\u7f3a\u5931\u503c\u3002

na.omit(object)\n
\u5176\u4e2d\uff0cobject\u662f\u8981\u5904\u7406\u7684\u6570\u636e\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u6570\u636e\u6846\u3001\u77e9\u9635\u6216\u5411\u91cf\u3002 - \u5bf9\u4e8e\u6570\u636e\u6846\u548c\u77e9\u9635\uff1a - na.omit()\u51fd\u6570\u5c06\u5220\u9664\u5305\u542b\u4efb\u4f55\u7f3a\u5931\u503c\u7684\u89c2\u6d4b\u884c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u6216\u77e9\u9635\uff0c\u5176\u4e2d\u4e0d\u5305\u542b\u7f3a\u5931\u503c\u3002 - \u7f3a\u5931\u503c\u53ef\u4ee5\u662fNA\u6216NaN\u3002 - \u5982\u679c\u6570\u636e\u6846\u6216\u77e9\u9635\u4e2d\u7684\u67d0\u4e00\u5217\uff08\u53d8\u91cf\uff09\u5305\u542b\u7f3a\u5931\u503c\uff0c\u90a3\u4e48\u8be5\u5217\u4e2d\u5bf9\u5e94\u7684\u89c2\u6d4b\u884c\u5c06\u88ab\u5220\u9664\u3002

```R\n# \u521b\u5efa\u4e00\u4e2a\u5305\u542b\u7f3a\u5931\u503c\u7684\u6570\u636e\u6846\ndf <- data.frame(A = c(1, 2, NA, 4), B = c(NA, 2, 3, 4))\n\n# \u5220\u9664\u5305\u542b\u7f3a\u5931\u503c\u7684\u89c2\u6d4b\u884c\nnew_df <- na.omit(df)\n\n# \u6253\u5370\u65b0\u7684\u6570\u636e\u6846\nprint(new_df)\n```\n

\u8f93\u51fa\uff1a

     A B\n   2 2 2\n   4 4 4\n
  • \u5bf9\u4e8e\u5411\u91cf\uff1a
  • na.omit()\u51fd\u6570\u5c06\u5220\u9664\u5411\u91cf\u4e2d\u7684\u4efb\u4f55\u7f3a\u5931\u503c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u4e0d\u5305\u542b\u7f3a\u5931\u503c\u3002
  • \u7f3a\u5931\u503c\u53ef\u4ee5\u662fNA\u6216NaN\u3002

    # \u521b\u5efa\u4e00\u4e2a\u5305\u542b\u7f3a\u5931\u503c\u7684\u5411\u91cf\nvec <- c(1, 2, NA, 4, NaN)\n\n# \u5220\u9664\u7f3a\u5931\u503c\nnew_vec <- na.omit(vec)\n\n# \u6253\u5370\u65b0\u7684\u5411\u91cf\nprint(new_vec)\n

    \u8f93\u51fa\uff1a

    [1] 1 2 4\n

\u603b\u7ed3\u8d77\u6765\uff0cna.omit()\u51fd\u6570\u7528\u4e8e\u5220\u9664\u5305\u542b\u7f3a\u5931\u503c\u7684\u89c2\u6d4b\u884c\u6216\u5411\u91cf\u5143\u7d20\uff0c\u4ee5\u4fbf\u8fdb\u884c\u6570\u636e\u6e05\u6d17\u548c\u5206\u6790\u3002

"},{"location":"R/base-content/names%28%29/","title":"Names()","text":"

\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u6216\u8bbe\u7f6e\u5bf9\u8c61\u7684\u540d\u79f0\uff08names\uff09\u3002names() \u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u6216\u8bbe\u7f6e\u5bf9\u8c61\u7684\u540d\u79f0\u3002\u5982\u679c\u5bf9\u8c61\u5177\u6709\u540d\u79f0\uff0c\u8be5\u51fd\u6570\u5c06\u8fd4\u56de\u4e00\u4e2a\u5b57\u7b26\u578b\u5411\u91cf\uff0c\u5176\u4e2d\u5305\u542b\u5bf9\u8c61\u7684\u540d\u79f0\u3002\u5982\u679c\u5bf9\u8c61\u6ca1\u6709\u540d\u79f0\uff0c\u5219\u8fd4\u56de NULL\u3002

names(object)\n
- object\uff1a\u8981\u83b7\u53d6\u6216\u8bbe\u7f6e\u540d\u79f0\u7684\u5bf9\u8c61\u3002

  1. \u83b7\u53d6\u5bf9\u8c61\u7684\u540d\u79f0\uff1a
    fruits <- c(\"apple\", \"banana\", \"orange\")\nnames(fruits) <- c(\"A\", \"B\", \"C\")\nresult <- names(fruits)\nprint(result)  # \u8f93\u51fa\uff1a\"A\" \"B\" \"C\"\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528 `c()` \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u5b57\u7b26\u578b\u5411\u91cf `fruits`\uff0c\u7136\u540e\u4f7f\u7528 `names()` \u51fd\u6570\u4e3a\u5411\u91cf\u7684\u6bcf\u4e2a\u5143\u7d20\u5206\u914d\u4e86\u540d\u79f0\u3002\u6700\u540e\uff0c\u4f7f\u7528 `names()` \u51fd\u6570\u83b7\u53d6\u5411\u91cf `fruits` \u7684\u540d\u79f0\u3002\n
  2. \u8bbe\u7f6e\u5bf9\u8c61\u7684\u540d\u79f0\uff1a
    nums <- c(1, 2, 3)\nnames(nums) <- c(\"one\", \"two\", \"three\")\nprint(nums)  # \u8f93\u51fa\uff1a1 2 3\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528 `c()` \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u503c\u5411\u91cf `nums`\uff0c\u7136\u540e\u4f7f\u7528 `names()` \u51fd\u6570\u4e3a\u5411\u91cf\u7684\u6bcf\u4e2a\u5143\u7d20\u5206\u914d\u4e86\u540d\u79f0\u3002\n
  3. \u79fb\u9664\u5bf9\u8c61\u7684\u540d\u79f0\uff1a
    fruits <- c(\"apple\", \"banana\", \"orange\")\nnames(fruits) <- NULL\nresult <- names(fruits)\nprint(result)  # \u8f93\u51fa\uff1aNULL\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `names()` \u51fd\u6570\u5c06\u5411\u91cf `fruits` \u7684\u540d\u79f0\u8bbe\u7f6e\u4e3a `NULL`\uff0c\u4ece\u800c\u79fb\u9664\u4e86\u5411\u91cf\u7684\u540d\u79f0\u3002\n
    names() \u51fd\u6570\u5728\u5904\u7406\u5bf9\u8c61\u7684\u540d\u79f0\u65f6\u975e\u5e38\u6709\u7528\u3002\u53ef\u4ee5\u4f7f\u7528 names() \u51fd\u6570\u83b7\u53d6\u5bf9\u8c61\u7684\u540d\u79f0\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528 names() \u51fd\u6570\u4e3a\u5bf9\u8c61\u5206\u914d\u540d\u79f0\u6216\u79fb\u9664\u540d\u79f0\u3002\u8fd9\u5bf9\u4e8e\u5bf9\u6570\u636e\u8fdb\u884c\u6807\u8bb0\u3001\u7d22\u5f15\u548c\u5f15\u7528\u7b49\u64cd\u4f5c\u975e\u5e38\u6709\u5e2e\u52a9\u3002
"},{"location":"R/base-content/ncol%28%29/","title":"Ncol()","text":"

ncol() \u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u77e9\u9635\u6216\u6570\u636e\u6846\u7684\u5217\u6570\u3002ncol() \u51fd\u6570\u8fd4\u56de\u6307\u5b9a\u5bf9\u8c61\u7684\u5217\u6570\u3002

ncol(x)\n
- x\uff1a\u8981\u83b7\u53d6\u5217\u6570\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u77e9\u9635\u6216\u6570\u636e\u6846\u3002

\u793a\u4f8b 1\uff1a\u83b7\u53d6\u77e9\u9635\u7684\u5217\u6570

mat <- matrix(1:6, nrow = 2, ncol = 3)\nnum_cols <- ncol(mat)\nprint(num_cols)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 3\n

\u793a\u4f8b 2\uff1a\u83b7\u53d6\u6570\u636e\u6846\u7684\u5217\u6570

df <- data.frame(A = 1:3, B = 4:6, C = 7:9)\nnum_cols <- ncol(df)\nprint(num_cols)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 3\n

\u975e\u5e38\u62b1\u6b49\u7ed9\u60a8\u5e26\u6765\u7684\u56f0\u6270\uff0c\u6211\u4f1a\u5c3d\u529b\u786e\u4fdd\u63d0\u4f9b\u6b63\u786e\u7684\u4ee3\u7801\u683c\u5f0f\u3002\u5982\u679c\u60a8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u544a\u8bc9\u6211\u3002

"},{"location":"R/base-content/nlevels%28%29/","title":"Nlevels()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cnlevels()\u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u56e0\u5b50\uff08factor\uff09\u5bf9\u8c61\u7684\u6c34\u5e73\u6570\u91cf\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

nlevels(x)\n

\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u56e0\u5b50\u5bf9\u8c61\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528nlevels()\u51fd\u6570\u83b7\u53d6\u56e0\u5b50\u6c34\u5e73\u6570\u91cf\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b\u56e0\u5b50\nfactor_vector <- factor(c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\"))\n\n# \u83b7\u53d6\u56e0\u5b50\u7684\u6c34\u5e73\u6570\u91cf\nnum_levels <- nlevels(factor_vector)\n\n# \u6253\u5370\u56e0\u5b50\u7684\u6c34\u5e73\u6570\u91cf\nprint(num_levels)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u56e0\u5b50factor_vector\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u6c34\u5e73\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528nlevels()\u51fd\u6570\u83b7\u53d6factor_vector\u7684\u6c34\u5e73\u6570\u91cf\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5728num_levels\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fanum_levels\uff0c\u5b83\u8868\u793a\u4e86factor_vector\u7684\u6c34\u5e73\u6570\u91cf\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] 3\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230factor_vector\u5171\u67093\u4e2a\u6c34\u5e73\u3002

"},{"location":"R/base-content/nrow%28%29/","title":"Nrow()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cnrow() \u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u6570\u636e\u6846\uff08df\uff09\u7684\u89c2\u6d4b\u6570\u91cf\uff08\u884c\u6570\uff09\u3002\u4e0b\u9762\u662f\u53c2\u6570\u7684\u8be6\u7ec6\u89e3\u91ca\u548c\u4e3e\u4f8b\uff1a

nrow(df)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u8ba1\u7b97\u89c2\u6d4b\u6570\u91cf\u7684\u5bf9\u8c61\uff0c\u901a\u5e38\u662f\u6570\u636e\u6846\uff08df\uff09\u6216\u77e9\u9635\u3002 \u793a\u4f8b\uff1a
# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(\n  x = c(1, 2, 3),\n  y = c(\"a\", \"b\", \"c\")\n)\n\n# \u83b7\u53d6\u6570\u636e\u6846\u7684\u89c2\u6d4b\u6570\u91cf\nnum_obs <- nrow(df)\nprint(num_obs)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846 df\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e24\u5217\u53d8\u91cf x \u548c y\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 nrow() \u51fd\u6570\u83b7\u53d6\u6570\u636e\u6846 df \u7684\u89c2\u6d4b\u6570\u91cf\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u53d8\u91cf num_obs \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u8f93\u51fa\u7ed3\u679c\u3002

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 3\n

\u8fd9\u8868\u793a\u6570\u636e\u6846 df \u4e2d\u6709 3 \u4e2a\u89c2\u6d4b\u3002

nrow() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u5176\u4ed6\u5bf9\u8c61\uff0c\u4f8b\u5982\u77e9\u9635\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u77e9\u9635\nmat <- matrix(1:9, nrow = 3, ncol = 3)\n\n# \u83b7\u53d6\u77e9\u9635\u7684\u89c2\u6d4b\u6570\u91cf\nnum_obs <- nrow(mat)\nprint(num_obs)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u77e9\u9635 mat\uff0c\u5176\u4e2d\u5305\u542b\u4e86 3 \u884c\u548c 3 \u5217\u7684\u5143\u7d20\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 nrow() \u51fd\u6570\u83b7\u53d6\u77e9\u9635 mat \u7684\u89c2\u6d4b\u6570\u91cf\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u53d8\u91cf num_obs \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u8f93\u51fa\u7ed3\u679c\u3002

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 3\n

\u8fd9\u8868\u793a\u77e9\u9635 mat \u4e2d\u6709 3 \u4e2a\u89c2\u6d4b\uff08\u5373\u884c\u6570\uff09\u3002

\u603b\u7ed3\u8d77\u6765\uff0cnrow() \u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u6570\u636e\u6846\u6216\u77e9\u9635\u7684\u89c2\u6d4b\u6570\u91cf\uff08\u884c\u6570\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u65b9\u4fbf\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u786e\u5b9a\u6570\u636e\u5bf9\u8c61\u7684\u5927\u5c0f\u3002

"},{"location":"R/base-content/optim%28%29/","title":"Optim()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0coptim()\u51fd\u6570\u662f\u4e00\u4e2a\u7528\u4e8e\u6700\u4f18\u5316\u95ee\u9898\u7684\u5185\u7f6e\u51fd\u6570\uff0c\u5b83\u53ef\u4ee5\u5bfb\u627e\u7ed9\u5b9a\u76ee\u6807\u51fd\u6570\u7684\u6700\u5c0f\u503c\u6216\u6700\u5927\u503c\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

optim(par, fn, ..., method = \"Nelder-Mead\", lower = -Inf, upper = Inf, control = list(), hessian = FALSE)\n

\u53c2\u6570\uff1a - par\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u76ee\u6807\u51fd\u6570\u7684\u53c2\u6570\u7684\u521d\u59cb\u503c\u3002

  • fn\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u8868\u793a\u8981\u6700\u5c0f\u5316\u6216\u6700\u5927\u5316\u7684\u76ee\u6807\u51fd\u6570\u3002\u8be5\u51fd\u6570\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u5e94\u662f\u53c2\u6570\u5411\u91cf\u3002cost\u51fd\u6570\uff0c\u4e60\u60ef\u6027\u7528\u4e00\u4e2a\u5411\u91cf\u6765\u66ff\u4ee3\u591a\u5143
fr <- function(x) {   ## Rosenbrock Banana function\n    x1 <- x[1]\n    x2 <- x[2]\n    100 * (x2 - x1 * x1)^2 + (1 - x1)^2\n}\n
  • ...\uff1a\u4f20\u9012\u7ed9\u76ee\u6807\u51fd\u6570fn\u7684\u5176\u4ed6\u53c2\u6570\u3002
  • method\uff1a\u4e00\u4e2a\u5b57\u7b26\uff0c\u8868\u793a\u8981\u4f7f\u7528\u7684\u4f18\u5316\u7b97\u6cd5\u7684\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3a\"Nelder-Mead\"\uff0c\u8868\u793a\u4f7f\u7528Nelder-Mead\u7b97\u6cd5\u3002
  • lower\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u53c2\u6570\u7684\u4e0b\u754c\u3002\u9ed8\u8ba4\u4e3a\u8d1f\u65e0\u7a77\u3002
  • upper\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u53c2\u6570\u7684\u4e0a\u754c\u3002\u9ed8\u8ba4\u4e3a\u6b63\u65e0\u7a77\u3002
  • control\uff1a\u4e00\u4e2a\u5217\u8868\uff0c\u7528\u4e8e\u6307\u5b9a\u4f18\u5316\u7b97\u6cd5\u7684\u63a7\u5236\u53c2\u6570\u3002
  • hessian\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8ba1\u7b97\u76ee\u6807\u51fd\u6570\u7684\u6d77\u68ee\u77e9\u9635\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u8ba1\u7b97\u3002

\u8f93\u51fa\u7ed3\u679c\u5305\u542b\u4ee5\u4e0b\u4fe1\u606f\uff1a - $par\uff1a\u627e\u5230\u7684\u6700\u4f18\u53c2\u6570\u5411\u91cf\u3002 - $value\uff1a\u76ee\u6807\u51fd\u6570\u5728\u6700\u4f18\u53c2\u6570\u5904\u7684\u503c\u3002 - $counts\uff1a\u4f18\u5316\u8fc7\u7a0b\u4e2d\u51fd\u6570\u548c\u68af\u5ea6\u7684\u8ba1\u7b97\u6b21\u6570\u3002 - $convergence\uff1a\u6307\u793a\u7b97\u6cd5\u662f\u5426\u6536\u655b\u7684\u6807\u5fd7\u3002 \u5982\u679c\u4f18\u5316\u7b97\u6cd5\u6210\u529f\u6536\u655b\u5230\u505c\u6b62\u6761\u4ef6\uff0cconvergence\u7684\u503c\u4e3a0\uff0c\u8868\u793a\u6536\u655b\u3002 \u5982\u679c\u4f18\u5316\u7b97\u6cd5\u672a\u80fd\u6536\u655b\u5230\u505c\u6b62\u6761\u4ef6\uff0cconvergence\u7684\u503c\u4e3a1\uff0c\u8868\u793a\u672a\u6536\u655b\u3002 - $message\uff1a\u5982\u679c\u6709\u4efb\u4f55\u8b66\u544a\u6216\u9519\u8bef\uff0c\u5c06\u5305\u542b\u76f8\u5173\u4fe1\u606f\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u5e38\u89c1\u7528\u6cd5\u7684\u793a\u4f8b\uff1a

# \u5b9a\u4e49\u76ee\u6807\u51fd\u6570\nrosenbrock <- function(x) {\n  sum(100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2)\n}\n\n# \u4f7f\u7528optim\u51fd\u6570\u5bfb\u627e\u76ee\u6807\u51fd\u6570\u7684\u6700\u5c0f\u503c\nresult <- optim(c(0, 0), rosenbrock)\n\nprint(result)\n
\u8f93\u51fa\uff1a
$par\n[1] 1 1\n\n$value\n[1] 1.413587e-25\n\n$counts\nfunction gradient \n     103       NA \n\n$convergence\n[1] 0\n\n$message\nNULL\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5b9a\u4e49\u4e86\u4e00\u4e2a\u76ee\u6807\u51fd\u6570rosenbrock\uff0c\u8be5\u51fd\u6570\u662f\u4e00\u4e2a\u8457\u540d\u7684Rosenbrock\u51fd\u6570\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528optim()\u51fd\u6570\u6765\u5bfb\u627e\u76ee\u6807\u51fd\u6570\u7684\u6700\u5c0f\u503c\u3002\u6211\u4eec\u5c06\u521d\u59cb\u53c2\u6570\u5411\u91cf\u8bbe\u7f6e\u4e3a(0, 0)\uff0c\u5e76\u5c06\u76ee\u6807\u51fd\u6570\u8bbe\u7f6e\u4e3arosenbrock\u3002\u6700\u540e\uff0c\u5c06\u7ed3\u679c\u5b58\u50a8\u5728result\u53d8\u91cf\u4e2d\u3002

"},{"location":"R/base-content/optim%28%29/#par","title":"par\u53c2\u6570","text":"

\u5728R\u4e2d\uff0coptim()\u51fd\u6570\u7684par\u53c2\u6570\u53ef\u4ee5\u63a5\u53d7\u4e0d\u4ec5\u4ec5\u662f\u5411\u91cf\u5f62\u5f0f\uff0c\u8fd8\u53ef\u4ee5\u662f\u77e9\u9635\u6216\u5217\u8868\u7b49\u5176\u4ed6\u5f62\u5f0f\u7684\u53c2\u6570\u3002 1. \u5411\u91cf\u5f62\u5f0f\uff1a\u5411\u91cf\u662foptim()\u51fd\u6570\u4e2d\u6700\u5e38\u89c1\u7684\u53c2\u6570\u5f62\u5f0f\u3002\u4f8b\u5982\uff0cpar = c(0, 0)\u8868\u793a\u521d\u59cb\u53c2\u6570\u4e3a\u957f\u5ea6\u4e3a2\u7684\u5411\u91cf\u3002 2. \u77e9\u9635\u5f62\u5f0f\uff1a\u5982\u679c\u4f60\u7684\u4f18\u5316\u95ee\u9898\u6d89\u53ca\u5230\u591a\u4e2a\u53c2\u6570\u5411\u91cf\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u77e9\u9635\u5f62\u5f0f\u7684par\u53c2\u6570\u3002\u6bcf\u4e2a\u53c2\u6570\u5411\u91cf\u5c06\u6210\u4e3a\u77e9\u9635\u7684\u4e00\u5217\u3002\u4f8b\u5982\uff0cpar = matrix(c(0, 0, 1, 1), ncol = 2)\u8868\u793a\u521d\u59cb\u53c2\u6570\u4e3a\u4e24\u4e2a2\u7ef4\u5411\u91cf\u3002 3. \u5217\u8868\u5f62\u5f0f\uff1a\u5217\u8868\u662f\u4e00\u79cd\u7075\u6d3b\u7684\u6570\u636e\u7ed3\u6784\uff0c\u53ef\u4ee5\u5305\u542b\u591a\u4e2a\u53c2\u6570\u5411\u91cf\u4ee5\u53ca\u5176\u4ed6\u76f8\u5173\u7684\u4fe1\u606f\u3002\u4f60\u53ef\u4ee5\u5c06\u4e00\u4e2a\u5217\u8868\u4f5c\u4e3apar\u53c2\u6570\u4f20\u9012\u7ed9optim()\u51fd\u6570\u3002\u4f8b\u5982\uff1a

params <- list(param1 = c(0, 0), param2 = c(1, 1))\nresult <- optim(par = params, fn = objective_function, method = \"BFGS\")\n
\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cparams\u662f\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u53c2\u6570\u5411\u91cf\u7684\u5217\u8868\u3002optim()\u51fd\u6570\u5c06\u901a\u8fc7\u9002\u5f53\u7684\u65b9\u6cd5\u5bf9\u6bcf\u4e2a\u53c2\u6570\u5411\u91cf\u8fdb\u884c\u4f18\u5316\u3002 \u603b\u800c\u8a00\u4e4b\uff0coptim()\u51fd\u6570\u4e2d\u7684par\u53c2\u6570\u53ef\u4ee5\u63a5\u53d7\u5411\u91cf\u3001\u77e9\u9635\u548c\u5217\u8868\u7b49\u4e0d\u540c\u5f62\u5f0f\u7684\u53c2\u6570\uff0c\u53ef\u4ee5\u6839\u636e\u4f60\u7684\u5177\u4f53\u60c5\u51b5\u9009\u62e9\u6700\u5408\u9002\u7684\u5f62\u5f0f\u3002\u8bb0\u5f97\u6839\u636e\u6240\u9009\u5f62\u5f0f\u548c\u4f18\u5316\u95ee\u9898\u7684\u8981\u6c42\u6765\u8c03\u6574\u76ee\u6807\u51fd\u6570\u548c\u5176\u4ed6\u53c2\u6570\u3002

"},{"location":"R/base-content/optim%28%29/#method","title":"method\u53c2\u6570","text":"

optim()\u51fd\u6570\u4e2d\u7684method\u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u4f18\u5316\u7b97\u6cd5\u7684\u65b9\u6cd5\u3002\u4e0b\u9762\u662f\u51e0\u79cd\u5e38\u7528\u7684\u65b9\u6cd5\u53ca\u5176\u7b80\u8981\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

  1. \"Nelder-Mead\"\uff08\u9ed8\u8ba4\uff09\uff1a\u5355\u7eaf\u5f62\u6cd5\uff08Nelder-Mead algorithm\uff09\u662f\u4e00\u79cd\u65e0\u5bfc\u6570\u4f18\u5316\u65b9\u6cd5\uff0c\u9002\u7528\u4e8e\u76ee\u6807\u51fd\u6570\u4e0d\u53ef\u5bfc\u6216\u4e0d\u65b9\u4fbf\u6c42\u5bfc\u7684\u60c5\u51b5\u3002\u793a\u4f8b\uff1a
    result <- optim(par = c(0, 0), fn = objective_function, method = \"Nelder-Mead\")\n
  2. \"BFGS\"\uff1a\u62df\u725b\u987f\u6cd5\uff08Broyden-Fletcher-Goldfarb-Shanno algorithm\uff09\u662f\u4e00\u79cd\u4f7f\u7528\u51fd\u6570\u503c\u548c\u68af\u5ea6\u4fe1\u606f\u6765\u903c\u8fd1\u6700\u4f18\u89e3\u7684\u4f18\u5316\u65b9\u6cd5\u3002\u793a\u4f8b\uff1a
    result <- optim(par = c(0, 0), fn = objective_function, method = \"BFGS\")\n
  3. \"L-BFGS-B\"\uff1a\u9650\u5236\u6027\u62df\u725b\u987f\u6cd5\uff08Limited-memory Broyden-Fletcher-Goldfarb-Shanno algorithm with box constraints\uff09\u662f\u4e00\u79cd\u62df\u725b\u987f\u6cd5\u7684\u53d8\u79cd\uff0c\u9002\u7528\u4e8e\u5e26\u6709\u8fb9\u754c\u7ea6\u675f\u7684\u95ee\u9898\u3002\u793a\u4f8b\uff1a
    result <- optim(par = c(0, 0), fn = objective_function, method = \"L-BFGS-B\")\n
  4. \"CG\"\uff1a\u5171\u8f6d\u68af\u5ea6\u6cd5\uff08Conjugate Gradient algorithm\uff09\u662f\u4e00\u79cd\u65e0\u7ea6\u675f\u4f18\u5316\u65b9\u6cd5\uff0c\u9002\u7528\u4e8e\u76ee\u6807\u51fd\u6570\u662f\u4e8c\u6b21\u578b\u7684\u60c5\u51b5\u3002\u793a\u4f8b\uff1a
    result <- optim(par = c(0, 0), fn = objective_function, method = \"CG\")\n
  5. \"SANN\"\uff1a\u6a21\u62df\u9000\u706b\u7b97\u6cd5\uff08Simulated Annealing algorithm\uff09\u662f\u4e00\u79cd\u968f\u673a\u641c\u7d22\u7b97\u6cd5\uff0c\u901a\u8fc7\u6a21\u62df\u9000\u706b\u8fc7\u7a0b\u5bfb\u627e\u5168\u5c40\u6700\u4f18\u89e3\u3002\u793a\u4f8b\uff1a
    result <- optim(par = c(0, 0), fn = objective_function, method = \"SANN\")\n

\u8fd9\u4e9b\u53ea\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u4f18\u5316\u65b9\u6cd5\u793a\u4f8b\uff0coptim()\u51fd\u6570\u8fd8\u652f\u6301\u5176\u4ed6\u65b9\u6cd5\uff0c\u5982\"CG\"\uff08\u5171\u8f6d\u68af\u5ea6\u6cd5\uff09\u3001\"Nelder-Mead\"\uff08\u5355\u7eaf\u5f62\u6cd5\uff09\u3001\"SANN\"\uff08\u6a21\u62df\u9000\u706b\u7b97\u6cd5\uff09\u7b49\u3002\u53ef\u4ee5\u901a\u8fc7\u67e5\u9605R\u7684\u5e2e\u52a9\u6587\u6863\uff08?optim\uff09\u6765\u83b7\u53d6\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\u548c\u793a\u4f8b\uff0c\u4e86\u89e3\u5404\u4e2a\u65b9\u6cd5\u7684\u9002\u7528\u8303\u56f4\u548c\u4f7f\u7528\u65b9\u5f0f\u3002

"},{"location":"R/base-content/options%28%29/","title":"Options()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0coptions()\u51fd\u6570\u7528\u4e8e\u8bbe\u7f6e\u548c\u67e5\u8be2\u5168\u5c40\u9009\u9879\u3002\u5b83\u5141\u8bb8\u4f60\u4fee\u6539R\u89e3\u91ca\u5668\u7684\u884c\u4e3a\uff0c\u4ee5\u9002\u5e94\u7279\u5b9a\u7684\u9700\u6c42\u3002options()\u51fd\u6570\u53ef\u4ee5\u63a5\u53d7\u591a\u4e2a\u53c2\u6570\uff0c\u6bcf\u4e2a\u53c2\u6570\u7528\u4e8e\u8bbe\u7f6e\u4e0d\u540c\u7684\u9009\u9879\u3002

\u4e0b\u9762\u662foptions()\u51fd\u6570\u7684\u5e38\u7528\u53c2\u6570\u53ca\u5176\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

  1. warn\uff1a\u63a7\u5236\u8b66\u544a\u4fe1\u606f\u7684\u663e\u793a\u3002
  2. \u53ef\u9009\u503c\u4e3a0\u30011\u62162\uff0c\u5206\u522b\u8868\u793a\u4e0d\u663e\u793a\u8b66\u544a\u3001\u663e\u793a\u8b66\u544a\uff08\u9ed8\u8ba4\uff09\u548c\u5c06\u8b66\u544a\u89c6\u4e3a\u9519\u8bef\u3002
  3. \u793a\u4f8b\uff1a

    # \u4e0d\u663e\u793a\u8b66\u544a\noptions(warn = 0)\n\n# \u663e\u793a\u8b66\u544a\uff08\u9ed8\u8ba4\uff09\noptions(warn = 1)\n\n# \u5c06\u8b66\u544a\u89c6\u4e3a\u9519\u8bef\noptions(warn = 2)\n
  4. digits\uff1a\u8bbe\u7f6e\u6d6e\u70b9\u6570\u7684\u663e\u793a\u7cbe\u5ea6\u3002

  5. \u53ef\u9009\u503c\u4e3a\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\uff0c\u8868\u793a\u8981\u663e\u793a\u7684\u5c0f\u6570\u4f4d\u6570\uff08\u9ed8\u8ba4\u4e3a7\uff09\u3002
  6. \u793a\u4f8b\uff1a

    # \u8bbe\u7f6e\u5c0f\u6570\u4f4d\u6570\u4e3a3\noptions(digits = 3)\n
  7. max.print\uff1a\u8bbe\u7f6e\u8981\u6253\u5370\u7684\u8f93\u51fa\u7684\u6700\u5927\u884c\u6570\u3002

  8. \u53ef\u9009\u503c\u4e3a\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\uff0c\u8868\u793a\u8981\u6253\u5370\u7684\u6700\u5927\u884c\u6570\uff08\u9ed8\u8ba4\u4e3a1000\uff09\u3002
  9. \u793a\u4f8b\uff1a

    # \u8bbe\u7f6e\u6700\u5927\u6253\u5370\u884c\u6570\u4e3a500\noptions(max.print = 500)\n
  10. scipen\uff1a\u63a7\u5236\u79d1\u5b66\u8ba1\u6570\u6cd5\u7684\u663e\u793a\u3002

  11. \u53ef\u9009\u503c\u4e3a\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\uff0c\u8868\u793a\u5728\u663e\u793a\u4e2d\u4f7f\u7528\u79d1\u5b66\u8ba1\u6570\u6cd5\u7684\u9608\u503c\uff08\u9ed8\u8ba4\u4e3a0\uff09\u3002
  12. \u793a\u4f8b\uff1a

    # \u9608\u503c\u4e3a2\u65f6\uff0c\u5927\u4e8e\u7b49\u4e8e1e2\u7684\u6570\u4f7f\u7528\u79d1\u5b66\u8ba1\u6570\u6cd5\noptions(scipen = 2)\n
  13. stringsAsFactors\uff1a\u63a7\u5236\u5b57\u7b26\u5411\u91cf\u7684\u8f6c\u6362\u884c\u4e3a\u3002

  14. \u53ef\u9009\u503c\u4e3aTRUE\u6216FALSE\uff0c\u8868\u793a\u662f\u5426\u5c06\u5b57\u7b26\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\uff08\u9ed8\u8ba4\u4e3aTRUE\uff09\u3002
  15. \u793a\u4f8b\uff1a

    # \u4e0d\u5c06\u5b57\u7b26\u5411\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\noptions(stringsAsFactors = FALSE)\n
  16. ...\uff1a\u5176\u4ed6\u9009\u9879\u53c2\u6570\u3002

  17. \u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u9009\u9879\u53c2\u6570\u6765\u8bbe\u7f6e\u6216\u67e5\u8be2\u5176\u4ed6\u5168\u5c40\u9009\u9879\u3002
  18. \u793a\u4f8b\uff1a

    # \u8bbe\u7f6e\u56fe\u5f62\u8bbe\u5907\u4e3aPNG\u683c\u5f0f\noptions(device = \"png\")\n\n# \u67e5\u8be2\u9ed8\u8ba4\u7684\u7ed8\u56fe\u8bbe\u5907\noptions(\"device\")\n

\u8fd9\u4e9b\u662foptions()\u51fd\u6570\u7684\u5e38\u89c1\u53c2\u6570\u548c\u793a\u4f8b\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528options()\u51fd\u6570\u6765\u8bbe\u7f6e\u548c\u67e5\u8be2\u5176\u4ed6\u5168\u5c40\u9009\u9879\uff0c\u5177\u4f53\u7684\u9009\u9879\u5217\u8868\u548c\u8bf4\u660e\u53ef\u4ee5\u5728R\u7684\u5b98\u65b9\u6587\u6863\u4e2d\u627e\u5230\u3002

"},{"location":"R/base-content/order%28%29/","title":"Order()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0corder()\u51fd\u6570\u7528\u4e8e\u786e\u5b9a\u5411\u91cf\u7684\u6392\u5e8f\u987a\u5e8f\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u6392\u5217\u7684\u7d22\u5f15\u5411\u91cf\uff0c\u8be5\u5411\u91cf\u6307\u793a\u539f\u59cb\u5411\u91cf\u6309\u7167\u5347\u5e8f\u6392\u5217\u7684\u987a\u5e8f\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

order(..., na.last = TRUE, decreasing = FALSE)\n
\u53c2\u6570\uff1a - ...\uff1a\u4e00\u4e2a\u6216\u591a\u4e2a\u8981\u6392\u5e8f\u7684\u5411\u91cf\u3002 - na.last\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u7f3a\u5931\u503c\uff08NA\uff09\u5728\u6392\u5e8f\u7ed3\u679c\u4e2d\u662f\u5426\u5e94\u653e\u5728\u6700\u540e\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u5373\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6700\u540e\u3002 - decreasing\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u6309\u7167\u964d\u5e8f\u8fdb\u884c\u6392\u5e8f\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u6309\u7167\u5347\u5e8f\u6392\u5e8f\u3002
# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nvalues <- c(10, 5, 20, NA, 12)\n\n# \u786e\u5b9a\u6392\u5e8f\u987a\u5e8f\nsorted_index <- order(values)\n\nprint(sorted_index)\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u6570\u503c\u548c\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u5411\u91cfvalues\u3002 \u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528order()\u51fd\u6570\u786e\u5b9a\u4e86values\u5411\u91cf\u7684\u6392\u5e8f\u987a\u5e8f\u3002\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6392\u5217\u7684\u7d22\u5f15\u5411\u91cf\uff0c\u5b83\u6307\u793a\u539f\u59cb\u5411\u91cf\u6309\u7167\u5347\u5e8f\u6392\u5217\u7684\u987a\u5e8f\u3002 \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0cvalues\u5411\u91cf\u6309\u7167\u5347\u5e8f\u6392\u5e8f\uff0c\u7ed3\u679c\u5982\u4e0b\uff1a

[1] 2 1 5 3 4 # \u8fd9\u4e2a\u7ed3\u679c\u6709\u95ee\u9898\u5427\uff1f\n

\u8fd9\u610f\u5473\u7740\u539f\u59cb\u5411\u91cf\u4e2d\u7684\u7b2c2\u4e2a\u5143\u7d20\u662f\u6700\u5c0f\u7684\uff0c\u7b2c1\u4e2a\u5143\u7d20\u662f\u7b2c\u4e8c\u5c0f\u7684\uff0c\u4f9d\u6b64\u7c7b\u63a8\u3002 \u60a8\u53ef\u4ee5\u4f7f\u7528sorted_index\u5411\u91cf\u6765\u91cd\u65b0\u6392\u5217\u539f\u59cb\u5411\u91cf\uff0c\u6216\u8005\u6839\u636e\u9700\u8981\u8bbf\u95ee\u6392\u5e8f\u540e\u7684\u5143\u7d20\u3002 order()\u51fd\u6570\u8fd8\u53ef\u4ee5\u63a5\u53d7\u591a\u4e2a\u5411\u91cf\u4f5c\u4e3a\u53c2\u6570\uff0c\u4ee5\u8fdb\u884c\u591a\u5217\u6392\u5e8f\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u51fd\u6570\u5c06\u6839\u636e\u6307\u5b9a\u7684\u5217\u4f9d\u6b21\u8fdb\u884c\u6392\u5e8f\uff0c\u5e76\u8fd4\u56de\u6309\u7167\u8fd9\u4e9b\u5217\u6392\u5e8f\u7684\u7d22\u5f15\u5411\u91cf\u3002

"},{"location":"R/base-content/order%28x%29/","title":"Order(x)","text":"

\u5f53\u4f7f\u7528 order() \u51fd\u6570\u5728 R \u4e2d\u5bf9\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u53c2\u6570\u8fdb\u884c\u63a7\u5236\uff1a

order(x, decreasing = FALSE, na.last = NA)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x: \u8981\u6392\u5e8f\u7684\u5411\u91cf\u3001\u6570\u7ec4\u3001\u6570\u636e\u6846\u6216\u77e9\u9635\u3002 - na.last: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u5982\u4f55\u5904\u7406\u7f3a\u5931\u503c\uff08NA\uff09\u3002\u9ed8\u8ba4\u4e3a NA\uff0c\u8868\u793a\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7684\u672b\u5c3e\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5219\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7684\u672b\u5c3e\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3a FALSE\uff0c\u5219\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7684\u5f00\u5934\u3002 - decreasing: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u6392\u5e8f\u7684\u987a\u5e8f\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u6309\u7167\u4ece\u5c0f\u5230\u5927\u7684\u987a\u5e8f\u6392\u5e8f\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5219\u6309\u7167\u4ece\u5927\u5230\u5c0f\u7684\u987a\u5e8f\u6392\u5e8f\u3002

\u4ee5\u4e0b\u662f\u4f7f\u7528 order() \u51fd\u6570\u8fdb\u884c\u6392\u5e8f\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b1\uff1a\u5355\u4e2a\u5411\u91cf\u6392\u5e8f\nx <- c(3, 1, 4, 1, 5, 9)\n\n# \u6309\u7167\u4ece\u5c0f\u5230\u5927\u7684\u987a\u5e8f\u6392\u5e8f\nsorted_index <- order(x)\nsorted_vector <- x[sorted_index]\nprint(sorted_vector)\n\n# \u793a\u4f8b2\uff1a\u8054\u5408\u6392\u5e8f\nx <- c(3, 1, 4, 1, 5, 9)\ny <- c(\"c\", \"a\", \"d\", \"a\", \"e\", \"i\")\n\n# \u6309\u7167 x \u7684\u987a\u5e8f\u5bf9 y \u8fdb\u884c\u6392\u5e8f\nsorted_index <- order(x)\nsorted_y <- y[sorted_index]\nprint(sorted_y)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 1 1 3 4 5 9\n\n[1] \"a\" \"a\" \"c\" \"d\" \"e\" \"i\"\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86 order() \u51fd\u6570\u8fdb\u884c\u6392\u5e8f\u3002\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u5355\u4e2a\u5411\u91cf x\uff0c\u5e76\u6309\u7167\u4ece\u5c0f\u5230\u5927\u7684\u987a\u5e8f\u5bf9\u5176\u8fdb\u884c\u6392\u5e8f\u3002\u6211\u4eec\u4f7f\u7528\u6392\u5e8f\u540e\u7684\u7d22\u5f15\u5411\u91cf sorted_index \u5bf9\u539f\u59cb\u5411\u91cf x \u8fdb\u884c\u91cd\u65b0\u6392\u5217\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 sorted_vector \u4e2d\u3002

\u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u4e24\u4e2a\u5411\u91cf x \u548c y\uff0c\u5e76\u6309\u7167\u5411\u91cf x \u7684\u987a\u5e8f\u5bf9\u5411\u91cf y \u8fdb\u884c\u6392\u5e8f\u3002\u901a\u8fc7\u4f7f\u7528\u6392\u5e8f\u540e\u7684\u7d22\u5f15\u5411\u91cf sorted_index\uff0c\u6211\u4eec\u5c06\u5411\u91cf y \u91cd\u65b0\u6392\u5217\u6210\u6309\u7167\u5411\u91cf x \u7684\u987a\u5e8f\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 sorted_y \u4e2d\u3002

\u603b\u7ed3\u6765\u8bf4\uff0corder() \u51fd\u6570\u7528\u4e8e\u83b7\u53d6\u6392\u5e8f\u540e\u7684\u7d22\u5f15\u5411\u91cf\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u5355\u4e2a\u5411\u91cf\u6216\u8054\u5408\u6392\u5e8f\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 na.last \u53c2\u6570\u6765\u63a7\u5236\u7f3a\u5931\u503c\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u4f7f\u7528 decreasing \u53c2\u6570\u6765\u63a7\u5236\u6392\u5e8f\u7684\u987a\u5e8f\u3002

\u9664\u4e86\u5411\u91cf\uff0corder() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u5bf9\u77e9\u9635\u7684\u884c\u6216\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u5e76\u8fd4\u56de\u76f8\u5e94\u7684\u7d22\u5f15\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u77e9\u9635\nmat <- matrix(c(5, 2, 3, 1, 4, 6), nrow = 2)\n\n# \u83b7\u53d6\u6309\u884c\u6392\u5e8f\u7684\u7d22\u5f15\nrow_index <- apply(mat, 1, order)\nprint(row_index)\n\n# \u83b7\u53d6\u6309\u5217\u6392\u5e8f\u7684\u7d22\u5f15\ncol_index <- apply(mat, 2, order)\nprint(col_index)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

     [,1] [,2]\n[1,]    2    1\n[2,]    1    2\n\n     [,1] [,2]\n[1,]    2    1\n[2,]    1    2\n[3,]    3    3\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 mat\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 apply() \u51fd\u6570\u5c06 order() \u5e94\u7528\u4e8e\u77e9\u9635\u7684\u884c\u548c\u5217\u3002\u901a\u8fc7\u8bbe\u7f6e MARGIN \u53c2\u6570\u4e3a 1\uff0c\u6211\u4eec\u83b7\u53d6\u6309\u884c\u6392\u5e8f\u7684\u7d22\u5f15\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 row_index \u4e2d\u3002\u901a\u8fc7\u8bbe\u7f6e MARGIN \u53c2\u6570\u4e3a 2\uff0c\u6211\u4eec\u83b7\u53d6\u6309\u5217\u6392\u5e8f\u7684\u7d22\u5f15\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 col_index \u4e2d\u3002

"},{"location":"R/base-content/par%28%29/","title":"Par()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cpar() \u51fd\u6570\u7528\u4e8e\u8bbe\u7f6e\u56fe\u5f62\u53c2\u6570\uff0c\u63a7\u5236\u7ed8\u56fe\u7684\u5916\u89c2\u3001\u5e03\u5c40\u548c\u884c\u4e3a\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u4fee\u6539\u56fe\u5f62\u8bbe\u5907\u7684\u5404\u79cd\u5c5e\u6027\uff0c\u4f8b\u5982\u56fe\u5f62\u5c3a\u5bf8\u3001\u8fb9\u8ddd\u3001\u5750\u6807\u8f74\u3001\u6807\u7b7e\u7b49\u3002\u4e0b\u9762\u662f\u5bf9 par() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

par()\u51fd\u6570\u4e3b\u8981\u7528\u4e8e\u8bbe\u7f6e\u57fa\u672c\u7684R\u5185\u7f6e\u56fe\u5f62\u53c2\u6570\uff0c\u4f8b\u5982\u7ed8\u56fe\u7a97\u53e3\u7684\u5c3a\u5bf8\u3001\u5750\u6807\u8f74\u7684\u6807\u7b7e\u548c\u523b\u5ea6\u3001\u8fb9\u8ddd\u7b49\u3002\u5b83\u5bf9\u4e8e\u57fa\u4e8e\u57fa\u672c\u7ed8\u56fe\u51fd\u6570\uff08\u5982plot()\u3001hist()\u7b49\uff09\u521b\u5efa\u7684\u56fe\u5f62\u8d77\u4f5c\u7528\u3002

\u51fd\u6570\u8bed\u6cd5\uff1a

par(...)\n

\u53c2\u6570\u8bf4\u660e\uff1a par() \u51fd\u6570\u7684\u53c2\u6570\u975e\u5e38\u591a\uff0c\u4e0b\u9762\u5217\u4e3e\u4e00\u4e9b\u5e38\u7528\u7684\u53c2\u6570\uff1a - mfrow\uff1a\u4e00\u4e2a\u8868\u793a\u56fe\u5f62\u5e03\u5c40\u7684\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u56fe\u5f62\u8bbe\u5907\u4e2d\u5b50\u56fe\u7684\u884c\u6570\u548c\u5217\u6570\u3002\u4f8b\u5982 par(mfrow = c(2, 2)) \u8868\u793a\u5c06\u56fe\u5f62\u8bbe\u5907\u5212\u5206\u4e3a 2 \u884c 2 \u5217\uff0c\u4e00\u5171\u53ef\u4ee5\u7ed8\u5236 4 \u4e2a\u5b50\u56fe\u3002 - mar\uff1a\u4e00\u4e2a\u8868\u793a\u8fb9\u8ddd\u7684\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u56fe\u5f62\u8bbe\u5907\u7684\u56db\u4e2a\u8fb9\u754c\u8fb9\u8ddd\uff08\u4e0b\u3001\u5de6\u3001\u4e0a\u3001\u53f3\uff09\u3002\u4f8b\u5982 par(mar = c(5, 4, 4, 2)) \u8868\u793a\u8bbe\u7f6e\u4e0b\u8fb9\u8ddd\u4e3a 5\uff0c\u5de6\u8fb9\u8ddd\u4e3a 4\uff0c\u4e0a\u8fb9\u8ddd\u4e3a 4\uff0c\u53f3\u8fb9\u8ddd\u4e3a 2\u3002 - oma\uff1a\u4e00\u4e2a\u8868\u793a\u5916\u8fb9\u8ddd\u7684\u6570\u503c\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u56fe\u5f62\u8bbe\u5907\u7684\u56db\u4e2a\u5916\u8fb9\u8ddd\uff08\u4e0b\u3001\u5de6\u3001\u4e0a\u3001\u53f3\uff09\u3002\u4f8b\u5982 par(oma = c(0, 0, 2, 0)) \u8868\u793a\u8bbe\u7f6e\u4e0b\u5916\u8fb9\u8ddd\u4e3a 0\uff0c\u5de6\u5916\u8fb9\u8ddd\u4e3a 0\uff0c\u4e0a\u5916\u8fb9\u8ddd\u4e3a 2\uff0c\u53f3\u5916\u8fb9\u8ddd\u4e3a 0\u3002 - pty\uff1a\u4e00\u4e2a\u5b57\u7b26\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u7ed8\u56fe\u533a\u57df\u7684\u5bbd\u9ad8\u6bd4\u3002\u4f8b\u5982 par(pty = \"s\") \u8868\u793a\u4fdd\u6301\u7ed8\u56fe\u533a\u57df\u7684\u5bbd\u9ad8\u6bd4\u4e3a 1:1\u3002 - xlab \u548c ylab\uff1a\u5b57\u7b26\u503c\uff0c\u7528\u4e8e\u8bbe\u7f6e x \u8f74\u548c y \u8f74\u7684\u6807\u7b7e\u3002\u4f8b\u5982 par(xlab = \"X\u8f74\", ylab = \"Y\u8f74\") \u8868\u793a\u8bbe\u7f6e x \u8f74\u7684\u6807\u7b7e\u4e3a \"X\u8f74\"\uff0cy \u8f74\u7684\u6807\u7b7e\u4e3a \"Y\u8f74\"\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 par() \u51fd\u6570\u8bbe\u7f6e\u56fe\u5f62\u53c2\u6570\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\nx <- 1:10\ny <- x^2\n\n# \u521b\u5efa\u4e00\u4e2a 2x2 \u7684\u56fe\u5f62\u5e03\u5c40\npar(mfrow = c(2, 2))\n\n# \u7ed8\u5236\u7b2c\u4e00\u4e2a\u5b50\u56fe\nplot(x, y, main = \"\u56fe1\")\n\n# \u7ed8\u5236\u7b2c\u4e8c\u4e2a\u5b50\u56fe\nplot(x, y, main = \"\u56fe2\", col = \"red\")\n\n# \u7ed8\u5236\u7b2c\u4e09\u4e2a\u5b50\u56fe\nplot(x, y, main = \"\u56fe3\", pch = 3)\n\n# \u7ed8\u5236\u7b2c\u56db\u4e2a\u5b50\u56fe\nplot(x, y, main = \"\u56fe4\", lty = 2)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\uff0c\u5305\u62ec\u4e00\u4e2a\u6570\u503c\u5411\u91cf x \u548c\u4e00\u4e2a\u6839\u636e x \u8ba1\u7b97\u7684\u5e73\u65b9\u5411\u91cf y\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 par() \u51fd\u6570\u5c06\u56fe\u5f62\u8bbe\u5907\u5212\u5206\u4e3a 2 \u884c 2 \u5217\u7684\u5e03\u5c40\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u7528 plot() \u51fd\u6570\u7ed8\u5236\u4e86\u56db\u4e2a\u5b50\u56fe\uff0c\u6bcf\u4e2a\u5b50\u56fe\u90fd\u6709\u4e0d\u540c\u7684\u53c2\u6570\u8bbe\u7f6e\uff0c\u4f8b\u5982\u6807\u9898\u3001\u989c\u8272\u3001\u70b9\u5f62\u72b6\u3001\u7ebf\u578b\u7b49\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528 par() \u51fd\u6570\u6765\u4fee\u6539\u56fe\u5f62\u7684\u5404\u79cd\u53c2\u6570\uff0c\u4ee5\u6ee1\u8db3\u4f60\u7684\u7ed8\u56fe\u9700\u6c42\u3002\u67e5\u9605\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528 ?par \u547d\u4ee4\u53ef\u4ee5\u83b7\u53d6\u66f4\u591a\u5173\u4e8e par() \u51fd\u6570\u53c2\u6570\u7684\u8be6\u7ec6\u4fe1\u606f\u3002

"},{"location":"R/base-content/paste%28%29/","title":"Paste()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cpaste()\u51fd\u6570\u7528\u4e8e\u5c06\u591a\u4e2a\u5bf9\u8c61\uff08\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u7b49\uff09\u8fde\u63a5\u6210\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002\u8fd9\u4e2a\u51fd\u6570\u662fR\u7684\u57fa\u7840\u51fd\u6570\u4e4b\u4e00\uff0c\u4e0d\u9700\u8981\u989d\u5916\u5b89\u88c5\u5305\u3002

"},{"location":"R/base-content/paste%28%29/#paste","title":"paste\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a paste()\u51fd\u6570\u7528\u4e8e\u5c06\u591a\u4e2a\u5bf9\u8c61\u8fde\u63a5\u6210\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002

\u6240\u5c5e\u5305\uff1a \u65e0\u9700\u5b89\u88c5\u989d\u5916\u7684\u5305\uff0cpaste()\u662fR\u7684\u57fa\u7840\u51fd\u6570\u3002

\u5b9a\u4e49\uff1a

paste(..., sep = \" \", collapse = NULL)\n

"},{"location":"R/base-content/paste%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • ...\uff1a \u8981\u8fde\u63a5\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u7b49\u3002

  • sep\uff1a \u7528\u4e8e\u5728\u8fde\u63a5\u5bf9\u8c61\u4e4b\u95f4\u63d2\u5165\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u4e00\u4e2a\u7a7a\u683c\u3002

  • collapse\uff1a \u7528\u4e8e\u5728\u8fde\u63a5\u7ed3\u679c\u4e4b\u95f4\u63d2\u5165\u7684\u5206\u9694\u7b26\u3002\u5982\u679c\u6307\u5b9a\u4e86collapse\uff0c\u5219sep\u53c2\u6570\u5c06\u88ab\u5ffd\u7565\u3002

"},{"location":"R/base-content/paste%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u4f7f\u7528paste\u51fd\u6570\u8fde\u63a5\u5b57\u7b26\u4e32\nstring1 <- \"Hello\"\nstring2 <- \"World\"\n\nresult <- paste(string1, string2, sep = \", \")\n\n# \u663e\u793a\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32\nprint(result)\n
"},{"location":"R/base-content/paste%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cpaste()\u51fd\u6570\u5c06\u4e24\u4e2a\u5b57\u7b26\u4e32\u8fde\u63a5\u8d77\u6765\uff0c\u5e76\u4f7f\u7528\u9017\u53f7\u548c\u7a7a\u683c\u4f5c\u4e3a\u5206\u9694\u7b26\u3002\u901a\u8fc7print(result)\u8f93\u51fa\uff1a

[1] \"Hello, World\"\n

\u8fd9\u6837\uff0c\u4e24\u4e2a\u5b57\u7b26\u4e32\u88ab\u6210\u529f\u8fde\u63a5\u6210\u4e00\u4e2a\u65b0\u7684\u5b57\u7b26\u4e32\u3002\u6839\u636e\u9700\u8981\uff0c\u4f60\u53ef\u4ee5\u8c03\u6574sep\u53c2\u6570\u6765\u5b9a\u4e49\u4e0d\u540c\u7684\u5206\u9694\u7b26\u3002

"},{"location":"R/base-content/pchisq%28%29/","title":"Pchisq()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7528\u4e8e\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08Cumulative Distribution Function\uff0cCDF\uff09\u7684\u51fd\u6570\u3002\u5361\u65b9\u5206\u5e03\u662f\u4e00\u79cd\u5e38\u7528\u7684\u6982\u7387\u5206\u5e03\uff0c\u7279\u522b\u7528\u4e8e\u7edf\u8ba1\u63a8\u65ad\u548c\u5047\u8bbe\u68c0\u9a8c\u3002 pchisq() \u51fd\u6570\u7684\u8bed\u6cd5\u5982\u4e0b\uff1a

pchisq(q, df, lower.tail = TRUE, log.p = FALSE)\n
\u53c2\u6570\u8bf4\u660e\uff1a - q\uff1a\u8981\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u7684\u503c\u6216\u4e00\u7ec4\u503c\u3002 - df\uff1a\u5361\u65b9\u5206\u5e03\u7684\u81ea\u7531\u5ea6\uff08degrees of freedom\uff09\u3002 - lower.tail\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u8ba1\u7b97\u4f4e\u5c3e\u90e8\u5206\uff08\u5c0f\u4e8e\u7b49\u4e8e q \u7684\u6982\u7387\uff09\u8fd8\u662f\u9ad8\u5c3e\u90e8\u5206\uff08\u5927\u4e8e q \u7684\u6982\u7387\uff09\u3002\u9ed8\u8ba4\u4e3a TRUE\uff0c\u8868\u793a\u8ba1\u7b97\u4f4e\u5c3e\u90e8\u5206\u3002 - log.p\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u8fd4\u56de\u5bf9\u6570\u6982\u7387\u503c\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u8fd4\u56de\u6982\u7387\u503c\u3002

\u51fd\u6570\u529f\u80fd\uff1a\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u5728\u7ed9\u5b9a\u81ea\u7531\u5ea6\u4e0b\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\u6216\u5bf9\u6570\u6982\u7387\u503c\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 pchisq() \u51fd\u6570\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\uff1a

# \u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a3\u7684\u5361\u65b9\u5206\u5e03\u5728 x=2 \u5904\u7684\u7d2f\u79ef\u5206\u5e03\ncdf_value <- pchisq(2, df = 3)\nprint(cdf_value)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 pchisq(2, df = 3) \u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a 3 \u7684\u5361\u65b9\u5206\u5e03\u5728 x=2 \u5904\u7684\u7d2f\u79ef\u5206\u5e03\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 cdf_value \u53d8\u91cf\u4e2d\u3002print() \u51fd\u6570\u7528\u4e8e\u6253\u5370\u7d2f\u79ef\u5206\u5e03\u7684\u503c\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cpchisq() \u51fd\u6570\u8ba1\u7b97\u7684\u662f\u5361\u65b9\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u503c\uff0c\u5373\u7ed9\u5b9a\u81ea\u7531\u5ea6\u4e0b\u5c0f\u4e8e\u7b49\u4e8e\u67d0\u4e2a\u7279\u5b9a\u53d6\u503c\u7684\u7d2f\u79ef\u6982\u7387\u3002\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u53ef\u4ee5\u7528\u4e8e\u8ba1\u7b97\u7f6e\u4fe1\u533a\u95f4\u3001\u5047\u8bbe\u68c0\u9a8c\u7b49\u7edf\u8ba1\u63a8\u65ad\u4e2d\u7684\u6982\u7387\u503c\u3002

\u5e0c\u671b\u8fd9\u4e2a\u4f8b\u5b50\u80fd\u591f\u5e2e\u52a9\u60a8\u7406\u89e3 pchisq() \u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/pf%28%29/","title":"Pf()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cpf()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97F\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08CDF\uff09\u6216\u53cd\u51fd\u6570\uff08quantile\uff09\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)\n
\u53c2\u6570\uff1a - q\uff1aF\u5206\u5e03\u7684\u4e34\u754c\u503c\u3002 - df1\uff1a\u5206\u5b50\u81ea\u7531\u5ea6\u3002 - df2\uff1a\u5206\u6bcd\u81ea\u7531\u5ea6\u3002 - ncp\uff1a\u975e\u5fc3\u53c2\u6570\uff08\u53ef\u9009\uff09\uff0c\u5728\u975e\u6807\u51c6F\u5206\u5e03\u4e2d\u4f7f\u7528\u3002 - lower.tail\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u4e0b\u5c3e\u6982\u7387\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u8ba1\u7b97\u4e0b\u5c3e\u6982\u7387\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aFALSE\uff0c\u5219\u8ba1\u7b97\u4e0a\u5c3e\u6982\u7387\u3002 - log.p\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8fd4\u56de\u5bf9\u6570\u6982\u7387\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u8868\u793a\u8fd4\u56de\u6982\u7387\u3002 \u793a\u4f8b\uff1a
# \u793a\u4f8b\uff1a\u8ba1\u7b97F\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u548c\u53cd\u51fd\u6570\n# \u8ba1\u7b97F\u5206\u5e03\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\np_value <- pf(q = 2.5, df1 = 3, df2 = 6)\nprint(p_value)\n\n# \u8ba1\u7b97F\u5206\u5e03\u53cd\u51fd\u6570\nquantile_value <- qf(p = 0.95, df1 = 3, df2 = 6)\nprint(quantile_value)\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528pf()\u51fd\u6570\u8ba1\u7b97F\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u3002\u6211\u4eec\u6307\u5b9a\u4e86\u4e34\u754c\u503cq\u4e3a2.5\uff0c\u5206\u5b50\u81ea\u7531\u5ea6df1\u4e3a3\uff0c\u5206\u6bcd\u81ea\u7531\u5ea6df2\u4e3a6\u3002\u901a\u8fc7\u5c06\u7ed3\u679c\u5b58\u50a8\u5728p_value\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230F\u5206\u5e03\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u503c\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528qf()\u51fd\u6570\u8ba1\u7b97F\u5206\u5e03\u7684\u53cd\u51fd\u6570\uff0c\u5373\u7ed9\u5b9a\u6982\u7387\u503c\uff0c\u8ba1\u7b97\u5bf9\u5e94\u7684\u4e34\u754c\u503c\u3002\u6211\u4eec\u6307\u5b9a\u4e86\u6982\u7387\u503cp\u4e3a0.95\uff0c\u5206\u5b50\u81ea\u7531\u5ea6df1\u4e3a3\uff0c\u5206\u6bcd\u81ea\u7531\u5ea6df2\u4e3a6\u3002\u901a\u8fc7\u5c06\u7ed3\u679c\u5b58\u50a8\u5728quantile_value\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230F\u5206\u5e03\u7684\u53cd\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cF\u5206\u5e03\u662f\u7528\u4e8e\u7edf\u8ba1\u63a8\u65ad\u4e2d\u7684\u5047\u8bbe\u68c0\u9a8c\u548c\u65b9\u5dee\u5206\u6790\u7b49\u95ee\u9898\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u9700\u6c42\u8c03\u6574\u53c2\u6570\u6765\u8ba1\u7b97F\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u6216\u53cd\u51fd\u6570\u3002

"},{"location":"R/base-content/pie%28%29/","title":"Pie()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cpie()\u51fd\u6570\u662f\u7528\u4e8e\u7ed8\u5236\u997c\u56fe\u7684\u57fa\u672c\u51fd\u6570\u4e4b\u4e00\u3002\u5b83\u53ef\u4ee5\u6839\u636e\u6307\u5b9a\u7684\u6570\u503c\u751f\u6210\u76f8\u5e94\u6bd4\u4f8b\u7684\u6247\u5f62\uff0c\u5e76\u53ef\u901a\u8fc7\u53c2\u6570\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u81ea\u5b9a\u4e49\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

pie(x, labels = names(x), clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL, main = NULL)\n
\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6247\u5f62\u7684\u5927\u5c0f\u3002 - labels\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u6247\u5f62\u7684\u6807\u7b7e\u3002\u9ed8\u8ba4\u4e3anames(x)\uff0c\u5373\u4f7f\u7528x\u5411\u91cf\u7684\u5143\u7d20\u540d\u4f5c\u4e3a\u6807\u7b7e\u3002 - cex\uff1a\u8c03\u6574\u6807\u7b7e\u5927\u5c0f\u3002 - clockwise\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u997c\u56fe\u7ed8\u5236\u7684\u65b9\u5411\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u9006\u65f6\u9488\u65b9\u5411\u3002 - init.angle\uff1a\u4e00\u4e2a\u6570\u503c\uff0c\u8868\u793a\u997c\u56fe\u7684\u521d\u59cb\u89d2\u5ea6\u3002\u9ed8\u8ba4\u4e3a0\u5ea6\uff08\u621690\u5ea6\uff0c\u5982\u679cclockwise\u4e3aTRUE\uff09\u3002 - density\uff1a\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u6247\u5f62\u7684\u586b\u5145\u5bc6\u5ea6\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u5373\u65e0\u586b\u5145\u3002 - angle\uff1a\u4e00\u4e2a\u6570\u503c\uff0c\u8868\u793a\u6807\u7b7e\u7684\u503e\u659c\u89d2\u5ea6\u3002\u9ed8\u8ba4\u4e3a45\u5ea6\u3002 - col\uff1a\u4e00\u4e2a\u989c\u8272\u5411\u91cf\uff0c\u8868\u793a\u6247\u5f62\u7684\u586b\u5145\u989c\u8272\u3002 - border\uff1a\u4e00\u4e2a\u989c\u8272\u5411\u91cf\uff0c\u8868\u793a\u6247\u5f62\u7684\u8fb9\u754c\u989c\u8272\u3002 - main\uff1a\u4e00\u4e2a\u5b57\u7b26\uff0c\u8868\u793a\u997c\u56fe\u7684\u6807\u9898\u3002

ratio <- c(24.2, 21.9, 7.6, 5.2,4.3,3.2,2.6,2.6,1.8,1.8,24.8)\ndisease <- c(\"Heart disease\", \"Cancer\",\"injuries\", \"CPD\",\n             \"Stroke\",'Type2 diabetes',\"AD\",\"Suicide\",\n             \"IP\",\"Chronic liver disease\",\"Other\")\n\npie(ratio, labels=disease,\n    radius = 1.0,clockwise=T,\n    main = \"Male individuals\")\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u6570\u503c\u548c\u7c7b\u522b\u7684\u5411\u91cf\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528pie()\u51fd\u6570\u6839\u636e\u8fd9\u4e9b\u6570\u503c\u7ed8\u5236\u4e86\u76f8\u5e94\u6bd4\u4f8b\u7684\u997c\u56fe\u3002

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0cvalues\u5411\u91cf\u8868\u793a\u6bcf\u4e2a\u6247\u5f62\u7684\u5927\u5c0f\uff0ccategories\u5411\u91cf\u8868\u793a\u6bcf\u4e2a\u6247\u5f62\u7684\u6807\u7b7e\u3002\u901a\u8fc7\u8bbe\u7f6elabels\u53c2\u6570\u4e3acategories\uff0c\u6211\u4eec\u5c06\u7c7b\u522b\u540d\u79f0\u4f5c\u4e3a\u6807\u7b7e\u663e\u793a\u5728\u997c\u56fe\u4e2d\u3002main\u53c2\u6570\u7528\u4e8e\u8bbe\u7f6e\u997c\u56fe\u7684\u6807\u9898\u3002

\u901a\u8fc7\u4f7f\u7528\u9002\u5f53\u7684\u53c2\u6570\u914d\u7f6e\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u997c\u56fe\u7684\u5916\u89c2\u3001\u6807\u7b7e\u3001\u989c\u8272\u7b49\u5143\u7d20\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cpie()\u51fd\u6570\u662f\u57fa\u672c\u7684\u997c\u56fe\u7ed8\u5236\u51fd\u6570\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e9b\u7b80\u5355\u7684\u81ea\u5b9a\u4e49\u9009\u9879\u3002\u5982\u679c\u60a8\u9700\u8981\u66f4\u9ad8\u7ea7\u7684\u81ea\u5b9a\u4e49\u548c\u66f4\u591a\u9009\u9879\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u4e13\u95e8\u7684\u7ed8\u56fe\u5305\uff0c\u5982ggplot2\u3002

pie(decoration_count$sum_decoration, paste(decoration_count$decoration, label_decoration, \"%\"), radius = 1.0, clockwise=T, main = \"\u623f\u5c4b\u88c5\u4fee\u60c5\u51b5\", cex = 0.8)\n
paste()\u5c06\u88c5\u4fee\u6807\u7b7e\u548c\u767e\u5206\u6bd4\u6807\u7b7e\u548c%\u53f7\u8fde\u63a5\u5728\u4e00\u8d77

"},{"location":"R/base-content/pnorm%28%29/","title":"Pnorm()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08CDF\uff09\u3002\u4e5f\u5c31\u662f\u6982\u7387\u5bc6\u5ea6\u51fd\u6570 pnorm() \u51fd\u6570\u7684\u8bed\u6cd5\u5982\u4e0b\uff1a

pnorm(x, mean = 0, sd = 1, lower.tail = TRUE)\n

\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a - x\uff1a\u8981\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u6570\u503c\u3002**

  • mean\uff1a\u6b63\u6001\u5206\u5e03\u7684\u5747\u503c\uff08\u9ed8\u8ba4\u4e3a 0\uff09\u3002

  • sd\uff1a\u6b63\u6001\u5206\u5e03\u7684\u6807\u51c6\u5dee\uff08\u9ed8\u8ba4\u4e3a 1\uff09\u3002

  • lower.tail\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u4e0b\u5c3e\u6982\u7387\uff08\u9ed8\u8ba4\u4e3a TRUE\uff09\u3002\u5982\u679c\u4e3a TRUE\uff0c\u5c06\u8ba1\u7b97 P(X \u2264 x)\uff1b\u5982\u679c\u4e3a FALSE\uff0c\u5c06\u8ba1\u7b97 P(X > x)\uff0c\u53cd\u7740\u6765\u7684\u3002

\u5f53lower.tail = TRUE\u65f6\uff0c\u8868\u793a\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u503c\uff0c\u5373\u8ba1\u7b97\u4ece\u8d1f\u65e0\u7a77\u5230\u7ed9\u5b9a\u5206\u4f4d\u6570\u7684\u6982\u7387\u3002

\u5f53lower.tail = FALSE\u65f6\uff0c\u8868\u793a\u8ba1\u7b97\u5206\u4f4d\u6570\uff0c\u5373\u8ba1\u7b97\u7ed9\u5b9a\u6982\u7387\u4e0b\u7684\u5206\u4f4d\u6570\uff0c\u5bf9\u5e94\u7684\u5c3e\u90e8\u6982\u7387\u4e3a\u4ece\u7ed9\u5b9a\u5206\u4f4d\u6570\u5230\u6b63\u65e0\u7a77\u7684\u6982\u7387\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 pnorm() \u51fd\u6570\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff1a

# \u8ba1\u7b97\u6807\u51c6\u6b63\u6001\u5206\u5e03\u5728 x = 1 \u5904\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\ncdf <- pnorm(1)\n\n# \u6253\u5370\u7ed3\u679c\nprint(cdf)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 pnorm() \u51fd\u6570\u8ba1\u7b97\u6807\u51c6\u6b63\u6001\u5206\u5e03\u5728 x = 1 \u5904\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a cdf \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 cdf \u6765\u67e5\u770b\u8ba1\u7b97\u5f97\u5230\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cpnorm() \u51fd\u6570\u8ba1\u7b97\u7684\u662f\u6807\u51c6\u6b63\u6001\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u3002\u5982\u679c\u9700\u8981\u8ba1\u7b97\u5176\u4ed6\u5747\u503c\u548c\u6807\u51c6\u5dee\u7684\u6b63\u6001\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 mean \u548c sd \u53c2\u6570\u7684\u503c\u6765\u5b9e\u73b0\u3002

"},{"location":"R/base-content/pnorm%28%29/#_1","title":"\u79bb\u7fa4\u70b9","text":"

\u03bc\u52a0\u51cf3sigm\uff0c\u8d85\u51fa\u5916\u7684\u6570\u636e\u79f0\u4e3a\u79bb\u7fa4\u70b9\u3002

"},{"location":"R/base-content/predict%28%29/","title":"Predict()","text":"

\u5185\u7f6e\u51fd\u6570\u3002\u5728 R \u8bed\u8a00\u4e2d\uff0cpredict() \u51fd\u6570\u901a\u5e38\u7528\u4e8e\u4ece\u5df2\u7ecf\u62df\u5408\u7684\u7edf\u8ba1\u6a21\u578b\u4e2d\u751f\u6210\u9884\u6d4b\u503c\u3002\u8fd9\u4e2a\u51fd\u6570\u7684\u53ef\u7528\u6027\u53d6\u51b3\u4e8e\u6240\u4f7f\u7528\u7684\u5177\u4f53\u6a21\u578b\uff0c\u56e0\u4e3a\u4e0d\u540c\u7684\u6a21\u578b\u6709\u4e0d\u540c\u7684 predict() \u65b9\u6cd5\u3002

\u529f\u80fd\uff1a \u4ece\u62df\u5408\u7684\u7edf\u8ba1\u6a21\u578b\u4e2d\u751f\u6210\u9884\u6d4b\u503c\u3002

# \u4f7f\u7528 lm() \u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\nmodel <- lm(mpg ~ hp + wt, data = mtcars)\n\n# \u521b\u5efa\u65b0\u7684\u6570\u636e\u6846\u8fdb\u884c\u9884\u6d4b\nnew_data <- data.frame(hp = c(110, 150), wt = c(2.8, 3.5))\n\n# \u4f7f\u7528 predict() \u8fdb\u884c\u9884\u6d4b\npredictions <- predict(model, newdata = new_data)\n\n# \u6253\u5370\u9884\u6d4b\u503c\nprint(predictions)\n\n# \u8f93\u51fa\n       1        2 \n26.64153 18.16133 \n

\u5b9a\u4e49\uff1a

predict(object, newdata = NULL, ...)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - object\uff1a\u5df2\u7ecf\u62df\u5408\u7684\u6a21\u578b\u5bf9\u8c61\u3002

  • newdata\uff1a\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5305\u542b\u6a21\u578b\u4e2d\u4f7f\u7528\u7684\u9884\u6d4b\u53d8\u91cf\u7684\u65b0\u503c\u3002\u5bf9\u4e8e\u67d0\u4e9b\u6a21\u578b\uff0cnewdata \u662f\u53ef\u9009\u7684\uff0c\u800c\u5bf9\u4e8e\u5176\u4ed6\u6a21\u578b\u53ef\u80fd\u662f\u5fc5\u9700\u7684\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u7684\u53c2\u6570\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u6a21\u578b\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86 lm() \u51fd\u6570\u62df\u5408\u4e86\u4e00\u4e2a\u7ebf\u6027\u56de\u5f52\u6a21\u578b (model)\u3002\u7136\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846 (new_data)\uff0c\u5176\u4e2d\u5305\u542b\u6a21\u578b\u4e2d\u4f7f\u7528\u7684\u9884\u6d4b\u53d8\u91cf\u7684\u65b0\u503c\u3002\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528 predict() \u51fd\u6570\u751f\u6210\u4e86\u5bf9\u5e94\u4e8e\u65b0\u6570\u636e\u7684\u9884\u6d4b\u503c (predictions)\u3002\u8fd9\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u5b9e\u9645\u4e0a\uff0cpredict() \u51fd\u6570\u7684\u4f7f\u7528\u65b9\u5f0f\u4f1a\u56e0\u6a21\u578b\u7c7b\u578b\u7684\u4e0d\u540c\u800c\u6709\u6240\u53d8\u5316\u3002

"},{"location":"R/base-content/print%28%29/","title":"Print()","text":"

\u5f53\u60a8\u5728R\u4e2d\u6267\u884c\u7c7b\u4f3c\u4e8e\u6570\u636e\u6846\u7684\u64cd\u4f5c\u5e76\u5e0c\u671b\u67e5\u770b\u66f4\u591a\u884c\u65f6\uff0c\u53ef\u80fd\u4f1a\u9047\u5230\"Use print(n = ...) to see more rows\"\u7684\u63d0\u793a\u3002\u8fd9\u662fR\u73af\u5883\u7684\u9ed8\u8ba4\u884c\u4e3a\uff0c\u5b83\u9650\u5236\u4e86\u8f93\u51fa\u7684\u884c\u6570\uff0c\u4ee5\u907f\u514d\u5728\u4ea4\u4e92\u5f0f\u73af\u5883\u4e2d\u663e\u793a\u8fc7\u591a\u7684\u6570\u636e\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6eprint()\u51fd\u6570\u7684n\u53c2\u6570\u6765\u66f4\u6539\u6b64\u8bbe\u7f6e\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e9b\u89e3\u51b3\u65b9\u6848\uff1a

  1. \u4f7f\u7528print()\u51fd\u6570\u7684n\u53c2\u6570\uff1a\u60a8\u53ef\u4ee5\u901a\u8fc7\u5728print()\u51fd\u6570\u4e2d\u8bbe\u7f6en\u53c2\u6570\u7684\u503c\u6765\u663e\u793a\u66f4\u591a\u7684\u884c\u3002\u4f8b\u5982\uff0c\u8981\u663e\u793a\u524d20\u884c\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528print(n = 20)\u3002
# \u793a\u4f8b\u4ee3\u7801\nmy_data <- # Your data frame here\nprint(my_data, n = 20)  # \u663e\u793a\u524d20\u884c\n
  1. \u4f7f\u7528options()\u51fd\u6570\u66f4\u6539\u9ed8\u8ba4\u8bbe\u7f6e\uff1a\u60a8\u53ef\u4ee5\u4f7f\u7528options()\u51fd\u6570\u66f4\u6539R\u73af\u5883\u4e2d\u7684\u9ed8\u8ba4\u884c\u4e3a\u3002\u901a\u8fc7\u8bbe\u7f6eoptions()\u51fd\u6570\u7684max.print\u53c2\u6570\u4e3a\u8f83\u5927\u7684\u503c\uff0c\u60a8\u53ef\u4ee5\u66f4\u6539\u9ed8\u8ba4\u7684\u6253\u5370\u884c\u6570\u9650\u5236\u3002\u4f8b\u5982\uff0coptions(max.print = 1000)\u5c06\u5141\u8bb8\u663e\u793a\u6700\u591a1000\u884c\u3002
# \u793a\u4f8b\u4ee3\u7801\noptions(max.print = 1000)  # \u8bbe\u7f6e\u6700\u5927\u663e\u793a\u884c\u6570\u4e3a1000\nmy_data <- # Your data frame here\nprint(my_data)  # \u663e\u793a\u66f4\u591a\u7684\u884c\n
"},{"location":"R/base-content/print%28%29%E3%80%81printf%28%29%E3%80%81sprintf%28%29/","title":"Print()\u3001printf()\u3001sprintf()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cprint()\u3001printf()\u548csprintf()\u662f\u4e09\u4e2a\u4e0d\u540c\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u8f93\u51fa\u7ed3\u679c\u6216\u5bf9\u8c61\u7684\u503c\u3002

  • print()\u51fd\u6570\u7528\u4e8e\u5728\u63a7\u5236\u53f0\u4e0a\u6253\u5370\u7ed3\u679c\u6216\u5bf9\u8c61\u7684\u503c\u3002\u5b83\u662fR\u4e2d\u6700\u5e38\u7528\u7684\u8f93\u51fa\u51fd\u6570\u4e4b\u4e00\uff0c\u901a\u5e38\u53ef\u4ee5\u7701\u7565\uff0c\u56e0\u4e3a\u5f53\u8f93\u5165\u5bf9\u8c61\u65f6\uff0c\u5b83\u4f1a\u81ea\u52a8\u6253\u5370\u7ed3\u679c\u3002\u4f8b\u5982\uff1a
x <- 10\nprint(x)  # \u6253\u5370 x \u7684\u503c\n
  • printf()\u51fd\u6570\u7528\u4e8e\u683c\u5f0f\u5316\u8f93\u51fa\u7ed3\u679c\u3002\u5b83\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u4e0a\u6253\u5370\u683c\u5f0f\u5316\u7684\u7ed3\u679c\u3002printf()\u51fd\u6570\u7c7b\u4f3c\u4e8eC\u8bed\u8a00\u4e2d\u7684printf()\u51fd\u6570\uff0c\u53ef\u4ee5\u4f7f\u7528\u683c\u5f0f\u63a7\u5236\u5b57\u7b26\u4e32\u6765\u6307\u5b9a\u8f93\u51fa\u683c\u5f0f\uff0c\u5982\u5b57\u7b26\u4e32\u3001\u6574\u6570\u3001\u6d6e\u70b9\u6570\u7b49\u3002\u4f8b\u5982\uff1a
x <- 10\nprintf(\"The value of x is %d\", x)  # \u6253\u5370\u683c\u5f0f\u5316\u7684\u7ed3\u679c\n
  • sprintf()\u51fd\u6570\u7528\u4e8e\u5c06\u683c\u5f0f\u5316\u7684\u7ed3\u679c\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002\u5b83\u53ef\u4ee5\u5c06\u683c\u5f0f\u5316\u7684\u7ed3\u679c\u8d4b\u503c\u7ed9\u4e00\u4e2a\u53d8\u91cf\uff0c\u4ee5\u4fbf\u8fdb\u4e00\u6b65\u5904\u7406\u6216\u8f93\u51fa\u3002sprintf()\u51fd\u6570\u7c7b\u4f3c\u4e8eC\u8bed\u8a00\u4e2d\u7684sprintf()\u51fd\u6570\u3002\u4f8b\u5982\uff1a
x <- 10\nresult <- sprintf(\"The value of x is %d\", x)  # \u5c06\u683c\u5f0f\u5316\u7684\u7ed3\u679c\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u5b57\u7b26\u4e32\nprint(result)  # \u6253\u5370\u7ed3\u679c\n

\u603b\u7ed3\u6765\u8bf4\uff0cprint()\u51fd\u6570\u7528\u4e8e\u6253\u5370\u7ed3\u679c\u6216\u5bf9\u8c61\u7684\u503c\uff0cprintf()\u51fd\u6570\u7528\u4e8e\u683c\u5f0f\u5316\u8f93\u51fa\u7ed3\u679c\uff0c\u800csprintf()\u51fd\u6570\u7528\u4e8e\u5c06\u683c\u5f0f\u5316\u7684\u7ed3\u679c\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002

"},{"location":"R/base-content/print%28%29%E3%80%81printf%28%29%E3%80%81sprintf%28%29/#_1","title":"\u767e\u5206\u53f7\u600e\u4e48\u52a0\\%","text":"

\u5728R\u4e2d\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u767e\u5206\u53f7\u7684\u8f6c\u4e49\u5e8f\u5217\u6765\u663e\u793a\u767e\u5206\u53f7\u3002\u4ee5\u4e0b\u662f\u4fee\u6b63\u540e\u7684\u4ee3\u7801\uff1a

# \u5047\u8bbe z_\u03b12 \u5df2\u7ecf\u5b9a\u4e49\nz_\u03b12 <- 25/20\n\n# \u8ba1\u7b97 p\np <- 1 - round(2 * pnorm(z_\u03b12, lower.tail = FALSE), 4)\n\n# \u4f7f\u7528\u8f6c\u4e49\u5e8f\u5217\u663e\u793a\u767e\u5206\u53f7\nsprintf(\"The confidence level: %s%%\", p)\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c%s%% \u662f\u4e00\u4e2a\u8f6c\u4e49\u5e8f\u5217\uff0c\u5176\u4e2d %s \u8868\u793a\u5b57\u7b26\u4e32\u7684\u4f4d\u7f6e\uff0c%% \u8868\u793a\u4e00\u4e2a\u767e\u5206\u53f7\u3002\u8fd9\u6837\uff0csprintf \u51fd\u6570\u4f1a\u5c06 p \u7684\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u4e2d\uff0c\u5e76\u5728\u767e\u5206\u53f7\u4e4b\u540e\u663e\u793a\u767e\u5206\u53f7\u3002

"},{"location":"R/base-content/print%28%29%E3%80%81printf%28%29%E3%80%81sprintf%28%29/#_2","title":"\\%\\%\u5728\u5b57\u7b26\u4e32\u4e2d\u5fc5\u987b\u8fd9\u4e48\u8868\u8fbe\uff0c\u4ee5\u53ca\u591a\u4e2a\u8f93\u51fa\u53d8\u91cf\u65f6\uff01","text":"

\u5728\u5b57\u7b26\u4e2d\u8868\u793a\u767e\u5206\u53f7\u4e5f\u5f97\u8fd9\u4e48\u52a0\uff0c\u5426\u5219\u62a5\u9519\uff0c\u598295\\%\\%

sprintf(\"The 95%% confidence intervals for the mean age:[%.2f, %.2f]\", age_low_limit, age_up_limit)\n

"},{"location":"R/base-content/prop.table%28%29/","title":"Prop.table()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cprop.table() \u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u7ed9\u5b9a\u8868\u683c\u6216\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u76f8\u5bf9\u9891\u7387\uff08\u76f8\u5bf9\u4e8e\u6574\u4e2a\u8868\u683c\u6216\u6570\u7ec4\u7684\u603b\u548c\uff09\u3002\u8fd9\u4e2a\u51fd\u6570\u662f R \u7684\u57fa\u7840\u51fd\u6570\uff0c\u65e0\u9700\u52a0\u8f7d\u989d\u5916\u7684\u5305\u3002\u5b83\u53ef\u4ee5\u5c06\u5143\u7d20\u503c\u8f6c\u6362\u4e3a\u76f8\u5bf9\u9891\u7387\u6216\u6982\u7387\u3002

\u4ee5\u4e0b\u662f prop.table() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6240\u5c5e\u5305\uff1a \u65e0\u9700\u52a0\u8f7d\u5305\uff0c\u662f R \u7684\u57fa\u7840\u51fd\u6570\u3002

\u5b9a\u4e49\uff1a

prop.table(table, margin = NULL)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - table\uff1a\u8981\u8ba1\u7b97\u76f8\u5bf9\u9891\u7387\u7684\u8868\u683c\u6216\u6570\u7ec4\u3002 - margin\uff1a\u53ef\u9009\uff0c\u4e00\u4e2a\u6574\u6570\u5411\u91cf\uff0c\u6307\u5b9a\u5728\u54ea\u4e2a\u7ef4\u5ea6\u4e0a\u8ba1\u7b97\u76f8\u5bf9\u9891\u7387\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u8ba1\u7b97\u6574\u4e2a\u8868\u683c\u6216\u6570\u7ec4\u7684\u76f8\u5bf9\u9891\u7387\u3002

\u529f\u80fd\uff1a \u8ba1\u7b97\u7ed9\u5b9a\u8868\u683c\u6216\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u76f8\u5bf9\u9891\u7387\u3002

\u4e3e\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u8868\ndata <- c(\"A\", \"B\", \"A\", \"C\", \"B\", \"A\", \"C\", \"A\")\n\n# \u4f7f\u7528 prop.table() \u8ba1\u7b97\u76f8\u5bf9\u9891\u7387\nfreq_table <- prop.table(table(data))\n\n# \u6253\u5370\u7ed3\u679c\nprint(freq_table)\n

\u8f93\u51fa\uff1a

data\n   A    B    C \n0.375 0.250 0.375 \n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cprop.table() \u51fd\u6570\u88ab\u7528\u4e8e\u8ba1\u7b97\u5b57\u7b26\u4e32\u5411\u91cf data \u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u76f8\u5bf9\u9891\u7387\u3002\u8f93\u51fa\u662f\u4e00\u4e2a\u5305\u542b\u76f8\u5bf9\u9891\u7387\u7684\u8868\u683c\uff0c\u8868\u793a\u5728\u6574\u4e2a\u6570\u636e\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u76f8\u5bf9\u51fa\u73b0\u9891\u7387\u3002

"},{"location":"R/base-content/pt%28%29/","title":"Pt()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97 t \u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08CDF\uff09\u503c\u3002

pt(q, df)\n
\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a - q\uff1a\u8981\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u6570\u503c\u3002 - df\uff1at \u5206\u5e03\u7684\u81ea\u7531\u5ea6\u53c2\u6570\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 pt() \u51fd\u6570\u8ba1\u7b97 t \u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\uff1a

# \u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a 10 \u7684 t \u5206\u5e03\u5728 q = 1 \u5904\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\ncdf <- pt(1, df = 10)\n\n# \u6253\u5370\u7ed3\u679c\nprint(cdf)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 pt() \u51fd\u6570\u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a 10 \u7684 t \u5206\u5e03\u5728 q = 1 \u5904\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a cdf \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 cdf \u6765\u67e5\u770b\u8ba1\u7b97\u5f97\u5230\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cpt() \u51fd\u6570\u8ba1\u7b97\u7684\u662f t \u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\u3002\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7ed9\u51fa\u4e86\u968f\u673a\u53d8\u91cf\u53d6\u503c\u5c0f\u4e8e\u6216\u7b49\u4e8e\u7ed9\u5b9a\u503c\u7684\u6982\u7387\u3002\u901a\u8fc7\u8c03\u6574 df \u53c2\u6570\uff0c\u53ef\u4ee5\u63a7\u5236 t \u5206\u5e03\u7684\u81ea\u7531\u5ea6\u3002

"},{"location":"R/base-content/qchisq%28%29/","title":"Qchisq()","text":"

\u662fR\u8bed\u8a00\u4e2d\u7528\u4e8e\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff08Quantile\uff09 \u7684\u51fd\u6570\u3002\u5361\u65b9\u5206\u5e03\u662f\u4e00\u79cd\u5e38\u7528\u7684\u6982\u7387\u5206\u5e03\uff0c\u901a\u5e38\u7528\u4e8e\u7edf\u8ba1\u63a8\u65ad\u548c\u5047\u8bbe\u68c0\u9a8c\u3002 qchisq()\u51fd\u6570\u7684\u8bed\u6cd5\u5982\u4e0b\uff1a

qchisq(p, df, lower.tail = TRUE, log.p = FALSE)\n
\u53c2\u6570\u8bf4\u660e\uff1a - p\uff1a\u8981\u8ba1\u7b97\u5206\u4f4d\u6570\u7684\u6982\u7387\u503c\u6216\u4e00\u7ec4\u6982\u7387\u503c\u3002 - df\uff1a\u5361\u65b9\u5206\u5e03\u7684\u81ea\u7531\u5ea6\uff08degrees of freedom\uff09\u3002 - lower.tail\uff1a\u9ed8\u8ba4\u4e0b\u603b\u662f\u8ba1\u7b97\u5de6\u8fb9\u3002\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u8ba1\u7b97\u4f4e\u5c3e\u90e8\u5206\uff08\u5c0f\u4e8e\u7b49\u4e8e p \u7684\u5206\u4f4d\u6570\uff09\u8fd8\u662f\u9ad8\u5c3e\u90e8\u5206\uff08\u5927\u4e8e p \u7684\u5206\u4f4d\u6570\uff09\u3002\u9ed8\u8ba4\u4e3a TRUE\uff0c\u8868\u793a\u8ba1\u7b97\u4f4e\u5c3e\u90e8\u5206\u3002 - log.p\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u8f93\u5165\u7684\u6982\u7387\u503c\u662f\u5426\u4e3a\u5bf9\u6570\u6982\u7387\u503c\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u8f93\u5165\u4e3a\u6982\u7387\u503c\u3002

\u51fd\u6570\u529f\u80fd\uff1a\u8ba1\u7b97\u7ed9\u5b9a\u5361\u65b9\u5206\u5e03\u81ea\u7531\u5ea6\u4e0b\u7684\u5206\u4f4d\u6570\uff0c\u5373\u7ed9\u5b9a\u6982\u7387\u4e0b\u7684\u53d6\u503c\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528qchisq()\u51fd\u6570\u8ba1\u7b97\u5361\u65b9\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff1a

# \u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a5\u7684\u5361\u65b9\u5206\u5e03\u5728\u6982\u73870.95\u5904\u7684\u5206\u4f4d\u6570\nquantile_value <- qchisq(0.95, df = 5)\nprint(quantile_value)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528qchisq(0.95, df = 5)\u8ba1\u7b97\u81ea\u7531\u5ea6\u4e3a5\u7684\u5361\u65b9\u5206\u5e03\u5728\u6982\u73870.95\u5904\u7684\u5206\u4f4d\u6570\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728quantile_value\u53d8\u91cf\u4e2d\u3002print()\u51fd\u6570\u7528\u4e8e\u6253\u5370\u5206\u4f4d\u6570\u7684\u503c\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cqchisq()\u51fd\u6570\u8ba1\u7b97\u7684\u662f\u7ed9\u5b9a\u6982\u7387\u4e0b\u7684\u5206\u4f4d\u6570\uff0c\u5373\u843d\u5728\u8be5\u6982\u7387\u4e0b\u7684\u968f\u673a\u53d8\u91cf\u53d6\u503c\u3002\u5206\u4f4d\u6570\u53ef\u4ee5\u7528\u4e8e\u6784\u5efa\u7f6e\u4fe1\u533a\u95f4\u3001\u8ba1\u7b97\u5047\u8bbe\u68c0\u9a8c\u7684\u4e34\u754c\u503c\u7b49\u3002

\u5e0c\u671b\u8fd9\u4e2a\u4f8b\u5b50\u80fd\u591f\u5e2e\u52a9\u60a8\u7406\u89e3qchisq()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/qf%28%29/","title":"Qf()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cqf()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97F\u5206\u5e03\u7684\u53cd\u51fd\u6570\uff0c\u5373\u7ed9\u5b9a\u6982\u7387\u503c\uff0c\u8ba1\u7b97\u5bf9\u5e94\u7684\u4e34\u754c\u503c\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

qf(p, df1, df2, lower.tail = TRUE, log.p = FALSE)\n
\u53c2\u6570\uff1a - p\uff1a\u6982\u7387\u503c\uff0c\u53d6\u503c\u8303\u56f4\u57280\u548c1\u4e4b\u95f4\u3002 - df1\uff1a\u5206\u5b50\u81ea\u7531\u5ea6\u3002 - df2\uff1a\u5206\u6bcd\u81ea\u7531\u5ea6\u3002 - lower.tail\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u4e0b\u5c3e\u6982\u7387\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u8ba1\u7b97\u4e0b\u5c3e\u6982\u7387\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aFALSE\uff0c\u5219\u8ba1\u7b97\u4e0a\u5c3e\u6982\u7387\u3002 - log.p\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u6982\u7387\u503c\u662f\u5426\u4ee5\u5bf9\u6570\u5f62\u5f0f\u7ed9\u51fa\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u8868\u793a\u6982\u7387\u503c\u4ee5\u539f\u59cb\u5f62\u5f0f\u7ed9\u51fa\u3002 \u793a\u4f8b\uff1a
# \u793a\u4f8b\uff1a\u8ba1\u7b97F\u5206\u5e03\u7684\u53cd\u51fd\u6570\n# \u8ba1\u7b97F\u5206\u5e03\u53cd\u51fd\u6570\nquantile_value <- qf(p = 0.95, df1 = 3, df2 = 6)\nprint(quantile_value)\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528qf()\u51fd\u6570\u8ba1\u7b97F\u5206\u5e03\u7684\u53cd\u51fd\u6570\u3002\u6211\u4eec\u6307\u5b9a\u4e86\u6982\u7387\u503cp\u4e3a0.95\uff0c\u5206\u5b50\u81ea\u7531\u5ea6df1\u4e3a3\uff0c\u5206\u6bcd\u81ea\u7531\u5ea6df2\u4e3a6\u3002\u901a\u8fc7\u5c06\u7ed3\u679c\u5b58\u50a8\u5728quantile_value\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230F\u5206\u5e03\u7684\u53cd\u51fd\u6570\u503c\u3002

\u8bf7\u6ce8\u610f\uff0cF\u5206\u5e03\u662f\u7528\u4e8e\u7edf\u8ba1\u63a8\u65ad\u4e2d\u7684\u5047\u8bbe\u68c0\u9a8c\u548c\u65b9\u5dee\u5206\u6790\u7b49\u95ee\u9898\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u9700\u6c42\u8c03\u6574\u53c2\u6570\u6765\u8ba1\u7b97F\u5206\u5e03\u7684\u53cd\u51fd\u6570\u3002

"},{"location":"R/base-content/qnorm%28%29/","title":"Qnorm()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff08quantile\uff09\u3002

qnorm(p, mean = 0, sd = 1, lower.tail = TRUE)\n
\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a - p\uff1a\u8981\u8ba1\u7b97\u5206\u4f4d\u6570\u7684\u6982\u7387\u503c\uff0c\u53d6\u503c\u8303\u56f4\u4e3a [0, 1]\uff0c\u90fd\u662f\u53d6\u5de6\u4fa7\u7684\u7d2f\u8ba1\u6982\u7387\u503c\u3002

qnorm(0.9)

  • mean\uff1a\u6b63\u6001\u5206\u5e03\u7684\u5747\u503c\uff08\u9ed8\u8ba4\u4e3a 0\uff09\u3002

  • sd\uff1a\u6b63\u6001\u5206\u5e03\u7684\u6807\u51c6\u5dee\uff08\u9ed8\u8ba4\u4e3a 1\uff09\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 qnorm() \u51fd\u6570\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff1a

    # \u8ba1\u7b97\u5747\u503c\u4e3a 0\u3001\u6807\u51c6\u5dee\u4e3a 1 \u7684\u6b63\u6001\u5206\u5e03\u7684\u7b2c 0.8 \u5206\u4f4d\u6570\nquantile <- qnorm(0.8)\n\n# \u6253\u5370\u7ed3\u679c\nprint(quantile)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 qnorm() \u51fd\u6570\u8ba1\u7b97\u5747\u503c\u4e3a 0\u3001\u6807\u51c6\u5dee\u4e3a 1 \u7684\u6b63\u6001\u5206\u5e03\u7684\u7b2c 0.8 \u5206\u4f4d\u6570\uff08\u5373\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u4e3a 0.8 \u5bf9\u5e94\u7684\u6570\u503c\uff09\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a quantile \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 quantile \u6765\u67e5\u770b\u8ba1\u7b97\u5f97\u5230\u7684\u5206\u4f4d\u6570\u3002

\u8bf7\u6ce8\u610f\uff0cqnorm() \u51fd\u6570\u8ba1\u7b97\u7684\u662f\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff0c\u5373\u7ed9\u5b9a\u6982\u7387\u503c p\uff0c\u5b83\u8fd4\u56de\u5bf9\u5e94\u7684\u6570\u503c\uff0c\u4f7f\u5f97\u6b63\u6001\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7b49\u4e8e p\u3002\u5982\u679c\u9700\u8981\u8ba1\u7b97\u5176\u4ed6\u5747\u503c\u548c\u6807\u51c6\u5dee\u7684\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 mean \u548c sd \u53c2\u6570\u7684\u503c\u6765\u5b9e\u73b0\u3002

"},{"location":"R/base-content/qqline%28%29/","title":"Qqline()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cqqline()\u51fd\u6570\u7528\u4e8e\u5728QQ\u56fe\u4e0a\u6dfb\u52a0\u4e00\u6761\u53c2\u8003\u7ebf\uff0c\u4ee5\u5e2e\u52a9\u5224\u65ad\u6570\u636e\u662f\u5426\u7b26\u5408\u6b63\u6001\u5206\u5e03\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

qqline(y, datax = FALSE, distribution = qnorm, probs = c(0.25, 0.75),\n       qtype = 7, ...)\n

\u53c2\u6570\uff1a - y\uff1a\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793aQQ\u56fe\u4e0a\u7684\u6570\u636e\u3002 - datax\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u5728QQ\u56fe\u4e0a\u4f7f\u7528\u6570\u636e\u7684\u4f4d\u7f6e\uff08\u9ed8\u8ba4\u4e3aFALSE\uff0c\u4f7f\u7528\u987a\u5e8f\u6392\u5217\u7684\u6570\u636e\u70b9\u7684\u4f4d\u7f6e\uff09\u3002 - distribution\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u53c2\u8003\u5206\u5e03\u7684\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\uff08\u9ed8\u8ba4\u4e3aqnorm()\uff0c\u5373\u6807\u51c6\u6b63\u6001\u5206\u5e03\uff09\u3002 - probs\uff1a\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u5206\u4f4d\u6570\u7684\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u53c2\u8003\u7ebf\u7684\u4f4d\u7f6e\uff08\u9ed8\u8ba4\u4e3ac(0.25, 0.75)\uff0c\u5373\u4e0a\u4e0b\u56db\u5206\u4f4d\u6570\uff09\u3002 - qtype\uff1a\u4e00\u4e2a\u6574\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5206\u4f4d\u6570\u7684\u8ba1\u7b97\u65b9\u6cd5\uff08\u9ed8\u8ba4\u4e3a7\uff0c\u5373\u7c7b\u578b7\u5206\u4f4d\u6570\uff09\u3002 - ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u63a7\u5236\u53c2\u8003\u7ebf\u7684\u5916\u89c2\uff0c\u5982\u989c\u8272\u3001\u7ebf\u578b\u7b49\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528qqline()\u51fd\u6570\u5728QQ\u56fe\u4e0a\u6dfb\u52a0\u53c2\u8003\u7ebf\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u793a\u4f8b\u6837\u672c\u6570\u636e\ndata <- rnorm(100)\n\n# \u7ed8\u5236QQ\u56fe\nqqnorm(data)\n\n# \u6dfb\u52a0\u53c2\u8003\u7ebf\nqqline(data)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528rnorm()\u51fd\u6570\u751f\u6210\u4e86\u4e00\u4e2a\u5305\u542b100\u4e2a\u670d\u4ece\u6807\u51c6\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570\u7684\u793a\u4f8b\u6837\u672c\u6570\u636e\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528qqnorm()\u51fd\u6570\u5bf9\u6837\u672c\u6570\u636e\u8fdb\u884c\u7ed8\u5236\uff0c\u5f97\u5230QQ\u56fe\u3002

\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528qqline()\u51fd\u6570\u5728QQ\u56fe\u4e0a\u6dfb\u52a0\u53c2\u8003\u7ebf\uff0c\u9ed8\u8ba4\u4f7f\u7528\u6807\u51c6\u6b63\u6001\u5206\u5e03\u7684\u4e0a\u4e0b\u56db\u5206\u4f4d\u6570\u4f5c\u4e3a\u53c2\u8003\u7ebf\u7684\u4f4d\u7f6e\u3002

\u6dfb\u52a0\u53c2\u8003\u7ebf\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u66f4\u76f4\u89c2\u5730\u6bd4\u8f83\u6837\u672c\u6570\u636e\u7684\u5206\u4f4d\u6570\u4e0e\u53c2\u8003\u5206\u5e03\u7684\u5206\u4f4d\u6570\u4e4b\u95f4\u7684\u5173\u7cfb\u3002

\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u4e2a\u5e26\u6709\u53c2\u8003\u7ebf\u7684QQ\u56fe\u3002\u53c2\u8003\u7ebf\u662f\u4e00\u6761\u76f4\u7ebf\uff0c\u4e0eQQ\u56fe\u7684\u70b9\u76f8\u6bd4\u8f83\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5224\u65ad\u6570\u636e\u662f\u5426\u7b26\u5408\u6b63\u6001\u5206\u5e03\u3002

"},{"location":"R/base-content/qqnorm%28%29/","title":"Qqnorm()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cqqnorm()\u51fd\u6570\u7528\u4e8e\u7ed8\u5236\u4e00\u4e2a\u6837\u672c\u7684\u6b63\u6001\u6982\u7387\u56fe\uff08QQ\u56fe\uff0cQuantile-Quantile Plot\uff09\u3002

\u7528\u4e8e\u8bc4\u4f30\u6570\u636e\u662f\u5426\u7b26\u5408\u6b63\u6001\u5206\u5e03\u7684\u56fe\u5f62\u65b9\u6cd5\u3002\u5b83\u5bf9\u6bd4\u4e86\u89c2\u6d4b\u503c\u7684\u5206\u4f4d\u6570\u4e0e\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u5224\u65ad\u6570\u636e\u662f\u5426\u8fd1\u4f3c\u670d\u4ece\u6b63\u6001\u5206\u5e03\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

qqnorm(y, ...)\n

\u53c2\u6570\uff1a - y\uff1a\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793a\u8981\u7ed8\u5236QQ\u56fe\u7684\u6837\u672c\u6570\u636e\u3002 - ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u63a7\u5236\u56fe\u5f62\u7684\u5916\u89c2\uff0c\u5982\u989c\u8272\u3001\u6807\u8bb0\u7b26\u53f7\u7b49\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528qqnorm()\u51fd\u6570\u7ed8\u5236\u6837\u672c\u6570\u636e\u7684QQ\u56fe\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u793a\u4f8b\u6837\u672c\u6570\u636e\ndata <- rnorm(100)\n\n# \u7ed8\u5236QQ\u56fe\nqqnorm(data)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528rnorm()\u51fd\u6570\u751f\u6210\u4e86\u4e00\u4e2a\u5305\u542b100\u4e2a\u670d\u4ece\u6807\u51c6\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570\u7684\u793a\u4f8b\u6837\u672c\u6570\u636e\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528qqnorm()\u51fd\u6570\u5bf9\u6837\u672c\u6570\u636e\u8fdb\u884c\u7ed8\u5236\uff0c\u4e0d\u6307\u5b9a\u5176\u4ed6\u53c2\u6570\u3002

\u8fd9\u5c06\u7ed8\u5236\u4e00\u4e2aQQ\u56fe\uff0c\u663e\u793a\u6837\u672c\u6570\u636e\u7684\u5206\u4f4d\u6570\u548c\u6807\u51c6\u6b63\u6001\u5206\u5e03\u7684\u5206\u4f4d\u6570\u4e4b\u95f4\u7684\u6bd4\u8f83\u5173\u7cfb\u3002

\u6839\u636e\u6837\u672c\u6570\u636e\u548c\u6807\u51c6\u6b63\u6001\u5206\u5e03\u4e4b\u95f4\u7684\u76f8\u4f3c\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u5224\u65ad\u6837\u672c\u6570\u636e\u662f\u5426\u8fd1\u4f3c\u670d\u4ece\u6b63\u6001\u5206\u5e03\u3002

\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u4e2aQQ\u56fe\uff0c\u5176\u4e2d\u70b9\u4f4d\u4e8e\u4e00\u6761\u76f4\u7ebf\u4e0a\uff0c\u8868\u793a\u6837\u672c\u6570\u636e\u8fd1\u4f3c\u670d\u4ece\u6b63\u6001\u5206\u5e03\u3002

"},{"location":"R/base-content/qt%28%29/","title":"Qt()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cqt()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u5b66\u751ft\u5206\u5e03\u7684\u5206\u4f4d\u6570\u6216\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u503c\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

qt(p, df, lower.tail = TRUE, log.p = FALSE)\n

\u53c2\u6570\uff1a - p\uff1a\u4e00\u4e2a\u6570\u503c\u6216\u5411\u91cf\uff0c\u8868\u793a\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u6982\u7387\u503c\u3002

  • df\uff1a\u81ea\u7531\u5ea6\uff0c\u4e00\u4e2a\u6570\u503c\u6216\u5411\u91cf\u3002

  • lower.tail\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u4e00\u4e2a\u903b\u8f91\u503c\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u8ba1\u7b97\u5206\u4f4d\u6570\u3002

\u5f53lower.tail = TRUE\u65f6\uff0c\u8868\u793a\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u503c\uff0c\u5373\u8ba1\u7b97\u4ece\u8d1f\u65e0\u7a77\u5230\u7ed9\u5b9a\u5206\u4f4d\u6570\u7684\u6982\u7387\u3002

\u5f53lower.tail = FALSE\u65f6\uff0c\u8868\u793a\u8ba1\u7b97\u5206\u4f4d\u6570\uff0c\u5373\u8ba1\u7b97\u7ed9\u5b9a\u6982\u7387\u4e0b\u7684\u5206\u4f4d\u6570\uff0c\u5bf9\u5e94\u7684\u5c3e\u90e8\u6982\u7387\u4e3a\u4ece\u7ed9\u5b9a\u5206\u4f4d\u6570\u5230\u6b63\u65e0\u7a77\u7684\u6982\u7387\u3002

  • log.p\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u6982\u7387\u503c\u662f\u5426\u4e3a\u5bf9\u6570\u5f62\u5f0f\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u8868\u793a\u6982\u7387\u503c\u4e3a\u539f\u59cb\u503c\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u5b66\u751ft\u5206\u5e03\u7684\u5206\u4f4d\u6570\u6216\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u503c\u7684\u6570\u503c\u6216\u5411\u91cf\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528qt()\u51fd\u6570\u8ba1\u7b97\u5b66\u751ft\u5206\u5e03\u7684\u5206\u4f4d\u6570\u7684\u793a\u4f8b\uff1a

# \u8ba1\u7b97t\u5206\u5e03\u7684\u5206\u4f4d\u6570\nquantile <- qt(0.95, df = 20)\n\n# \u6253\u5370\u7ed3\u679c\nprint(quantile)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528qt()\u51fd\u6570\u8ba1\u7b97\u4e86\u5b66\u751ft\u5206\u5e03\u7684\u5206\u4f4d\u6570\uff0c\u5176\u4e2d\u8981\u6c42\u8ba1\u7b97\u7684\u5206\u4f4d\u6570\u6982\u7387\u662f0.95\uff0c\u81ea\u7531\u5ea6\u4e3a20\u3002

\u8ba1\u7b97\u7ed3\u679c\u4fdd\u5b58\u5728quantile\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u5206\u4f4d\u6570\u7684\u7ed3\u679c\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] 1.724718\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u8ba1\u7b97\u5f97\u5230\u7684\u5b66\u751ft\u5206\u5e03\u7684\u5206\u4f4d\u6570\u4e3a1.724718\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5982\u679c\u8981\u8ba1\u7b97\u7d2f\u79ef\u5206\u5e03\u51fd\u6570\u7684\u503c\uff0c\u53ef\u4ee5\u5c06lower.tail\u53c2\u6570\u8bbe\u7f6e\u4e3aFALSE\uff0c\u5e76\u63d0\u4f9b\u76f8\u5e94\u7684\u6982\u7387\u503c\u4f5c\u4e3ap\u53c2\u6570\u3002

"},{"location":"R/base-content/quantile%28%29/","title":"Quantile()","text":"

quantile() \u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6570\u636e\u96c6\u7684\u5206\u4f4d\u6570\u3002\u4e0b\u9762\u662f quantile() \u51fd\u6570\u7684\u53c2\u6570\u53ca\u5176\u8be6\u7ec6\u8bf4\u660e\uff1a

quantile(x, probs, type, na.rm=FALSE)\n
- x: \u8981\u8ba1\u7b97\u5206\u4f4d\u6570\u7684\u5411\u91cf\u3001\u6570\u7ec4\u3001\u6570\u636e\u6846\u6216\u77e9\u9635

  • probs: \u4e00\u4e2a\u4ecb\u4e8e 0 \u5230 1 \u4e4b\u95f4\u7684\u6570\u503c\u5411\u91cf\uff0c\u8868\u793a\u8981\u8ba1\u7b97\u7684\u5206\u4f4d\u6570\u3002\u9ed8\u8ba4\u4e3a\u4e2d\u4f4d\u6570\uff080.5\uff09\u30020.75\u8ba1\u7b97\u4e0a\u56db\u5206\u4f4d\u6570

  • type: \u5206\u4f4d\u6570\u8ba1\u7b97\u7684\u7c7b\u578b\uff1b

  • na.rm: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5728\u8ba1\u7b97\u5206\u4f4d\u6570\u65f6\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u5373\u4e0d\u5ffd\u7565\u7f3a\u5931\u503c\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 quantile() \u51fd\u6570\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nx <- c(1, 2, 3, 4, 5, NA, 6, 7, 8, 9, 10)\n\n# \u8ba1\u7b97\u4e2d\u4f4d\u6570\uff08\u9ed8\u8ba4\u5206\u4f4d\u6570\uff09\nmedian <- quantile(x)\nprint(median)\n\n# \u8ba1\u7b97\u7b2c 25% \u548c\u7b2c 75% \u7684\u5206\u4f4d\u6570\nquartiles <- quantile(x, probs = c(0.25, 0.75))\nprint(quartiles)\n\n# \u4f7f\u7528 Type 1 \u7b97\u6cd5\u8ba1\u7b97\u7b2c 90% \u7684\u5206\u4f4d\u6570\uff0c\u5ffd\u7565\u7f3a\u5931\u503c\nquantile_90th <- quantile(x, probs = 0.9, type = \"1\", na.rm = TRUE)\nprint(quantile_90th)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

50% \n  5 \n\n25% 75% \n2.75 8.25 \n\n90% \n  9 \n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u6574\u6570\u548c\u7f3a\u5931\u503c\u7684\u5411\u91cf x\u3002\u9996\u5148\uff0c\u6211\u4eec\u4f7f\u7528\u9ed8\u8ba4\u53c2\u6570\u8ba1\u7b97\u4e86\u4e2d\u4f4d\u6570\u3002\u7136\u540e\uff0c\u901a\u8fc7\u8bbe\u7f6e probs \u53c2\u6570\u4e3a 0.25 \u548c 0.75\uff0c\u8ba1\u7b97\u4e86\u7b2c 25% \u548c\u7b2c 75% \u7684\u5206\u4f4d\u6570\u3002\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528 Type 1 \u7b97\u6cd5\u8ba1\u7b97\u4e86\u7b2c 90% \u7684\u5206\u4f4d\u6570\uff0c\u5e76\u901a\u8fc7\u8bbe\u7f6e na.rm \u53c2\u6570\u4e3a TRUE \u5ffd\u7565\u4e86\u7f3a\u5931\u503c\u3002

"},{"location":"R/base-content/quantile%28%29/#sqe","title":"sqe()\u51fd\u6570\u7684\u5e94\u7528","text":"

\u5728 quantile() \u51fd\u6570\u4e2d\u4f7f\u7528 seq() \u51fd\u6570\u53ef\u4ee5\u5e2e\u52a9\u751f\u6210\u4e00\u7ec4\u7b49\u95f4\u9694\u7684\u6982\u7387\u503c\uff0c\u7528\u4e8e\u8ba1\u7b97\u5bf9\u5e94\u7684\u5206\u4f4d\u6570\u3002seq() \u51fd\u6570\u7528\u4e8e\u521b\u5efa\u4e00\u4e2a\u5e8f\u5217\uff0c\u53ef\u4ee5\u6307\u5b9a\u8d77\u59cb\u503c\u3001\u7ec8\u6b62\u503c\u3001\u6b65\u957f\u548c\u5176\u4ed6\u53c2\u6570\u6765\u63a7\u5236\u5e8f\u5217\u7684\u751f\u6210\u3002

\u5728 quantile() \u51fd\u6570\u4e2d\uff0cprobs \u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u8981\u8ba1\u7b97\u7684\u5206\u4f4d\u6570\u7684\u6982\u7387\u503c\u3002\u5f53\u6211\u4eec\u5e0c\u671b\u8ba1\u7b97\u4e00\u7ec4\u7b49\u95f4\u9694\u7684\u5206\u4f4d\u6570\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 seq() \u51fd\u6570\u751f\u6210\u8fd9\u4e9b\u6982\u7387\u503c\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 seq() \u51fd\u6570\u548c quantile() \u51fd\u6570\u4e00\u8d77\u8ba1\u7b97\u7b49\u95f4\u9694\u7684\u5206\u4f4d\u6570\uff1a

# \u521b\u5efa\u793a\u4f8b\u5411\u91cf\nx <- c(1, 2, 3, 4, 5)\n\n# \u4f7f\u7528 seq() \u51fd\u6570\u751f\u6210\u7b49\u95f4\u9694\u7684\u6982\u7387\u503c\nprobs <- seq(0, 1, by = 0.25)\n\n# \u8ba1\u7b97\u5bf9\u5e94\u7684\u5206\u4f4d\u6570\nquantiles <- quantile(x, probs)\nprint(quantiles)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u6570\u503c\u7684\u5411\u91cf x\u3002\u7136\u540e\uff0c\u4f7f\u7528 seq() \u51fd\u6570\u751f\u6210\u4e86\u4e00\u4e2a\u7b49\u95f4\u9694\u7684\u6982\u7387\u503c\u5411\u91cf probs\uff0c\u5176\u4e2d\u8d77\u59cb\u503c\u4e3a0\uff0c\u7ec8\u6b62\u503c\u4e3a1\uff0c\u6b65\u957f\u4e3a0.25\u3002\u6700\u540e\uff0c\u4f7f\u7528 quantile() \u51fd\u6570\u6839\u636e\u751f\u6210\u7684\u6982\u7387\u503c\u8ba1\u7b97\u76f8\u5e94\u7684\u5206\u4f4d\u6570\u3002

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u751f\u6210\u7684\u6982\u7387\u503c\u4e3a {0, 0.25, 0.5, 0.75, 1}\uff0c\u5206\u522b\u5bf9\u5e94\u4e8e\u6700\u5c0f\u503c\u3001\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\u3001\u4e2d\u4f4d\u6570\u3001\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\u548c\u6700\u5927\u503c\u3002\u901a\u8fc7\u4f7f\u7528 seq() \u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u751f\u6210\u4e00\u7ec4\u7b49\u95f4\u9694\u7684\u6982\u7387\u503c\uff0c\u4ee5\u4fbf\u8ba1\u7b97\u76f8\u5e94\u7684\u5206\u4f4d\u6570\u3002

\u8bf7\u6ce8\u610f\uff0cseq() \u51fd\u6570\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\u53ef\u4ee5\u4f7f\u7528\uff0c\u4f8b\u5982 length.out\uff08\u751f\u6210\u7684\u5e8f\u5217\u7684\u957f\u5ea6\uff09\u548c along.with\uff08\u6839\u636e\u53e6\u4e00\u4e2a\u5bf9\u8c61\u7684\u957f\u5ea6\u751f\u6210\u5e8f\u5217\uff09\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u67e5\u9605 R \u7684\u6587\u6863\u6765\u8fdb\u4e00\u6b65\u4e86\u89e3\u3002

"},{"location":"R/base-content/quantile%28%29/#type","title":"type\u53c2\u6570\u7684\u8be6\u7ec6\u8bb2\u89e3","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cquantile() \u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6570\u503c\u578b\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u53d8\u91cf\u7684\u5206\u4f4d\u6570\u3002type \u53c2\u6570\u662f\u7528\u6765\u6307\u5b9a\u5728\u8ba1\u7b97\u5206\u4f4d\u6570\u65f6\u6240\u4f7f\u7528\u7684\u7b97\u6cd5\u3002R \u4e2d\u5171\u6709\u4e5d\u79cd\u4e0d\u540c\u7684\u7b97\u6cd5\uff0c\u5373 type \u53c2\u6570\u53ef\u4ee5\u53d6\u4ece 1 \u5230 9 \u7684\u503c\uff0c\u8fd9\u4e9b\u7b97\u6cd5\u5728\u5904\u7406\u6709\u9650\u7684\u6837\u672c\u6570\u636e\u65f6\u5b9a\u4e49\u4e86\u4e0d\u540c\u7684\u5206\u4f4d\u6570\u3002

\u8fd9\u4e9b\u7c7b\u578b\u7684\u5b9a\u4e49\u57fa\u4e8e\u4e0d\u540c\u7edf\u8ba1\u5b66\u5bb6\u7684\u5206\u4f4d\u6570\u8ba1\u7b97\u65b9\u6cd5\u3002\u8fd9\u4e9b\u65b9\u6cd5\u5728\u5904\u7406\u6837\u672c\u4e2d\u7684\u5206\u4f4d\u6570\uff08\u7279\u522b\u662f\u5728\u6837\u672c\u8fb9\u754c\u4e0a\uff09\u65f6\u6709\u6240\u4e0d\u540c\u3002\u6bcf\u79cd\u7c7b\u578b\u90fd\u6709\u5176\u7279\u5b9a\u7684\u7528\u4f8b\u548c\u4f18\u70b9\uff0c\u5177\u4f53\u9009\u62e9\u54ea\u79cd\u7c7b\u578b\u53d6\u51b3\u4e8e\u4f60\u7684\u6570\u636e\u548c\u4f60\u7684\u7edf\u8ba1\u9700\u6c42\u3002

\u8fd9\u91cc\u7b80\u8981\u6982\u8ff0\u6bcf\u79cd\u7c7b\u578b\uff1a

  • Type 1: \u8fd9\u79cd\u7c7b\u578b\u7684\u5206\u4f4d\u6570\u57fa\u4e8e\u8fde\u7eed\u5206\u5e03\u7684\u6700\u5c0f\u5316\u65b9\u6cd5\u3002\u5b83\u662f R&S\uff08R\u8f6f\u4ef6\u548cS\u8bed\u8a00\uff09\u7684\u9ed8\u8ba4\u65b9\u6cd5\uff0c\u9002\u7528\u4e8e\u8fde\u7eed\u5206\u5e03\u3002
  • Type 2: \u7c7b\u4f3c\u4e8e\u7c7b\u578b 1\uff0c\u4f46\u9002\u7528\u4e8e\u79bb\u6563\u5206\u5e03\u3002
  • Type 3: \u7c7b\u4f3c\u4e8e\u7c7b\u578b 2\uff0c\u4f46\u5728\u6837\u672c\u4e2d\u5b58\u5728\u591a\u4e2a\u76f8\u540c\u6570\u636e\u70b9\u65f6\u4f7f\u7528\u4e0d\u540c\u7684\u8d4b\u503c\u65b9\u6cd5\u3002
  • Type 4: \u8fd9\u79cd\u65b9\u6cd5\u4f1a\u5e73\u5747\u4e24\u4e2a\u6700\u63a5\u8fd1\u7684\u5b9e\u9645\u89c2\u6d4b\u503c\u3002
  • Type 5: \u7c7b\u4f3c\u4e8e\u7c7b\u578b 4\uff0c\u4f46\u5728\u8ba1\u7b97\u5206\u4f4d\u6570\u65f6\u66f4\u5173\u6ce8\u6837\u672c\u7684\u987a\u5e8f\u7edf\u8ba1\u91cf\u3002
  • Type 6: \u8fd9\u79cd\u7c7b\u578b\u662f\u57fa\u4e8e\u7edf\u8ba1\u8f6f\u4ef6\u5305 SAS \u4f7f\u7528\u7684\u65b9\u6cd5\u3002
  • Type 7: \u7c7b\u578b 7 \u662f Microsoft Excel \u4f7f\u7528\u7684\u65b9\u6cd5\u3002
  • Type 8: \u7c7b\u578b 8 \u548c\u7c7b\u578b 9 \u90fd\u662f\u57fa\u4e8e\u5206\u4f4d\u6570\u5b9a\u4e49\u7684\u7ebf\u6027\u63d2\u503c\u65b9\u6cd5\uff0c\u5176\u4e2d\u7c7b\u578b 8 \u662f\u57fa\u4e8e\u6d77\u5fb7\u6cd5\u5219\uff08Hyndman and Fan, 1996\uff09\u3002
  • Type 9: \u7c7b\u578b 9 \u4e5f\u662f\u57fa\u4e8e\u6d77\u5fb7\u6cd5\u5219\uff0c\u4f46\u5728\u786e\u5b9a\u5206\u4f4d\u6570\u4f4d\u7f6e\u65f6\u4f7f\u7528\u4e0d\u540c\u7684\u516c\u5f0f\u3002

\u4f7f\u7528 type \u53c2\u6570\u7684\u4e00\u4e2a\u4f8b\u5b50\u662f\uff1a

# \u521b\u5efa\u4e00\u4e2a\u6570\u503c\u5411\u91cf\nx <- c(1, 3, 5, 7, 9)\n\n# \u8ba1\u7b97\u7b2c\u4e00\u4e2a\u56db\u5206\u4f4d\u6570\uff0825%\uff09\nquantile(x, probs = 0.25, type = 5)\n

\u5728\u4f7f\u7528 quantile() \u51fd\u6570\u65f6\uff0c\u5982\u679c\u4f60\u4e0d\u786e\u5b9a\u54ea\u79cd\u7c7b\u578b\u6700\u9002\u5408\u4f60\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u7c7b\u578b\u5e76\u6bd4\u8f83\u7ed3\u679c\u3002\u6709\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4e0d\u540c\u7684\u7c7b\u578b\u4f1a\u7ed9\u51fa\u76f8\u540c\u7684\u7ed3\u679c\uff0c\u7279\u522b\u662f\u5728\u5927\u6837\u672c\u91cf\u4e0b\u3002

\u8be6\u7ec6\u7684\u6570\u5b66\u5b9a\u4e49\u548c\u7406\u8bba\u80cc\u666f\u53ef\u4ee5\u5728 R \u8bed\u8a00\u7684\u5b98\u65b9\u6587\u6863\u4e2d\u627e\u5230\uff0c\u6216\u8005\u5728\u7edf\u8ba1\u5b66\u7684\u53c2\u8003\u4e66\u7c4d\u4e2d\u67e5\u9605\u76f8\u5e94\u7684\u5206\u4f4d\u6570\u5b9a\u4e49\u65b9\u6cd5\u3002

"},{"location":"R/base-content/range%28%29/","title":"Range()","text":"

\u662fR\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u6570\u503c\u578b\u5bf9\u8c61\u7684\u8303\u56f4\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u6700\u5c0f\u503c\u548c\u6700\u5927\u503c\u7684\u957f\u5ea6\u4e3a2\u7684\u5411\u91cf\u3002 \u5343\u4e07\u8981\u8ddfpython\u4e2d\u7684range()\u51fd\u6570\u76f8\u533a\u5206\u3002

range(..., na.rm = FALSE, finite = TRUE)\n
- ...\uff1a\u8981\u8ba1\u7b97\u8303\u56f4\u7684\u5411\u91cf\u6216\u6570\u503c\u578b\u5bf9\u8c61\u3002 - na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u786e\u5b9a\u662f\u5426\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aTRUE\uff0c\u5219\u5728\u8ba1\u7b97\u8303\u56f4\u65f6\u5c06\u5ffd\u7565\u7f3a\u5931\u503c\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3aFALSE\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u5219\u7f3a\u5931\u503c\u5c06\u5bfc\u81f4\u7ed3\u679c\u4e3a\u7f3a\u5931\u503c\u3002 - finite: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u9650\u5236\u8ba1\u7b97\u7684\u8303\u56f4\u53ea\u5305\u62ec\u6709\u9650\u503c\u3002\u5982\u679c\u8bbe\u7f6e\u4e3aTRUE(\u9ed8\u8ba4\u503c)\uff0c\u5219\u5728\u8ba1\u7b97\u8303\u56f4\u65f6\u4f1a\u6392\u9664\u65e0\u7a77\u5927\u548c\u65e0\u7a77\u5c0f\u7684\u503c\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3aFALSE\uff0c\u5219\u5305\u62ec\u65e0\u7a77\u5927\u548c\u65e0\u7a77\u5c0f\u7684\u503c\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528range()\u51fd\u6570\u7684\u793a\u4f8b\uff1a
x <- c(3, 6, 2, 8, 5)\n\nvalue_range <- range(x)\n\nprint(value_range)\n
\u8f93\u51fa\uff1a
[1] 2 8\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u6570\u503c\u578b\u5411\u91cfx\u3002\u4f7f\u7528range()\u51fd\u6570\uff0c\u6211\u4eec\u8ba1\u7b97\u4e86x\u4e2d\u6570\u503c\u7684\u8303\u56f4\u3002 \u5728\u7ed3\u679c\u5411\u91cfvalue_range\u4e2d\uff0c\u7b2c\u4e00\u4e2a\u5143\u7d20\u8868\u793ax\u4e2d\u7684\u6700\u5c0f\u503c\uff0c\u53732\uff1b\u7b2c\u4e8c\u4e2a\u5143\u7d20\u8868\u793ax\u4e2d\u7684\u6700\u5927\u503c\uff0c\u53738\u3002 range()\u51fd\u6570\u5bf9\u4e8e\u4e86\u89e3\u6570\u636e\u7684\u53d6\u503c\u8303\u56f4\u548c\u8fb9\u754c\u975e\u5e38\u6709\u7528\u3002 \u5e0c\u671b\u8fd9\u4e2a\u89e3\u91ca\u5bf9\u60a8\u6709\u5e2e\u52a9\u3002\u5982\u679c\u60a8\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/rank%28%29/","title":"Rank()","text":"

\u662fR\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u5143\u7d20\u7684\u6392\u540d\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u8868\u793a\u539f\u59cb\u5411\u91cf\u4e2d\u5bf9\u5e94\u5143\u7d20\u7684\u6392\u540d\u3002\u4ee5\u4e0b\u662frank()\u51fd\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

rank(x, na.last = \"keep\", ties.method = \"average\")\n
- x\uff1a\u8981\u8ba1\u7b97\u6392\u540d\u7684\u5411\u91cf\u3002 - na.last\uff1a\u786e\u5b9a\u5982\u4f55\u5904\u7406\u7f3a\u5931\u503c\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a\"keep\"\uff08\u9ed8\u8ba4\u503c\uff09\uff0c\u5219\u7f3a\u5931\u503c\u5c06\u4fdd\u7559\u5176\u539f\u59cb\u4f4d\u7f6e\uff0c\u4e0d\u53c2\u4e0e\u6392\u540d\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a\"last\"\uff0c\u5219\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6700\u540e\u8fdb\u884c\u6392\u540d\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a\"first\"\uff0c\u5219\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6700\u524d\u9762\u8fdb\u884c\u6392\u540d\u3002 - ties.method\uff1a\u786e\u5b9a\u5982\u4f55\u5904\u7406\u5e76\u5217\u7684\u503c\u3002\u53ef\u9009\u7684\u65b9\u6cd5\u6709\"average\"\uff08\u9ed8\u8ba4\u503c\uff09\u8868\u793a\u53d6\u5e73\u5747\u6392\u540d\uff0c\"min\"\u8868\u793a\u53d6\u6700\u5c0f\u6392\u540d\uff0c\"max\"\u8868\u793a\u53d6\u6700\u5927\u6392\u540d\uff0c\"first\"\u8868\u793a\u6309\u51fa\u73b0\u987a\u5e8f\u6392\u5217\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528rank()\u51fd\u6570\u7684\u793a\u4f8b\uff1a

x <- c(3, 6, 2, 8, 5)\n\nranking <- rank(x)\n\nprint(ranking)\n

\u8f93\u51fa\uff1a

[1] 2 4 1 5 3\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u5411\u91cfx\uff0c\u5305\u542b\u4e86\u4e00\u4e9b\u6570\u503c\u3002\u4f7f\u7528rank()\u51fd\u6570\uff0c\u6211\u4eec\u8ba1\u7b97\u4e86x\u4e2d\u5143\u7d20\u7684\u6392\u540d\u3002

\u5728\u7ed3\u679c\u5411\u91cfranking\u4e2d\uff0c\u6bcf\u4e2a\u5143\u7d20\u8868\u793a\u539f\u59cb\u5411\u91cfx\u4e2d\u5bf9\u5e94\u5143\u7d20\u7684\u6392\u540d\u3002\u4f8b\u5982\uff0c2\u5728x\u4e2d\u662f\u7b2c1\u4e2a\u6700\u5c0f\u7684\u6570\u503c\uff0c\u56e0\u6b64\u5728ranking\u4e2d\u6392\u540d\u4e3a1\u30026\u5728x\u4e2d\u662f\u7b2c2\u4e2a\u6700\u5927\u7684\u6570\u503c\uff0c\u56e0\u6b64\u5728ranking\u4e2d\u6392\u540d\u4e3a4\u3002\u4f9d\u6b64\u7c7b\u63a8\u3002

rank()\u51fd\u6570\u53ef\u7528\u4e8e\u786e\u5b9a\u5411\u91cf\u5143\u7d20\u7684\u76f8\u5bf9\u4f4d\u7f6e\u548c\u6392\u540d\u5173\u7cfb\uff0c\u5bf9\u4e8e\u8fdb\u884c\u6392\u5e8f\u548c\u6bd4\u8f83\u64cd\u4f5c\u975e\u5e38\u6709\u7528\u3002

"},{"location":"R/base-content/rank%28%29/#_1","title":"\u95f4\u63a5\u83b7\u5f97\u4ece\u5927\u5230\u5c0f\u6392\u6392\u5e8f\u5411\u91cf","text":"

\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0crank() \u51fd\u6570\u6309\u7167\u5143\u7d20\u7684\u5927\u5c0f\u4ece\u5c0f\u5230\u5927\u8fdb\u884c\u6392\u540d\u3002\u8f83\u5c0f\u7684\u503c\u5177\u6709\u8f83\u5c0f\u7684\u6392\u540d\uff0c\u8f83\u5927\u7684\u503c\u5177\u6709\u8f83\u5927\u7684\u6392\u540d\u3002

\u4f46\u662f\uff0c\u5982\u679c\u4f60\u5e0c\u671b\u6309\u7167\u5143\u7d20\u7684\u5927\u5c0f\u4ece\u5927\u5230\u5c0f\u8fdb\u884c\u6392\u540d\uff0c\u53ef\u4ee5\u901a\u8fc7\u5bf9\u5411\u91cf\u8fdb\u884c\u53d6\u53cd\u64cd\u4f5c\u6765\u5b9e\u73b0\u3002\u7136\u540e\u518d\u4f7f\u7528 rank() \u51fd\u6570\u8ba1\u7b97\u6392\u540d\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

# \u793a\u4f8b\uff1a\u6309\u7167\u5143\u7d20\u7684\u5927\u5c0f\u4ece\u5927\u5230\u5c0f\u8fdb\u884c\u6392\u540d\nx <- c(5, 3, 8, 2, 6)\n\n# \u5bf9\u5411\u91cf\u53d6\u53cd\nx_reversed <- -x\n\n# \u8ba1\u7b97\u4ece\u5927\u5230\u5c0f\u7684\u6392\u540d\nrank_reverse <- rank(x_reversed)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(rank_reverse)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 2 4 1 5 3\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u5411\u91cf x\uff0c\u5305\u542b\u4e86\u4e00\u4e9b\u6570\u5b57\u3002\u6211\u4eec\u9996\u5148\u5bf9\u5411\u91cf\u53d6\u53cd\uff0c\u5f97\u5230 x_reversed\u3002\u7136\u540e\u4f7f\u7528 rank() \u51fd\u6570\u8ba1\u7b97 x_reversed \u7684\u6392\u540d\uff0c\u5373\u6309\u7167\u5143\u7d20\u7684\u5927\u5c0f\u4ece\u5927\u5230\u5c0f\u8fdb\u884c\u6392\u540d\u3002

\u5e0c\u671b\u8fd9\u4e2a\u89e3\u91ca\u5bf9\u4f60\u6709\u5e2e\u52a9\uff01\u5982\u679c\u4f60\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/rbind%28%29/","title":"Rbind()","text":"

\u662f\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u6309\u884c\u5408\u5e76\uff08\u884c\u7ed1\u5b9a\uff09\u4e24\u4e2a\u6216\u591a\u4e2a\u6570\u636e\u6846\uff08data frame\uff09\u3002\u5b83\u5c06\u591a\u4e2a\u6570\u636e\u6846\u6309\u7167\u884c\u7684\u987a\u5e8f\u8fdb\u884c\u5408\u5e76\uff0c\u751f\u6210\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u3002\u8981\u4f7f\u7528 rbind()\u51fd\u6570\u5408\u5e76\u6570\u636e\u6846\uff0c\u6570\u636e\u6846\u4e4b\u95f4\u7684\u5217\u6570\u548c\u5217\u540d\u5fc5\u987b\u5339\u914d\u3002\u5982\u679c\u5b58\u5728\u5217\u6570\u6216\u5217\u540d\u4e0d\u5339\u914d\u7684\u60c5\u51b5\uff0c\u5c06\u4f1a\u4ea7\u751f\u9519\u8bef\u3002

rbind(..., deparse.level = 1)\n

... \u662f\u8981\u5408\u5e76\u7684\u6570\u636e\u6846\uff08\u81f3\u5c11\u4e24\u4e2a\uff09\uff0c\u53ef\u4ee5\u4f7f\u7528\u9017\u53f7\u5206\u9694\u591a\u4e2a\u6570\u636e\u6846\u3002

deparse.level \u53c2\u6570\u7528\u4e8e\u63a7\u5236\u7ed3\u679c\u4e2d\u7684\u884c\u540d\uff08rownames\uff09\u3002

# \u793a\u4f8b\u6570\u636e\u6846\ndf1 <- data.frame(A = 1:3, B = letters[1:3])\ndf2 <- data.frame(A = 4:6, B = letters[4:6])\n\n# \u4f7f\u7528 rbind() \u51fd\u6570\u5408\u5e76\u6570\u636e\u6846\nresult <- rbind(df1, df2)\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846 df1 \u548c df2\uff0c\u6bcf\u4e2a\u6570\u636e\u6846\u5305\u542b\u4e24\u5217\uff08A \u548c B\uff09\u3002\u901a\u8fc7\u8c03\u7528 rbind() \u51fd\u6570\u5e76\u4f20\u9012\u6570\u636e\u6846 df1 \u548c df2 \u4f5c\u4e3a\u53c2\u6570\uff0c\u6211\u4eec\u5c06\u5b83\u4eec\u6309\u884c\u5408\u5e76\u4e3a\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u3002\u7ed3\u679c\u5b58\u50a8\u5728 result \u4e2d\uff0c\u5e76\u901a\u8fc7\u6253\u5370\u8bed\u53e5\u8f93\u51fa\u3002

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\u6240\u793a\uff1a\n  A B\n1 1 a\n2 2 b\n3 3 c\n4 4 d\n5 5 e\n6 6 f\n

\u5728\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u4e24\u4e2a\u6570\u636e\u6846\u6309\u7167\u884c\u7684\u987a\u5e8f\u5408\u5e76\uff0c\u751f\u6210\u4e86\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u3002\u539f\u59cb\u6570\u636e\u6846\u7684\u5217\u7ed3\u6784\u88ab\u4fdd\u6301\u4e0d\u53d8\u3002

"},{"location":"R/base-content/rbind%28%29/#dfi-1","title":"\u7528df[i, 1]\u8fdb\u884c\u9010\u884c\u8d4b\u503c\uff0c\u4ece\u800c\u5b9e\u73b0\u5217\u5143\u7d20\u7684\u9010\u6b65\u6dfb\u52a0","text":""},{"location":"R/base-content/rchisq%28%29/","title":"Rchisq()","text":"

\u662fR\u8bed\u8a00\u4e2d\u7528\u4e8e\u751f\u6210\u5361\u65b9\u5206\u5e03\u968f\u673a\u53d8\u91cf\u7684\u51fd\u6570\u3002\u5361\u65b9\u5206\u5e03\u662f\u7edf\u8ba1\u5b66\u4e2d\u5e38\u7528\u7684\u6982\u7387\u5206\u5e03\u4e4b\u4e00\uff0c\u5e38\u7528\u4e8e\u5047\u8bbe\u68c0\u9a8c\u548c\u6784\u5efa\u7f6e\u4fe1\u533a\u95f4\u3002 rchisq()\u51fd\u6570\u7684\u8bed\u6cd5\u5982\u4e0b\uff1a

rchisq(n, df)\n
\u53c2\u6570\u8bf4\u660e\uff1a - n\uff1a\u751f\u6210\u7684\u968f\u673a\u53d8\u91cf\u7684\u6570\u91cf\u3002 - df\uff1a\u5361\u65b9\u5206\u5e03\u7684\u81ea\u7531\u5ea6\uff08degrees of freedom\uff09\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528rchisq()\u51fd\u6570\u751f\u6210\u5361\u65b9\u5206\u5e03\u7684\u968f\u673a\u53d8\u91cf\uff1a

# \u751f\u6210\u4e00\u4e2a\u670d\u4ece\u81ea\u7531\u5ea6\u4e3a5\u7684\u5361\u65b9\u5206\u5e03\u7684\u968f\u673a\u53d8\u91cf\nrandom_var <- rchisq(1, df = 5)\nprint(random_var)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528rchisq(1, df = 5)\u751f\u6210\u4e00\u4e2a\u670d\u4ece\u81ea\u7531\u5ea6\u4e3a5\u7684\u5361\u65b9\u5206\u5e03\u7684\u968f\u673a\u53d8\u91cf\uff0c\u5e76\u5c06\u5176\u5b58\u50a8\u5728random_var\u53d8\u91cf\u4e2d\u3002print()\u51fd\u6570\u7528\u4e8e\u6253\u5370\u968f\u673a\u53d8\u91cf\u7684\u503c\u3002

\u8bf7\u6ce8\u610f\uff0crchisq()\u51fd\u6570\u751f\u6210\u7684\u968f\u673a\u53d8\u91cf\u7684\u53d6\u503c\u8303\u56f4\u4e3a\u975e\u8d1f\u5b9e\u6570\u3002\u5361\u65b9\u5206\u5e03\u7684\u81ea\u7531\u5ea6\u53c2\u6570\uff08df\uff09\u51b3\u5b9a\u4e86\u5206\u5e03\u7684\u5f62\u72b6\uff0c\u5f53\u81ea\u7531\u5ea6\u8f83\u5927\u65f6\uff0c\u5361\u65b9\u5206\u5e03\u9010\u6e10\u63a5\u8fd1\u6b63\u6001\u5206\u5e03\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u751f\u6210\u7684\u968f\u673a\u53d8\u91cf\u662f\u6839\u636e\u5361\u65b9\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u8fdb\u884c\u968f\u673a\u62bd\u6837\u5f97\u5230\u7684\uff0c\u56e0\u6b64\u751f\u6210\u7684\u968f\u673a\u53d8\u91cf\u7684\u5206\u5e03\u7279\u6027\u4e0e\u6307\u5b9a\u7684\u81ea\u7531\u5ea6\u53c2\u6570\u76f8\u5173\u3002

\u5e0c\u671b\u8fd9\u4e2a\u4f8b\u5b50\u80fd\u591f\u5e2e\u52a9\u60a8\u7406\u89e3rchisq()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/relevel%28%29/","title":"Relevel()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0crelevel()\u51fd\u6570\u7528\u4e8e\u91cd\u65b0\u6307\u5b9a\u56e0\u5b50\uff08factor\uff09\u5bf9\u8c61\u7684\u53c2\u8003\u6c34\u5e73\uff08reference level\uff09\u3002

\u91cd\u65b0\u6307\u5b9afactor\u5bf9\u8c61\u7684\u6c34\u5e73\u987a\u5e8f

\u51fd\u6570\u5b9a\u4e49\uff1a

relevel(x, ref, ...)\n

\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u56e0\u5b50\u5bf9\u8c61\u3002 - ref\uff1a\u8981\u6307\u5b9a\u4e3a\u53c2\u8003\u6c34\u5e73\u7684\u6c34\u5e73\u503c\u3002 - ...\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5176\u4ed6\u56e0\u5b50\u5bf9\u8c61\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528relevel()\u51fd\u6570\u91cd\u65b0\u6307\u5b9a\u56e0\u5b50\u53c2\u8003\u6c34\u5e73\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b\u56e0\u5b50\nfactor_vector <- factor(c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\"))\n\n# \u91cd\u65b0\u6307\u5b9a\u53c2\u8003\u6c34\u5e73\nreleveled_factor <- relevel(factor_vector, ref = \"B\")\n\n# \u6253\u5370\u91cd\u65b0\u6307\u5b9a\u53c2\u8003\u6c34\u5e73\u540e\u7684\u56e0\u5b50\nprint(releveled_factor)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u56e0\u5b50factor_vector\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u6c34\u5e73\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528relevel()\u51fd\u6570\u5bf9factor_vector\u8fdb\u884c\u5904\u7406\uff0c\u5c06\"B\"\u6307\u5b9a\u4e3a\u53c2\u8003\u6c34\u5e73\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u91cd\u65b0\u6307\u5b9a\u53c2\u8003\u6c34\u5e73\u540e\u7684\u56e0\u5b50releveled_factor\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] A B A C B C\nLevels: A C B\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230releveled_factor\u91cd\u65b0\u6307\u5b9a\u4e86\u53c2\u8003\u6c34\u5e73\uff0c\u5c06\u539f\u672c\u7684\"B\"\u6c34\u5e73\u79fb\u52a8\u5230\u4e86\u6700\u540e\u3002\u73b0\u5728\uff0c\u6c34\u5e73\u7684\u987a\u5e8f\u4e3a\"A\"\u3001\"C\"\u548c\"B\"\u3002

"},{"location":"R/base-content/reorder%28%29/","title":"Reorder()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0creorder()\u51fd\u6570\u7528\u4e8e\u91cd\u65b0\u6392\u5e8f\u4e00\u4e2a\u56e0\u5b50\u53d8\u91cf\uff08\u6216\u5b57\u7b26\u5411\u91cf\uff09\uff0c\u4ee5\u4fbf\u6839\u636e\u53e6\u4e00\u4e2a\u53d8\u91cf\u7684\u503c\u8fdb\u884c\u6392\u5e8f\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u91cd\u65b0\u6392\u5e8f\u540e\u7684\u56e0\u5b50\u53d8\u91cf\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

reorder(x, ..., fun = mean)\n
\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u56e0\u5b50\u53d8\u91cf\uff08\u6216\u5b57\u7b26\u5411\u91cf\uff09\uff0c\u9700\u8981\u91cd\u65b0\u6392\u5e8f\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u7528\u4e8e\u6392\u5e8f\u7684\u5176\u4ed6\u53d8\u91cf\u3002 - fun\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5982\u4f55\u8ba1\u7b97\u6392\u5e8f\u53d8\u91cf\u7684\u6392\u5e8f\u503c\u3002\u9ed8\u8ba4\u4e3amean\uff0c\u8868\u793a\u4f7f\u7528\u5e73\u5747\u503c\u8fdb\u884c\u6392\u5e8f\u3002

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"D\"),\n  value = c(10, 20, 15, 25)\n)\n\n# \u4f7f\u7528reorder()\u51fd\u6570\u91cd\u65b0\u6392\u5e8f\u56e0\u5b50\u53d8\u91cf\ndata$category <- reorder(data$category, data$value)\n\nprint(data)\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u5206\u7c7b\u53d8\u91cfcategory\u548c\u6570\u503c\u53d8\u91cfvalue\u7684\u6570\u636e\u6846\u3002 \u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528reorder()\u51fd\u6570\u91cd\u65b0\u6392\u5e8f\u4e86category\u56e0\u5b50\u53d8\u91cf\uff0c\u6839\u636evalue\u53d8\u91cf\u7684\u503c\u8fdb\u884c\u6392\u5e8f\u3002 \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0creorder()\u51fd\u6570\u9ed8\u8ba4\u4f7f\u7528mean\u51fd\u6570\u8ba1\u7b97\u6392\u5e8f\u503c\uff0c\u5373\u6839\u636e\u6bcf\u4e2acategory\u503c\u5bf9\u5e94\u7684value\u7684\u5e73\u5747\u503c\u8fdb\u884c\u6392\u5e8f\u3002 \u6253\u5370\u8f93\u51fa\u7684\u7ed3\u679c\u5982\u4e0b\uff1a

  category value\n1        A    10\n2        C    15\n3        B    20\n4        D    25\n
\u53ef\u4ee5\u770b\u5230\uff0ccategory\u53d8\u91cf\u88ab\u91cd\u65b0\u6392\u5e8f\uff0c\u6309\u7167value\u53d8\u91cf\u7684\u503c\u4ece\u5c0f\u5230\u5927\u8fdb\u884c\u6392\u5e8f\u3002 reorder()\u51fd\u6570\u5bf9\u4e8e\u521b\u5efa\u57fa\u4e8e\u5176\u4ed6\u53d8\u91cf\u6392\u5e8f\u7684\u56fe\u8868\u975e\u5e38\u6709\u7528\uff0c\u4f8b\u5982\u57fa\u4e8e\u67d0\u4e2a\u6307\u6807\u503c\u7684\u5806\u53e0\u6761\u5f62\u56fe\u6216\u7ebf\u56fe\u3002 \u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528\u5176\u4ed6\u51fd\u6570\u6765\u8ba1\u7b97\u6392\u5e8f\u503c\uff0c\u5e76\u4fee\u6539...\u53c2\u6570\u4ee5\u6307\u5b9a\u5176\u4ed6\u7528\u4e8e\u6392\u5e8f\u7684\u53d8\u91cf\u3002

\u4e5f\u80fd\u5b9e\u73b0df\u6570\u636e\u7684\u91cd\u590d\u6392\u5e03

property_name$property_region <- reorder(property_name$property_region , property_name$sum_property )\n

"},{"location":"R/base-content/rep%28%29/","title":"Rep()","text":"

\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u91cd\u590d\u7684\u503c\u6216\u5411\u91cf\u3002

rep(x, times = 1, each = 1, length.out = NA)\n

  • x\uff1a\u8981\u91cd\u590d\u7684\u503c\u6216\u5411\u91cf\u3002
  • times\uff1a\uff08\u53ef\u9009\uff09\u91cd\u590d x \u7684\u6b21\u6570\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\u6216\u5411\u91cf\u3002
  • each\uff1a\uff08\u53ef\u9009\uff09\u6bcf\u4e2a\u5143\u7d20\u91cd\u590d\u7684\u6b21\u6570\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\u6216\u5411\u91cf\u3002
  • length.out\uff1a\uff08\u53ef\u9009\uff09\u751f\u6210\u7684\u7ed3\u679c\u5411\u91cf\u7684\u957f\u5ea6\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\u3002

rep() \u51fd\u6570\u6839\u636e\u6307\u5b9a\u7684\u53c2\u6570\u751f\u6210\u91cd\u590d\u7684\u503c\u6216\u5411\u91cf\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\u3002

  1. \u91cd\u590d\u5355\u4e2a\u503c\uff1a

       result <- rep(5, times = 3)\n   print(result)  # \u8f93\u51fa\uff1a5 5 5\n

  2. \u91cd\u590d\u5411\u91cf\u5143\u7d20\uff1a

    values <- c(1, 2, 3)\nresult <- rep(values, times = c(2,2,3))\nprint(result)  # \u8f93\u51fa\uff1a1 1 3 2 3 3 3\n

\u53ef\u4ee5\u6307\u5b9a\u5411\u91cf\u5177\u4f53\u5143\u7d20\u91cd\u590d\u7684\u6b21\u6570\u3002

  1. \u6307\u5b9a\u6bcf\u4e2a\u5143\u7d20\u7684\u91cd\u590d\u6b21\u6570\uff1a

    values <- c(1, 2, 3)\nresult <- rep(values, each = 2)\nprint(result)  # \u8f93\u51fa\uff1a1 1 2 2 3 3\n

  2. \u6307\u5b9a\u751f\u6210\u7ed3\u679c\u5411\u91cf\u7684\u957f\u5ea6\uff1a

    values <- c(1, 2, 3)\nresult <- rep(values, length.out = 6)\nprint(result)  # \u8f93\u51fa\uff1a1 2 3 1 2 3\n

5.time\u548ceach\u540c\u7528 \u5148each\u518dtime

   values <- c(1, 2, 3)\n   result <- rep(values, times = 3, each = 2)\n   print(result) # \u8f93\u51fa\uff1a1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 \n

rep() \u51fd\u6570\u5728\u521b\u5efa\u91cd\u590d\u503c\u6216\u5411\u91cf\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u7684\u53c2\u6570\u8bbe\u7f6e\u751f\u6210\u4e0d\u540c\u6a21\u5f0f\u7684\u91cd\u590d\u6570\u636e\u3002\u53ef\u4ee5\u6839\u636e\u9700\u8981\u7075\u6d3b\u5730\u4f7f\u7528 times\u3001each \u548c length.out \u53c2\u6570\u6765\u63a7\u5236\u91cd\u590d\u7684\u65b9\u5f0f\u548c\u8f93\u51fa\u7ed3\u679c\u3002

"},{"location":"R/base-content/rev%28%29/","title":"Rev()","text":"

\u5728 R \u4e2d\uff0crev() \u51fd\u6570\u7528\u4e8e\u53cd\u8f6c\u5411\u91cf\u3001\u5217\u8868\u6216\u5b57\u7b26\u5411\u91cf\u7684\u987a\u5e8f\u3002 \u4ee5\u4e0b\u662f rev() \u51fd\u6570\u7684\u4e00\u822c\u8bed\u6cd5\uff1a

rev(x)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u8981\u53cd\u8f6c\u987a\u5e8f\u7684\u5411\u91cf\u3001\u5217\u8868\u6216\u5b57\u7b26\u5411\u91cf\u3002 \u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 rev() \u51fd\u6570\uff1a
# \u793a\u4f8b1\uff1a\u5411\u91cf\nx <- c(3, 1, 4, 1, 5, 9)\n\n# \u53cd\u8f6c\u5411\u91cf\u7684\u987a\u5e8f\nreversed_vector <- rev(x)\nprint(reversed_vector)\n\n# \u793a\u4f8b2\uff1a\u5217\u8868\nmy_list <- list(a = 1, b = 2, c = 3, d = 4)\n\n# \u53cd\u8f6c\u5217\u8868\u7684\u987a\u5e8f\nreversed_list <- rev(my_list)\nprint(reversed_list)\n\n# \u793a\u4f8b3\uff1a\u5b57\u7b26\u5411\u91cf\nx <- c(\"apple\", \"banana\", \"cherry\")\n\n# \u53cd\u8f6c\u5b57\u7b26\u5411\u91cf\u7684\u987a\u5e8f\nreversed_vector <- rev(x)\nprint(reversed_vector)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 9 5 1 4 1 3\n\n[[1]]\n[1] 4\n\n[[2]]\n[1] 3\n\n[[3]]\n[1] 2\n\n[[4]]\n[1] 1\n\n[1] \"cherry\" \"banana\" \"apple\"\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u7ed3\u6784\u3002\u9996\u5148\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5411\u91cf x\uff0c\u7136\u540e\u4f7f\u7528 rev() \u51fd\u6570\u53cd\u8f6c\u4e86\u5411\u91cf\u7684\u987a\u5e8f\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 reversed_vector \u4e2d\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5217\u8868 my_list\uff0c\u4f7f\u7528 rev() \u51fd\u6570\u53cd\u8f6c\u4e86\u5217\u8868\u7684\u987a\u5e8f\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 reversed_list \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf x\uff0c\u4f7f\u7528 rev() \u51fd\u6570\u53cd\u8f6c\u4e86\u5b57\u7b26\u5411\u91cf\u7684\u987a\u5e8f\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 reversed_vector \u4e2d\u3002

\u603b\u7ed3\u6765\u8bf4\uff0crev() \u51fd\u6570\u7528\u4e8e\u53cd\u8f6c\u5411\u91cf\u3001\u5217\u8868\u6216\u5b57\u7b26\u5411\u91cf\u7684\u987a\u5e8f\u3002\u901a\u8fc7\u5e94\u7528\u8be5\u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u6539\u53d8\u6570\u636e\u5bf9\u8c61\u7684\u987a\u5e8f\u3002

"},{"location":"R/base-content/rm%28%29/","title":"Rm()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0crm()\u51fd\u6570\u662f\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u5220\u9664\u5bf9\u8c61\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

rm(list = ls(), envir = as.environment(pos = 1), inherits = FALSE)\n
\u53c2\u6570\uff1a - list\uff1a\u8981\u5220\u9664\u7684\u5bf9\u8c61\u7684\u540d\u79f0\u6216\u540d\u79f0\u7684\u5411\u91cf\u3002\u9ed8\u8ba4\u4e3a\u5f53\u524d\u73af\u5883\u4e2d\u7684\u6240\u6709\u5bf9\u8c61\uff0c\u4f7f\u7528ls()\u51fd\u6570\u83b7\u53d6\u5bf9\u8c61\u5217\u8868\u3002

  • envir\uff1a\u8981\u5220\u9664\u5bf9\u8c61\u7684\u73af\u5883\u3002\u9ed8\u8ba4\u4e3a\u5f53\u524d\u73af\u5883\uff0c\u4f7f\u7528as.environment(pos = 1)\u83b7\u53d6\u5f53\u524d\u73af\u5883\u3002

  • inherits\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5220\u9664\u7ee7\u627f\u81ea\u6307\u5b9a\u5bf9\u8c61\u7684\u5bf9\u8c61\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u53ea\u5220\u9664\u6307\u5b9a\u7684\u5bf9\u8c61\u3002

  • \u5220\u9664\u5355\u4e2a\u5bf9\u8c61\uff1a

    # \u521b\u5efa\u4e00\u4e2a\u5bf9\u8c61\nx <- 10\n\n# \u5220\u9664\u5bf9\u8c61\nrm(x)\n\n# \u5c1d\u8bd5\u8bbf\u95ee\u5df2\u5220\u9664\u7684\u5bf9\u8c61\nprint(x)\n
    \u8f93\u51fa\uff1a
    Error: object 'x' not found\n
    \u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3ax\u7684\u5bf9\u8c61\uff0c\u5e76\u5c06\u5176\u8d4b\u503c\u4e3a10\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528rm()\u51fd\u6570\u5220\u9664\u4e86\u5bf9\u8c61x\u3002\u6700\u540e\uff0c\u6211\u4eec\u5c1d\u8bd5\u8bbf\u95ee\u5df2\u5220\u9664\u7684\u5bf9\u8c61x\uff0c\u4f1a\u6536\u5230\u4e00\u4e2a\u9519\u8bef\u6d88\u606f\uff0c\u63d0\u793a\u627e\u4e0d\u5230\u5bf9\u8c61\u3002

  • \u5220\u9664\u591a\u4e2a\u5bf9\u8c61\uff1a

    # \u521b\u5efa\u591a\u4e2a\u5bf9\u8c61\nx <- 10\ny <- 20\nz <- 30\n\n# \u5220\u9664\u591a\u4e2a\u5bf9\u8c61\nrm(list = c(\"x\", \"y\"))\n\n# \u5c1d\u8bd5\u8bbf\u95ee\u5df2\u5220\u9664\u7684\u5bf9\u8c61\nprint(x)\nprint(y)\nprint(z)\n
    \u8f93\u51fa\uff1a
    Error: object 'x' not found\nError: object 'y' not found\n[1] 30\n
    \u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e09\u4e2a\u5bf9\u8c61x\u3001y\u548cz\uff0c\u5e76\u7ed9\u5b83\u4eec\u5206\u522b\u8d4b\u503c\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528rm()\u51fd\u6570\u5220\u9664\u4e86\u5bf9\u8c61x\u548cy\u3002\u6700\u540e\uff0c\u6211\u4eec\u5c1d\u8bd5\u8bbf\u95ee\u5df2\u5220\u9664\u7684\u5bf9\u8c61x\u548cy\uff0c\u4f1a\u6536\u5230\u4e24\u4e2a\u9519\u8bef\u6d88\u606f\uff0c\u4f46\u4ecd\u53ef\u4ee5\u8bbf\u95ee\u672a\u5220\u9664\u7684\u5bf9\u8c61z\u3002

\u901a\u8fc7\u4f7f\u7528rm()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u5220\u9664\u5355\u4e2a\u6216\u591a\u4e2a\u5bf9\u8c61\u3002\u53ef\u4ee5\u4f7f\u7528list\u53c2\u6570\u6307\u5b9a\u8981\u5220\u9664\u7684\u5bf9\u8c61\u540d\u79f0\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528envir\u53c2\u6570\u6307\u5b9a\u8981\u5220\u9664\u5bf9\u8c61\u7684\u73af\u5883\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u53ea\u5220\u9664\u6307\u5b9a\u7684\u5bf9\u8c61\uff0c\u4e0d\u5220\u9664\u7ee7\u627f\u81ea\u6307\u5b9a\u5bf9\u8c61\u7684\u5bf9\u8c61\u3002

"},{"location":"R/base-content/rnorm%28%29/","title":"Rnorm()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u968f\u673a\u6570\u751f\u6210\u51fd\u6570\uff0c\u7528\u4e8e\u751f\u6210\u7b26\u5408\u6b63\u6001\u5206\u5e03\uff08\u4e5f\u79f0\u4e3a\u9ad8\u65af\u5206\u5e03\uff09\u7684\u968f\u673a\u6570\u3002\u5b83\u7684\u8bed\u6cd5\u5982\u4e0b\uff1a

rnorm(n, mean = 0, sd = 1)\n

\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a

  • n\uff1a\u751f\u6210\u968f\u673a\u6570\u7684\u4e2a\u6570\u3002
  • mean\uff1a\u6b63\u6001\u5206\u5e03\u7684\u5747\u503c\uff08\u9ed8\u8ba4\u4e3a 0\uff09\u3002
  • sd\uff1a\u6b63\u6001\u5206\u5e03\u7684\u6807\u51c6\u5dee\uff08\u9ed8\u8ba4\u4e3a 1\uff09\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 rnorm() \u51fd\u6570\u751f\u6210\u7b26\u5408\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570\uff1a

# \u751f\u6210 100 \u4e2a\u5747\u503c\u4e3a 0\u3001\u6807\u51c6\u5dee\u4e3a 1 \u7684\u968f\u673a\u6570\nrandom_numbers <- rnorm(100)\n\n# \u6253\u5370\u524d 10 \u4e2a\u968f\u673a\u6570\nprint(random_numbers[1:10])\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 rnorm() \u51fd\u6570\u751f\u6210\u4e86 100 \u4e2a\u7b26\u5408\u5747\u503c\u4e3a 0\u3001\u6807\u51c6\u5dee\u4e3a 1 \u7684\u968f\u673a\u6570\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a random_numbers \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 random_numbers \u7684\u524d 10 \u4e2a\u5143\u7d20\u6765\u67e5\u770b\u751f\u6210\u7684\u968f\u673a\u6570\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574 n\u3001mean \u548c sd \u53c2\u6570\u7684\u503c\uff0c\u4ee5\u751f\u6210\u4e0d\u540c\u5747\u503c\u548c\u6807\u51c6\u5dee\u7684\u968f\u673a\u6570\u3002\u8bf7\u6ce8\u610f\uff0c\u751f\u6210\u7684\u968f\u673a\u6570\u5c06\u9075\u5faa\u6b63\u6001\u5206\u5e03\u7684\u7279\u6027\uff0c\u5373\u5927\u90e8\u5206\u968f\u673a\u6570\u4f1a\u96c6\u4e2d\u5728\u5747\u503c\u9644\u8fd1\uff0c\u800c\u79bb\u5747\u503c\u8d8a\u8fdc\uff0c\u968f\u673a\u6570\u51fa\u73b0\u7684\u6982\u7387\u8d8a\u4f4e\u3002

"},{"location":"R/base-content/round%28%29/","title":"Round()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cround()\u51fd\u6570\u7528\u4e8e\u5bf9\u6570\u503c\u8fdb\u884c\u56db\u820d\u4e94\u5165\u3002

R\u4e2d\u9ed8\u8ba4\u5168\u5c40\u53d8\u91cfdigits=2\uff0c\u6240\u4ee5\u4e00\u822c\u90fd\u662f\u6700\u4f18\u4fdd\u75592\u4f4d\u5c0f\u6570\uff0c\u4e0d\u8db3\u4e24\u4f4d\u5c31\u4fdd\u7559\u5230\u5bf9\u5e94\u4f4d\u6570\uff1f

\u51fd\u6570\u5b9a\u4e49\uff1a

round(x, digits = 0)\n

\u53c2\u6570\uff1a - x\uff1a\u8981\u8fdb\u884c\u56db\u820d\u4e94\u5165\u7684\u6570\u503c\u3002 - digits\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u4fdd\u7559\u7684\u5c0f\u6570\u4f4d\u6570\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u8868\u793a\u4e0d\u4fdd\u7559\u5c0f\u6570\u4f4d\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528round()\u51fd\u6570\u5bf9\u6570\u503c\u8fdb\u884c\u56db\u820d\u4e94\u5165\u7684\u793a\u4f8b\uff1a

# \u56db\u820d\u4e94\u5165\u5230\u6574\u6570\nnum1 <- 3.6\nrounded_num1 <- round(num1)\nprint(rounded_num1)\n\n# \u56db\u820d\u4e94\u5165\u5230\u6307\u5b9a\u5c0f\u6570\u4f4d\u6570\nnum2 <- 3.14159\nrounded_num2 <- round(num2, digits = 2)\nprint(rounded_num2)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5b9a\u4e49\u4e86\u4e24\u4e2a\u6570\u503cnum1\u548cnum2\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528round()\u51fd\u6570\u5bf9num1\u8fdb\u884c\u56db\u820d\u4e94\u5165\uff0c\u9ed8\u8ba4\u4e0d\u4fdd\u7559\u5c0f\u6570\u4f4d\u3002\u56db\u820d\u4e94\u5165\u540e\u7684\u7ed3\u679c\u4fdd\u5b58\u5728rounded_num1\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\u3002

\u63a5\u7740\uff0c\u6211\u4eec\u4f7f\u7528round()\u51fd\u6570\u5bf9num2\u8fdb\u884c\u56db\u820d\u4e94\u5165\uff0c\u6307\u5b9a\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570\u3002\u56db\u820d\u4e94\u5165\u540e\u7684\u7ed3\u679c\u4fdd\u5b58\u5728rounded_num2\u4e2d\uff0c\u5e76\u6253\u5370\u51fa\u6765\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

[1] 4\n[1] 3.14\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230num1\u88ab\u56db\u820d\u4e94\u5165\u4e3a\u6574\u65704\uff0c\u800cnum2\u88ab\u56db\u820d\u4e94\u5165\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570\u4e3a3.14\u3002

"},{"location":"R/base-content/rownames%28%29/","title":"Rownames()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0crownames()\u662f\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u6216\u8bbe\u7f6e\u5bf9\u8c61\u7684\u884c\u540d\u79f0\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

rownames(object)\n
\u53c2\u6570\uff1a - object\uff1a\u8981\u83b7\u53d6\u6216\u8bbe\u7f6e\u884c\u540d\u79f0\u7684\u5bf9\u8c61\uff0c\u4f8b\u5982\u77e9\u9635\u3001\u6570\u636e\u6846\u6216\u5411\u91cf\u3002

  1. \u83b7\u53d6\u5bf9\u8c61\u7684\u884c\u540d\u79f0\uff1a
    # \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(A = 1:3, B = 4:6, C = 7:9)\n\n# \u83b7\u53d6\u6570\u636e\u6846\u7684\u884c\u540d\u79f0\nrow_names <- rownames(df)\n\nprint(row_names)\n
    \u8f93\u51fa\uff1a
    [1] \"1\" \"2\" \"3\"\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3adf\u7684\u6570\u636e\u6846\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528rownames()\u51fd\u6570\u83b7\u53d6\u4e86\u6570\u636e\u6846df\u7684\u884c\u540d\u79f0\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728row_names\u53d8\u91cf\u4e2d\u3002

\u8f93\u51fa\u7ed3\u679c\u663e\u793a\u4e86\u6570\u636e\u6846\u7684\u884c\u540d\u79f0\uff0c\u8fd9\u91cc\u662f\u5b57\u7b26\u7c7b\u578b\u7684\u6570\u5b57\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u884c\u540d\u79f0\u662f\u4ece1\u5f00\u59cb\u7684\u6570\u5b57\u7d22\u5f15\u3002

  1. \u8bbe\u7f6e\u5bf9\u8c61\u7684\u884c\u540d\u79f0\uff1a
    # \u521b\u5efa\u4e00\u4e2a\u77e9\u9635\nmat <- matrix(1:6, nrow = 2)\n\n# \u8bbe\u7f6e\u77e9\u9635\u7684\u884c\u540d\u79f0\nrownames(mat) <- c(\"Row1\", \"Row2\")\n\nprint(mat)\n
    \u8f93\u51fa\uff1a
         [,1] [,2] [,3]\nRow1    1    3    5\nRow2    2    4    6\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a2x3\u7684\u77e9\u9635mat\uff0c\u5176\u4e2d\u5305\u542b1\u52306\u7684\u6574\u6570\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528rownames()\u51fd\u6570\u5c06\u77e9\u9635mat\u7684\u884c\u540d\u79f0\u8bbe\u7f6e\u4e3a\"Row1\"\u548c\"Row2\"\uff0c\u901a\u8fc7\u5c06\u8fd9\u4e9b\u540d\u79f0\u8d4b\u503c\u7ed9rownames(mat)\u6765\u5b9e\u73b0\u3002

\u8f93\u51fa\u7ed3\u679c\u663e\u793a\u4e86\u5e26\u6709\u884c\u540d\u79f0\u7684\u77e9\u9635\u3002

\u901a\u8fc7\u4f7f\u7528rownames()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u83b7\u53d6\u6216\u8bbe\u7f6e\u5bf9\u8c61\u7684\u884c\u540d\u79f0\uff0c\u65e0\u8bba\u662f\u77e9\u9635\u3001\u6570\u636e\u6846\u8fd8\u662f\u5176\u4ed6\u5bf9\u8c61\u3002

"},{"location":"R/base-content/rt%28%29/","title":"Rt()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u5185\u7f6e\u51fd\u6570\uff0c\u7528\u4e8e\u751f\u6210\u7b26\u5408 t \u5206\u5e03\u7684\u968f\u673a\u6570\u3002

rt(n, df)\n
\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a - n\uff1a\u751f\u6210\u968f\u673a\u6570\u7684\u4e2a\u6570\u3002 - df\uff1at \u5206\u5e03\u7684\u81ea\u7531\u5ea6\u53c2\u6570\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 rt() \u51fd\u6570\u751f\u6210\u7b26\u5408 t \u5206\u5e03\u7684\u968f\u673a\u6570\uff1a

# \u751f\u6210 100 \u4e2a\u81ea\u7531\u5ea6\u4e3a 10 \u7684 t \u5206\u5e03\u968f\u673a\u6570\nrandom_numbers <- rt(100, df = 10)\n\n# \u6253\u5370\u524d 10 \u4e2a\u968f\u673a\u6570\nprint(random_numbers[1:10])\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 rt() \u51fd\u6570\u751f\u6210\u4e86 100 \u4e2a\u81ea\u7531\u5ea6\u4e3a 10 \u7684 t \u5206\u5e03\u968f\u673a\u6570\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a random_numbers \u7684\u53d8\u91cf\u4e2d\u3002

\u7136\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370 random_numbers \u7684\u524d 10 \u4e2a\u5143\u7d20\u6765\u67e5\u770b\u751f\u6210\u7684\u968f\u673a\u6570\u3002

\u8bf7\u6ce8\u610f\uff0ct \u5206\u5e03\u662f\u7528\u4e8e\u5c0f\u6837\u672c\u60c5\u51b5\u4e0b\u7684\u7edf\u8ba1\u63a8\u65ad\u7684\u6982\u7387\u5206\u5e03\u3002\u901a\u8fc7\u8c03\u6574 df \u53c2\u6570\uff0c\u53ef\u4ee5\u63a7\u5236 t \u5206\u5e03\u7684\u81ea\u7531\u5ea6\u3002\u81ea\u7531\u5ea6\u8d8a\u5927\uff0ct \u5206\u5e03\u8d8b\u8fd1\u4e8e\u6807\u51c6\u6b63\u6001\u5206\u5e03\u3002

"},{"location":"R/base-content/runif%28%29/","title":"Runif()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0crunif()\u51fd\u6570\u7528\u4e8e\u751f\u6210\u6307\u5b9a\u8303\u56f4\u5185\u7684\u5747\u5300\u5206\u5e03\u7684\u968f\u673a\u6570\u3002\u5b83\u53ef\u4ee5\u751f\u6210\u5355\u4e2a\u968f\u673a\u6570\u6216\u4e00\u4e2a\u7531\u591a\u4e2a\u968f\u673a\u6570\u7ec4\u6210\u7684\u5411\u91cf\u3002

runif(n, min = 0, max = 1)\n
- n\uff1a\u8868\u793a\u8981\u751f\u6210\u7684\u968f\u673a\u6570\u7684\u6570\u91cf\u3002 - min\uff1a\u8868\u793a\u968f\u673a\u6570\u7684\u6700\u5c0f\u503c\uff08\u95ed\u533a\u95f4\uff09\u3002\u9ed8\u8ba4\u4e3a0\u3002 - max\uff1a\u8868\u793a\u968f\u673a\u6570\u7684\u6700\u5927\u503c\uff08\u5f00\u533a\u95f4\uff09\u3002\u9ed8\u8ba4\u4e3a1\u3002

\u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528runif()\u51fd\u6570\uff1a 1. \u751f\u6210\u4e00\u4e2a\u968f\u673a\u6570\uff1a

x <- runif(1)\nx\n
\u8f93\u51fa\u793a\u4f8b\uff1a
[1] 0.8400274\n
\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u751f\u6210\u4e86\u4e00\u4e2a\u4ecb\u4e8e0\u548c1\u4e4b\u95f4\u7684\u968f\u673a\u6570\u3002

  1. \u751f\u6210\u4e00\u4e2a\u5305\u542b\u591a\u4e2a\u968f\u673a\u6570\u7684\u5411\u91cf\uff1a

    y <- runif(5)\ny\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 0.5303953 0.9787434 0.0660195 0.6296170 0.7471945\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u751f\u6210\u4e86\u4e00\u4e2a\u5305\u542b5\u4e2a\u968f\u673a\u6570\u7684\u5411\u91cf\u3002

  2. \u751f\u6210\u6307\u5b9a\u8303\u56f4\u7684\u968f\u673a\u6570\uff1a

"},{"location":"R/base-content/sample%28%29/","title":"Sample()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0csample()\u51fd\u6570\u7528\u4e8e\u4ece\u7ed9\u5b9a\u7684\u5411\u91cf\u6216\u96c6\u5408\u4e2d\u968f\u673a\u62bd\u6837\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u751f\u6210\u968f\u673a\u6392\u5217\u3001\u968f\u673a\u62bd\u53d6\u6837\u672c\u7b49\u64cd\u4f5c\u3002sample()\u51fd\u6570\u7684\u5e38\u7528\u53c2\u6570\u5982\u4e0b\uff1a

sample()\n
- x\uff1a\u8868\u793a\u8981\u4ece\u4e2d\u62bd\u6837\u7684\u5411\u91cf\u6216\u96c6\u5408\u3002 - size\uff1a\u8868\u793a\u8981\u62bd\u53d6\u7684\u6837\u672c\u5927\u5c0f\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u6b63\u6574\u6570\u3002 - replace\uff1a\u8868\u793a\u662f\u5426\u5141\u8bb8\u91cd\u590d\u62bd\u6837\uff0c\u53d6\u503c\u4e3a\u903b\u8f91\u503c\uff08TRUE\u6216FALSE\uff09\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u5141\u8bb8\u91cd\u590d\u62bd\u6837\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u4e0d\u5141\u8bb8\u91cd\u590d\u62bd\u6837\u3002 - prob\uff1a\u8868\u793a\u6bcf\u4e2a\u5143\u7d20\u88ab\u62bd\u53d6\u7684\u6982\u7387\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u6570\u5b57\u5411\u91cf\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u975e\u8d1f\u6570\uff0c\u5e76\u4e14\u603b\u548c\u4e3a1\u3002\u5982\u679c\u672a\u6307\u5b9a\uff0c\u5219\u9ed8\u8ba4\u4e3a\u5747\u5300\u5206\u5e03\u3002 - ...\uff1a\u8868\u793a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u4f8b\u5982\u8bbe\u7f6e\u968f\u673a\u6570\u79cd\u5b50set.seed()\u7b49\u3002

\u4e0b\u9762\u662f\u4e00\u4e9bsample()\u51fd\u6570\u7684\u793a\u4f8b\u7528\u6cd5\uff1a

  1. \u4ece\u5411\u91cf\u4e2d\u968f\u673a\u62bd\u53d6\u6837\u672c\uff1a

    x <- c(\"A\", \"B\", \"C\", \"D\", \"E\")\nsample(x, size = 3)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] \"B\" \"D\" \"A\"\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4ece\u5411\u91cfx\u4e2d\u968f\u673a\u62bd\u53d6\u4e863\u4e2a\u5143\u7d20\u3002

  2. \u751f\u6210\u968f\u673a\u6392\u5217\uff1a

    x <- 1:5\nsample(x)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 2 4 1 5 3\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u751f\u6210\u4e86\u5411\u91cf1:5\u7684\u968f\u673a\u6392\u5217\u3002

  3. \u968f\u673a\u62bd\u53d6\u6837\u672c\u5141\u8bb8\u91cd\u590d\uff1a

    x <- c(\"A\", \"B\", \"C\", \"D\", \"E\")\nsample(x, size = 5, replace = TRUE)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] \"C\" \"B\" \"D\" \"B\" \"E\"\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528replace = TRUE\u53c2\u6570\u5141\u8bb8\u91cd\u590d\u62bd\u6837\u3002

  4. \u6307\u5b9a\u62bd\u6837\u6982\u7387\uff1a

    x <- c(\"A\", \"B\", \"C\", \"D\", \"E\")\nprob <- c(0.1, 0.2, 0.3, 0.2, 0.2)\nsample(x, size = 4, prob = prob, replace = TRUE)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] \"C\" \"A\" \"C\" \"D\"\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6307\u5b9a\u4e86\u6bcf\u4e2a\u5143\u7d20\u88ab\u62bd\u53d6\u7684\u6982\u7387\uff0c\u5176\u4e2d\"A\"\u7684\u6982\u7387\u4e3a0.1\uff0c\"B\"\u7684\u6982\u7387\u4e3a0.2\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002

\u8fd9\u4e9b\u793a\u4f8b\u5c55\u793a\u4e86sample()\u51fd\u6570\u7684\u4e00\u4e9b\u5e38\u89c1\u7528\u6cd5\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u4f7f\u7528\u4e0d\u540c\u7684\u53c2\u6570\u7ec4\u5408\u6765\u5b9e\u73b0\u5404\u79cd\u968f\u673a\u62bd\u6837\u64cd\u4f5c\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3sample()\u51fd\u6570\u7684\u7528\u6cd5\u3002\u5982\u6709\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u89e3\u91ca\u6216\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/sapply%28%29/","title":"Sapply()","text":"

\u5904\u7406df\u4e2d\u7684\u6bcf\u5217\u6570\u636e\uff1b

\u5728 R \u8bed\u8a00\u4e2d\uff0csapply() \u51fd\u6570\u7528\u4e8e\u5bf9\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u7684\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u6307\u5b9a\u7684\u51fd\u6570\uff0c\u5e76\u8fd4\u56de\u7ed3\u679c\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u3002\u4e0b\u9762\u662f\u5bf9 sapply() \u51fd\u6570\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)\n

\u53c2\u6570\u8bf4\u660e\uff1a \u4ee5\u4e0b\u662f sapply() \u51fd\u6570\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570\uff0c\u5177\u4f53\u8bf4\u660e\u5982\u4e0b\uff1a - X\uff1a\u8981\u5e94\u7528\u51fd\u6570\u7684\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u3002 - FUN\uff1a\u8981\u5e94\u7528\u7684\u51fd\u6570\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u4f20\u9012\u7ed9 FUN \u51fd\u6570\u3002 - simplify\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5c1d\u8bd5\u7b80\u5316\u7ed3\u679c\u3002\u9ed8\u8ba4\u4e3a TRUE\uff0c\u8868\u793a\u5c1d\u8bd5\u5c06\u7ed3\u679c\u7b80\u5316\u4e3a\u5411\u91cf\u6216\u77e9\u9635\u3002\u5982\u679c\u8bbe\u4e3a FALSE\uff0c\u5219\u7ed3\u679c\u5c06\u59cb\u7ec8\u4e3a\u5217\u8868\u3002 - USE.NAMES\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u4f7f\u7528 X \u7684\u540d\u79f0\u4f5c\u4e3a\u7ed3\u679c\u7684\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3a TRUE\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 sapply() \u51fd\u6570\u5e94\u7528\u51fd\u6570\u7684\u793a\u4f8b\uff1a

  1. \u5e94\u7528\u5185\u7f6e\u51fd\u6570\uff1a
# \u5e94\u7528 sum() \u51fd\u6570\nx <- c(1, 2, 3)\nresult <- sapply(x, sum)\n\nresult\n

\u8f93\u51fa\uff1a

[1] 1 2 3\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 sapply() \u51fd\u6570\u548c\u5185\u7f6e\u51fd\u6570 sum() \u5bf9\u5411\u91cf x \u7684\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u6c42\u548c\u64cd\u4f5c\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u5305\u542b\u6bcf\u4e2a\u5143\u7d20\u6c42\u548c\u7ed3\u679c\u7684\u5411\u91cf\u3002

  1. \u5e94\u7528\u81ea\u5b9a\u4e49\u51fd\u6570\uff1a
# \u81ea\u5b9a\u4e49\u51fd\u6570\nadd_one <- function(x) {\n  x + 1\n}\n\n# \u5e94\u7528\u81ea\u5b9a\u4e49\u51fd\u6570\nx <- c(1, 2, 3)\nresult <- sapply(x, add_one)\n\nresult\n

\u8f93\u51fa\uff1a

[1] 2 3 4\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 sapply() \u51fd\u6570\u548c\u81ea\u5b9a\u4e49\u7684\u51fd\u6570 add_one() \u5bf9\u5411\u91cf x \u7684\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u52a0\u4e00\u64cd\u4f5c\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u5305\u542b\u6bcf\u4e2a\u5143\u7d20\u52a0\u4e00\u7ed3\u679c\u7684\u5411\u91cf\u3002

  1. \u5e94\u7528\u51fd\u6570\u5230\u6570\u636e\u6846\u7684\u6bcf\u5217\uff1a
# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3),\n  y = c(\"a\", \"b\", \"c\")\n)\n\n# \u5e94\u7528\u51fd\u6570\u5230\u6570\u636e\u6846\u7684\u6bcf\u5217\nresult <- sapply(data, unique)\n\nresult\n

\u8f93\u51fa\uff1a

$x\n[1] 1 2 3\n\n$y\n[1] \"a\" \"b\" \"c\"\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 sapply() \u51fd\u6570\u5c06\u5185\u7f6e\u51fd\u6570 unique() \u5e94\u7528\u4e8e\u6570\u636e\u6846 data \u7684\u6bcf\u4e00\u5217\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u5305\u542b\u6bcf\u5217\u7684\u552f\u4e00\u503c\u3002

\u901a\u8fc7\u4f20\u9012\u9002\u5f53\u7684\u53c2\u6570\u548c\u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528 sapply() \u51fd\u6570\u5728 R \u4e2d\u5bf9\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\u7684\u6bcf\u4e2a\u5143\u7d20\u5e94\u7528\u6307\u5b9a\u7684\u51fd\u6570\uff0c\u5e76\u83b7\u5f97\u76f8\u5e94\u7684\u7ed3\u679c\u3002

"},{"location":"R/base-content/sd%28%29/","title":"Sd()","text":"

\u5728 R \u4e2d\uff0csd() \u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u6570\u503c\u578b\u53d8\u91cf\u7684\u6807\u51c6\u5dee\u3002 \u4ee5\u4e0b\u662f sd() \u51fd\u6570\u7684\u4e00\u822c\u8bed\u6cd5\uff1a

sd(x, na.rm = FALSE)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x: \u8981\u8ba1\u7b97\u6807\u51c6\u5dee\u7684\u5411\u91cf\u3001\u5217\u8868\u3001\u6570\u636e\u6846\u6216\u6570\u503c\u578b\u53d8\u91cf\u3002 - na.rm: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u5728\u8ba1\u7b97\u6807\u51c6\u5dee\u65f6\u662f\u5426\u5ffd\u7565\u7f3a\u5931\u503c\uff08NA\uff09\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u4e0d\u5ffd\u7565\u7f3a\u5931\u503c\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5219\u5728\u8ba1\u7b97\u6807\u51c6\u5dee\u65f6\u5c06\u5ffd\u7565\u7f3a\u5931\u503c\u3002

\u4ee5\u4e0b\u662f sd() \u51fd\u6570\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b1\uff1a\u5411\u91cf\nx <- c(3, 1, 4, 1, 5, 9)\n\n# \u8ba1\u7b97\u5411\u91cf\u7684\u6807\u51c6\u5dee\nstandard_deviation <- sd(x)\nprint(standard_deviation)\n\n# \u793a\u4f8b2\uff1a\u6570\u636e\u6846\ndf <- data.frame(x = c(3, 1, 4, 1, 5, 9), y = c(2, 6, 8, 3, 1, 5))\n\n# \u8ba1\u7b97\u6570\u636e\u6846\u4e2d\u53d8\u91cf y \u7684\u6807\u51c6\u5dee\nstandard_deviation <- sd(df$y)\nprint(standard_deviation)\n\n# \u793a\u4f8b3\uff1a\u5e26\u6709\u7f3a\u5931\u503c\u7684\u5411\u91cf\nx <- c(3, 1, NA, 4, 1, 5, 9)\n\n# \u5ffd\u7565\u7f3a\u5931\u503c\uff0c\u8ba1\u7b97\u6807\u51c6\u5dee\nstandard_deviation <- sd(x, na.rm = TRUE)\nprint(standard_deviation)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 2.915476\n\n[1] 2.366432\n\n[1] 2.915476\n

\u5728\u793a\u4f8b1\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86\u4e00\u4e2a\u5411\u91cf x\uff0c\u5e76\u4f7f\u7528 sd() \u51fd\u6570\u8ba1\u7b97\u4e86\u8be5\u5411\u91cf\u7684\u6807\u51c6\u5dee\u3002 \u5728\u793a\u4f8b2\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u53d8\u91cf\u7684\u6570\u636e\u6846 df\uff0c\u4f7f\u7528 sd() \u51fd\u6570\u8ba1\u7b97\u4e86\u6570\u636e\u6846\u4e2d\u53d8\u91cf y \u7684\u6807\u51c6\u5dee\u3002 \u5728\u793a\u4f8b3\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u7f3a\u5931\u503c\u7684\u5411\u91cf x\uff0c\u901a\u8fc7\u5c06 na.rm \u53c2\u6570\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5728\u8ba1\u7b97\u6807\u51c6\u5dee\u65f6\u5ffd\u7565\u4e86\u7f3a\u5931\u503c\u3002 \u603b\u7ed3\u6765\u8bf4\uff0csd() \u51fd\u6570\u53ef\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u3001\u6570\u636e\u6846\u6216\u6570\u503c\u578b\u53d8\u91cf\u7684\u6807\u51c6\u5dee\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 na.rm \u53c2\u6570\u6765\u63a7\u5236\u662f\u5426\u5ffd\u7565\u7f3a\u5931\u503c\u3002

"},{"location":"R/base-content/seq%28%29/","title":"Seq()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u6570\u503c\u5e8f\u5217\u3002seq() \u51fd\u6570\u6839\u636e\u6307\u5b9a\u7684\u53c2\u6570\u751f\u6210\u4e00\u4e2a\u6570\u503c\u5e8f\u5217\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u7531\u8fd9\u4e9b\u503c\u7ec4\u6210\u7684\u5411\u91cf\u3002

seq(from, to, by, length.out)\n
- from\uff1a\u5e8f\u5217\u7684\u8d77\u59cb\u503c\u3002 - to\uff1a\u5e8f\u5217\u7684\u7ed3\u675f\u503c\u3002 - by\uff1a\uff08\u53ef\u9009\uff09\u5e8f\u5217\u4e2d\u76f8\u90bb\u503c\u4e4b\u95f4\u7684\u6b65\u957f\uff0c2+3=5\uff0c\u6b65\u957f\u4e3a3\u3002\u9ed8\u8ba4\u4e3a1 - length.out\uff1a\uff08\u53ef\u9009\uff09\u751f\u6210\u7684\u5e8f\u5217\u7684\u957f\u5ea6\uff0c\u5373\u5143\u7d20\u4e2a\u6570 \u540e\u9762\u4e09\u4e2a\u53c2\u6570\u4e0d\u80fd\u540c\u65f6\u51fa\u73b0\uff0c\u4e24\u4e2a\u53c2\u6570\u5c31\u80fd\u51b3\u5b9a\u5e8f\u5217\u503c \u3002

\u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff1a 1. \u521b\u5efa\u9ed8\u8ba4\u6b65\u957f\u7684\u5e8f\u5217\uff1a

seq1 <- seq(1, 5)\nprint(seq1)  # \u8f93\u51fa\uff1a1 2 3 4 5\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `seq()` \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u4ece 1 \u5230 5 \u7684\u9ed8\u8ba4\u6b65\u957f\u4e3a 1 \u7684\u5e8f\u5217\u3002\n
2. \u521b\u5efa\u6307\u5b9a\u6b65\u957f\u7684\u5e8f\u5217\uff1a
seq2 <- seq(0, 10, by = 2)\nprint(seq2)  # \u8f93\u51fa\uff1a0 2 4 6 8 10\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `seq()` \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u4ece 0 \u5230 10\uff0c\u6b65\u957f\u4e3a 2 \u7684\u5e8f\u5217\u3002\n
3. \u521b\u5efa\u6307\u5b9a\u957f\u5ea6\u7684\u5e8f\u5217\uff1a
seq3 <- seq(1, 10, length.out = 5)\nprint(seq3)  # \u8f93\u51fa\uff1a1 3.25 5.5 7.75 10\n```\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 `seq()` \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u4ece 1 \u5230 10\uff0c\u5e76\u4e14\u957f\u5ea6\u4e3a 5 \u7684\u5e8f\u5217\u3002\u751f\u6210\u7684\u5e8f\u5217\u4f1a\u6839\u636e\u8d77\u59cb\u503c\u548c\u7ed3\u675f\u503c\u4e4b\u95f4\u7684\u8ddd\u79bb\u7b49\u95f4\u9694\u5730\u5206\u5e03\u3002\n
4\uff0cby\u548clength.out\u4e00\u8d77\u7528 \u5143\u7d20\u6570\u91cf\u4e3a4\uff0c\u6b65\u957f\u4e3a3
   seq(from = 2,by = 3,length.out = 4)\n   # \u8f93\u51fa:  2  5  8 11\n
seq() \u51fd\u6570\u5728\u521b\u5efa\u6570\u503c\u5e8f\u5217\u65f6\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u6307\u5b9a\u7684\u8d77\u59cb\u503c\u3001\u7ed3\u675f\u503c\u3001\u6b65\u957f\u6216\u5e8f\u5217\u957f\u5ea6\u6765\u751f\u6210\u4e0d\u540c\u6a21\u5f0f\u7684\u5e8f\u5217\u3002\u6839\u636e\u9700\u8981\u53ef\u4ee5\u7075\u6d3b\u5730\u8c03\u6574\u53c2\u6570\u6765\u521b\u5efa\u6240\u9700\u7684\u6570\u503c\u5e8f\u5217\u3002

"},{"location":"R/base-content/seq_along%28%29/","title":"Seq along()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cseq_along() \u51fd\u6570\u662f\u4e00\u4e2a\u57fa\u7840\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u751f\u6210\u4e0e\u8f93\u5165\u5411\u91cf\u957f\u5ea6\u76f8\u540c\u7684\u6574\u6570\u5e8f\u5217\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e seq_along() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/base-content/seq_along%28%29/#seq_along","title":"seq_along \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u751f\u6210\u4e0e\u8f93\u5165\u5411\u91cf\u957f\u5ea6\u76f8\u540c\u7684\u6574\u6570\u5e8f\u5217\u3002

\u6240\u5c5e\u5305\uff1a seq_along() \u51fd\u6570\u662fR\u7684\u57fa\u7840\u51fd\u6570\uff0c\u65e0\u9700\u52a0\u8f7d\u4efb\u4f55\u7279\u5b9a\u5305\u3002

\u5b9a\u4e49\uff1a

seq_along(along.with)\n

"},{"location":"R/base-content/seq_along%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • along.with\uff1a \u4e00\u4e2a\u5bf9\u8c61\uff0c\u901a\u5e38\u662f\u5411\u91cf\u3001\u5217\u8868\u6216\u6570\u636e\u6846\uff0c\u7528\u4e8e\u786e\u5b9a\u751f\u6210\u7684\u6574\u6570\u5e8f\u5217\u7684\u957f\u5ea6\u3002
"},{"location":"R/base-content/seq_along%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u4f7f\u7528seq_along\u751f\u6210\u6574\u6570\u5e8f\u5217\nvector <- c(10, 20, 30, 40, 50)\n\n# \u751f\u6210\u4e0e\u5411\u91cf\u957f\u5ea6\u76f8\u540c\u7684\u6574\u6570\u5e8f\u5217\nsequence <- seq_along(vector)\n\n# \u663e\u793a\u7ed3\u679c\nprint(sequence)\n
"},{"location":"R/base-content/seq_along%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cseq_along() \u51fd\u6570\u88ab\u7528\u4e8e\u751f\u6210\u4e0e\u8f93\u5165\u5411\u91cf vector \u957f\u5ea6\u76f8\u540c\u7684\u6574\u6570\u5e8f\u5217\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] 1 2 3 4 5\n

\u8fd9\u8868\u793a\u6210\u529f\u751f\u6210\u4e86\u4e00\u4e2a\u6574\u6570\u5e8f\u5217\uff0c\u8be5\u5e8f\u5217\u7684\u957f\u5ea6\u4e0e\u8f93\u5165\u5411\u91cf\u7684\u957f\u5ea6\u76f8\u540c\u3002\u8fd9\u4e2a\u5e8f\u5217\u901a\u5e38\u7528\u4e8e\u5728\u5faa\u73af\u6216\u5176\u4ed6\u60c5\u5883\u4e2d\u6307\u5b9a\u4f4d\u7f6e\u3002

"},{"location":"R/base-content/set_names%28%29/","title":"Set names()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cset_names()\u51fd\u6570\u662f\u7528\u4e8e\u7ed9\u5411\u91cf\u6216\u5217\u8868\u8bbe\u7f6e\u65b0\u7684\u540d\u79f0\u7684\u51fd\u6570\u3002\u5b83\u53ef\u4ee5\u4e3a\u5411\u91cf\u6216\u5217\u8868\u4e2d\u7684\u5143\u7d20\u5206\u914d\u65b0\u7684\u540d\u79f0\uff0c\u5e76\u8fd4\u56de\u5177\u6709\u65b0\u547d\u540d\u7684\u5bf9\u8c61\u3002

set_names(x, nm)\n
- x\uff1a\u8868\u793a\u8981\u8bbe\u7f6e\u540d\u79f0\u7684\u5411\u91cf\u6216\u5217\u8868\u3002 - nm\uff1a\u8868\u793a\u65b0\u7684\u540d\u79f0\u5411\u91cf\uff0c\u957f\u5ea6\u5fc5\u987b\u4e0ex\u7684\u957f\u5ea6\u76f8\u540c\u3002

  1. \u4e3a\u5411\u91cf\u8bbe\u7f6e\u65b0\u7684\u540d\u79f0\uff1a

    x <- c(1, 2, 3, 4, 5)\nnames <- c(\"A\", \"B\", \"C\", \"D\", \"E\")\nnew_x <- set_names(x, names)\nnew_x\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
     A  B  C  D  E \n 1  2  3  4  5 \n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4e3a\u5411\u91cfx\u8bbe\u7f6e\u4e86\u65b0\u7684\u540d\u79f0\uff0c\u4f7f\u7528\u4e86set_names()\u51fd\u6570\u3002\u65b0\u7684\u5411\u91cfnew_x\u5177\u6709\u76f8\u5e94\u7684\u65b0\u540d\u79f0\u3002

  2. \u4e3a\u5217\u8868\u8bbe\u7f6e\u65b0\u7684\u540d\u79f0\uff1a

    my_list <- list(a = 1, b = 2, c = 3)\nnew_names <- c(\"x\", \"y\", \"z\")\nnew_list <- set_names(my_list, new_names)\nnew_list\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    $x\n[1] 1\n\n$y\n[1] 2\n\n$z\n[1] 3\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4e3a\u5217\u8868my_list\u4e2d\u7684\u5143\u7d20\u8bbe\u7f6e\u4e86\u65b0\u7684\u540d\u79f0\uff0c\u4f7f\u7528\u4e86set_names()\u51fd\u6570\u3002\u65b0\u7684\u5217\u8868new_list\u5177\u6709\u76f8\u5e94\u7684\u65b0\u540d\u79f0\u3002

\u8fd9\u4e9b\u793a\u4f8b\u5c55\u793a\u4e86set_names()\u51fd\u6570\u7684\u4e00\u4e9b\u5e38\u89c1\u7528\u6cd5\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528set_names()\u51fd\u6570\u4e3a\u5411\u91cf\u6216\u5217\u8868\u4e2d\u7684\u5143\u7d20\u5206\u914d\u65b0\u7684\u540d\u79f0\u3002

"},{"location":"R/base-content/setwd%28%29/","title":"Setwd()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0csetwd()\u51fd\u6570\u7528\u4e8e\u8bbe\u7f6e\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\uff08working directory\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

setwd(dir)\n

\u53c2\u6570\uff1a \u4ee5\u4e0b\u662fsetwd()\u51fd\u6570\u4e2d\u7684\u53c2\u6570\uff1a

  • dir\uff1a\u8981\u8bbe\u7f6e\u4e3a\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u7684\u8def\u5f84\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u8868\u793a\u76ee\u5f55\u7684\u8def\u5f84\u3002

\u8fd4\u56de\u503c\uff1a setwd()\u51fd\u6570\u6ca1\u6709\u660e\u786e\u7684\u8fd4\u56de\u503c\u3002\u5b83\u4ec5\u7528\u4e8e\u5c06\u6307\u5b9a\u7684\u8def\u5f84\u8bbe\u7f6e\u4e3a\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528setwd()\u51fd\u6570\u8bbe\u7f6e\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u7684\u793a\u4f8b\uff1a

# \u8bbe\u7f6e\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\nsetwd(\"/path/to/directory\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528setwd()\u51fd\u6570\u5c06/path/to/directory\u8bbe\u7f6e\u4e3a\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u3002\u53ef\u4ee5\u5c06\u8def\u5f84\u66ff\u6362\u4e3a\u4f60\u60f3\u8981\u8bbe\u7f6e\u7684\u5b9e\u9645\u76ee\u5f55\u8def\u5f84\u3002

\u8bf7\u6ce8\u610f\uff0csetwd()\u51fd\u6570\u4f1a\u66f4\u6539R\u7684\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\uff0c\u5373\u540e\u7eed\u6587\u4ef6\u8bfb\u5199\u7b49\u64cd\u4f5c\u5c06\u5728\u8be5\u76ee\u5f55\u4e0b\u8fdb\u884c\u3002\u8fd9\u5bf9\u4e8e\u7ba1\u7406\u6587\u4ef6\u548c\u52a0\u8f7d\u6570\u636e\u975e\u5e38\u6709\u7528\u3002

\u5173\u4e8e\u201c\u8ddd\u79bb\u201d\u7684\u90e8\u5206\uff0csetwd()\u51fd\u6570\u4e0e\u8ddd\u79bb\u8ba1\u7b97\u65e0\u5173\uff0c\u5b83\u4e3b\u8981\u7528\u4e8e\u6587\u4ef6\u7cfb\u7edf\u64cd\u4f5c\u3002\u5982\u679c\u4f60\u5bf9\u8ddd\u79bb\u8ba1\u7b97\u611f\u5174\u8da3\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u5176\u4ed6R\u5305\u4e2d\u7684\u51fd\u6570\uff0c\u5982dist()\u7528\u4e8e\u8ba1\u7b97\u8ddd\u79bb\u77e9\u9635\u3002

"},{"location":"R/base-content/shapiro.test%28%29/","title":"Shapiro.test()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cshapiro.test() \u51fd\u6570\u7528\u4e8e\u6267\u884c Shapiro-Wilk \u6b63\u6001\u6027\u68c0\u9a8c\u3002\u8be5\u68c0\u9a8c\u7528\u4e8e\u9a8c\u8bc1\u4e00\u4e2a\u6837\u672c\u662f\u5426\u6765\u81ea\u4e8e\u6b63\u6001\u5206\u5e03\u3002\u4e0b\u9762\u662f\u5bf9 shapiro.test() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a \u51fd\u6570\u8bed\u6cd5\uff1a

shapiro.test(x)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u4e00\u4e2a\u6570\u636e\u5411\u91cf\uff0c\u8868\u793a\u8981\u8fdb\u884c\u6b63\u6001\u6027\u68c0\u9a8c\u7684\u6837\u672c\u6570\u636e\u3002 \u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b Shapiro-Wilk \u6b63\u6001\u6027\u68c0\u9a8c\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf W\uff08Shapiro-Wilk \u7edf\u8ba1\u91cf\uff09\u3001p \u503c\u7b49\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528 shapiro.test() \u51fd\u6570\u8fdb\u884c\u6b63\u6001\u6027\u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u751f\u6210\u4e00\u4e2a\u670d\u4ece\u6b63\u6001\u5206\u5e03\u7684\u6837\u672c\u6570\u636e\nset.seed(123)\nx <- rnorm(100)\n\n# \u4f7f\u7528 shapiro.test() \u8fdb\u884c\u6b63\u6001\u6027\u68c0\u9a8c\nresult <- shapiro.test(x)\n\n# \u6253\u5370\u6b63\u6001\u6027\u68c0\u9a8c\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528 rnorm() \u51fd\u6570\u751f\u6210\u4e00\u4e2a\u670d\u4ece\u6b63\u6001\u5206\u5e03\u7684\u6837\u672c\u6570\u636e\u5411\u91cf x\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 shapiro.test() \u51fd\u6570\u5bf9\u6837\u672c\u6570\u636e x \u8fdb\u884c Shapiro-Wilk \u6b63\u6001\u6027\u68c0\u9a8c\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u6b63\u6001\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0cshapiro.test() \u51fd\u6570\u4e3b\u8981\u9002\u7528\u4e8e\u5c0f\u6837\u672c\u6570\u636e\uff08\u901a\u5e38\u9002\u7528\u4e8e\u5c0f\u4e8e 5000 \u4e2a\u89c2\u6d4b\u503c\uff09\u3002\u5bf9\u4e8e\u5927\u6837\u672c\u6570\u636e\uff0c\u6b63\u6001\u6027\u68c0\u9a8c\u53ef\u80fd\u4e0d\u591f\u654f\u611f\u3002\u6b64\u5916\uff0cshapiro.test() \u51fd\u6570\u4ec5\u9002\u7528\u4e8e\u5355\u4e2a\u6837\u672c\u7684\u6b63\u6001\u6027\u68c0\u9a8c\u3002\u5982\u679c\u4f60\u60f3\u6bd4\u8f83\u4e24\u4e2a\u6837\u672c\u7684\u6b63\u6001\u6027\uff0c\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u65b9\u6cd5\uff0c\u5982 Q-Q \u56fe\u6216\u8005\u5176\u4ed6\u6b63\u6001\u6027\u68c0\u9a8c\u65b9\u6cd5\u3002

"},{"location":"R/base-content/sort%28%29/","title":"Sort()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0csort() \u51fd\u6570\u7528\u4e8e\u5bf9\u5411\u91cf\u6216\u77e9\u9635\u8fdb\u884c\u6392\u5e8f\u3002\u5b83\u53ef\u4ee5\u6309\u5347\u5e8f\u6216\u964d\u5e8f\u5bf9\u5143\u7d20\u8fdb\u884c\u6392\u5e8f\u3002\u4e0b\u9762\u662f\u5bf9 sort() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a \u51fd\u6570\u8bed\u6cd5\uff1a

sort(x, decreasing = FALSE, na.last = TRUE, ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u4e00\u4e2a\u5411\u91cf\u6216\u77e9\u9635\uff0c\u8868\u793a\u8981\u8fdb\u884c\u6392\u5e8f\u7684\u5bf9\u8c61\u3002 - decreasing\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u6309\u964d\u5e8f\u6392\u5e8f\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u6309\u5347\u5e8f\u6392\u5e8f\u3002 - na.last\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7ed3\u679c\u7684\u6700\u540e\u3002\u9ed8\u8ba4\u4e3a TRUE\uff0c\u8868\u793a\u7f3a\u5931\u503c\u653e\u5728\u6700\u540e\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9 sort() \u51fd\u6570\u7684\u9009\u9879\u3002

\u8fd4\u56de\u503c\uff1a

\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6309\u6307\u5b9a\u987a\u5e8f\u6392\u5e8f\u7684\u5411\u91cf\u6216\u77e9\u9635\u3002

\u793a\u4f8b\uff1a

\u4e0b\u9762\u662f\u4f7f\u7528 sort() \u51fd\u6570\u5bf9\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nx <- c(5, 2, 8, 1, 9)\n\n# \u5bf9\u5411\u91cf\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\nsorted_x <- sort(x)\n\n# \u6253\u5370\u6392\u5e8f\u7ed3\u679c\nprint(sorted_x)\n\n## \u7ed3\u679c\n# [1, 2, 5, 8, 9]\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5411\u91cf x\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u6570\u5b57\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 sort() \u51fd\u6570\u5bf9\u5411\u91cf x \u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\uff0c\u5e76\u5c06\u6392\u5e8f\u7ed3\u679c\u4fdd\u5b58\u5230 sorted_x \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u6392\u5e8f\u540e\u7684\u5411\u91cf\u3002

\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528 sort() \u51fd\u6570\u5bf9\u77e9\u9635\u7684\u884c\u6216\u5217\u8fdb\u884c\u6392\u5e8f\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u5bf9\u77e9\u9635\u8fdb\u884c\u6392\u5e8f\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u77e9\u9635\nmat <- matrix(c(5, 2, 8, 1, 9, 4), nrow = 2)\n\n# \u5bf9\u77e9\u9635\u7684\u884c\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\nsorted_mat <- sort(mat, decreasing = FALSE, na.last = TRUE)\n\n# \u6253\u5370\u6392\u5e8f\u7ed3\u679c\nprint(sorted_mat)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a 2x3 \u7684\u77e9\u9635 mat\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 sort() \u51fd\u6570\u5bf9\u77e9\u9635\u7684\u884c\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\uff0c\u5e76\u5c06\u6392\u5e8f\u7ed3\u679c\u4fdd\u5b58\u5230 sorted_mat \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u6392\u5e8f\u540e\u7684\u77e9\u9635\u3002

\u901a\u8fc7\u6307\u5b9a decreasing \u53c2\u6570\u4e3a TRUE\uff0c\u53ef\u4ee5\u8fdb\u884c\u964d\u5e8f\u6392\u5e8f\u3002\u5982\u679c\u9700\u8981\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7ed3\u679c\u7684\u6700\u524d\u9762\uff0c\u53ef\u4ee5\u5c06 na.last \u53c2\u6570\u8bbe\u7f6e\u4e3a FALSE\u3002

\u8bf7\u6ce8\u610f\uff0csort() \u51fd\u6570\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f1a\u5bf9\u5411\u91cf\u6216\u77e9\u9635\u8fdb\u884c\u5143\u7d20\u7ea7\u522b\u7684\u6392\u5e8f\u3002\u5982\u679c\u4f60\u60f3\u5bf9\u77e9\u9635\u7684\u6574\u884c\u6216\u6574\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u53ef\u4ee5\u4f7f\u7528 order() \u51fd\u6570\u7ed3\u5408\u7d22\u5f15\u7684\u65b9\u5f0f\u5b9e\u73b0\u3002

"},{"location":"R/base-content/sort%28x%29/","title":"Sort(x)","text":"

\u5f53\u4f7f\u7528 sort() \u51fd\u6570\u5bf9\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u53c2\u6570\u8fdb\u884c\u63a7\u5236\uff1a

sort(x, decreasing = FALSE, na.last = NA, ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x: \u8981\u6392\u5e8f\u7684\u5411\u91cf\u3001\u6570\u7ec4\u3001\u6570\u636e\u6846\u6216\u77e9\u9635\u3002 - decreasing: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u6392\u5e8f\u7684\u987a\u5e8f\u3002\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u6309\u7167\u4ece\u5c0f\u5230\u5927\u7684\u987a\u5e8f\u6392\u5e8f\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5219\u6309\u7167\u4ece\u5927\u5230\u5c0f\u7684\u987a\u5e8f\u6392\u5e8f\u3002 - na.last: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u5982\u4f55\u5904\u7406\u7f3a\u5931\u503c\uff08NA\uff09\u3002\u9ed8\u8ba4\u4e3a NA\uff0c\u8868\u793a\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7684\u672b\u5c3e\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a TRUE\uff0c\u5219\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7684\u672b\u5c3e\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3a FALSE\uff0c\u5219\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7684\u5f00\u5934\u3002 - ...: \u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u8fdb\u4e00\u6b65\u63a7\u5236\u6392\u5e8f\u8fc7\u7a0b\u3002

\u4ee5\u4e0b\u662f\u4f7f\u7528 sort() \u51fd\u6570\u8fdb\u884c\u4ece\u5927\u5230\u5c0f\u6392\u5e8f\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b1\uff1a\u5411\u91cf\nx <- c(3, 1, 4, 1, 5, 9)\n\n# \u4ece\u5927\u5230\u5c0f\u6392\u5e8f\nsorted_vector <- sort(x, decreasing = TRUE)\n\n# \u8f93\u51fa\u6392\u5e8f\u540e\u7684\u5411\u91cf\nprint(sorted_vector)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 9 5 4 3 1 1\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86\u5411\u91cf x\uff0c\u5e76\u901a\u8fc7\u5c06 decreasing \u53c2\u6570\u8bbe\u7f6e\u4e3a TRUE \u6765\u5b9e\u73b0\u4ece\u5927\u5230\u5c0f\u7684\u6392\u5e8f\u3002\u7ed3\u679c\u662f\u6309\u7167\u4ece\u5927\u5230\u5c0f\u7684\u987a\u5e8f\u5bf9\u5411\u91cf\u8fdb\u884c\u4e86\u6392\u5e8f\u3002

\u8bf7\u6ce8\u610f\uff0csort() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u5bf9\u6570\u636e\u6846\u3001\u77e9\u9635\u7b49\u5176\u4ed6\u6570\u636e\u7ed3\u6784\u8fdb\u884c\u6392\u5e8f\uff0c\u4f46\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u9700\u8981\u6307\u5b9a\u6309\u7167\u54ea\u4e00\u5217\u6216\u884c\u8fdb\u884c\u6392\u5e8f\u3002\u5982\u679c\u8981\u5bf9\u6570\u636e\u6846\u8fdb\u884c\u6392\u5e8f\uff0c\u8bf7\u53c2\u8003 ?sort \u83b7\u53d6\u66f4\u591a\u8be6\u7ec6\u7684\u7528\u6cd5\u548c\u793a\u4f8b\u3002

\u9664\u4e86\u5411\u91cf\uff0csort() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u5bf9\u77e9\u9635\u7684\u884c\u6216\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u4ee5\u53ca\u5bf9\u6570\u636e\u6846\u7684\u67d0\u4e00\u5217\u8fdb\u884c\u6392\u5e8f\u3002\u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u77e9\u9635\nmat <- matrix(c(5, 2, 3, 1, 4, 6), nrow = 2)\n\n# \u5bf9\u77e9\u9635\u7684\u6bcf\u4e00\u884c\u8fdb\u884c\u6392\u5e8f\nsorted_mat_rows <- apply(mat, 1, sort)\nprint(sorted_mat_rows)\n\n# \u5bf9\u77e9\u9635\u7684\u6bcf\u4e00\u5217\u8fdb\u884c\u6392\u5e8f\nsorted_mat_cols <- apply(mat, 2, sort)\nprint(sorted_mat_cols)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

     [,1] [,2]\n[1,]    2    5\n[2,]    1    6\n\n     [,1] [,2]\n[1,]    1    2\n[2,]    4    5\n[3,]    3    6\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 mat\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 apply() \u51fd\u6570\u5c06 sort() \u5e94\u7528\u4e8e\u77e9\u9635\u7684\u884c\u548c\u5217\u3002\u901a\u8fc7\u8bbe\u7f6e MARGIN \u53c2\u6570\u4e3a 1\uff0c\u6211\u4eec\u5bf9\u77e9\u9635\u7684\u6bcf\u4e00\u884c\u8fdb\u884c\u6392\u5e8f\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 sorted_mat_rows \u4e2d\u3002\u901a\u8fc7\u8bbe\u7f6e MARGIN \u53c2\u6570\u4e3a 2\uff0c\u6211\u4eec\u5bf9\u77e9\u9635\u7684\u6bcf\u4e00\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 sorted_mat_cols \u4e2d\u3002

\u5bf9\u4e8e\u6570\u636e\u6846\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528 order() \u51fd\u6570\u6765\u5bf9\u67d0\u4e00\u5217\u8fdb\u884c\u6392\u5e8f\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(\n  x = c(3, 1, 4, 1, 5, 9, 2, 6),\n  y = c(\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\")\n)\n\n# \u5bf9\u6570\u636e\u6846\u6309\u7167 x \u5217\u8fdb\u884c\u6392\u5e8f\nsorted_df <- df[order(df$x), ]\nprint(sorted_df)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

  x y\n2 1 b\n4 1 d\n7 2 g\n1 3 a\n3 4 c\n5 5 e\n8 6 h\n6 9 f\n
"},{"location":"R/base-content/sprintf%28%29/","title":"Sprintf()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0csprintf()\u51fd\u6570\u4e0d\u662fdplyr\u5305\u4e2d\u7684\u51fd\u6570\uff0c\u800c\u662fR\u7684\u57fa\u7840\u51fd\u6570\u4e4b\u4e00\uff0c\u7528\u4e8e\u683c\u5f0f\u5316\u8f93\u51fa\u5b57\u7b26\u4e32\u3002\u4ee5\u4e0b\u662f\u5173\u4e8esprintf()\u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

\u529f\u80fd\uff1a \u683c\u5f0f\u5316\u8f93\u51fa\u5b57\u7b26\u4e32\u3002

\u6240\u5c5e\u5305\uff1a sprintf\u51fd\u6570\u5c5e\u4e8eR\u7684\u57fa\u7840\u51fd\u6570\uff0c\u65e0\u9700\u989d\u5916\u5b89\u88c5\u5305\u3002

\u5b9a\u4e49\uff1a

sprintf(fmt, ...)\n

"},{"location":"R/base-content/sprintf%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • fmt\uff1a \u683c\u5f0f\u5b57\u7b26\u4e32\uff0c\u5b9a\u4e49\u4e86\u8f93\u51fa\u7684\u683c\u5f0f\u3002

  • ...\uff1a \u7528\u4e8e\u66ff\u6362\u683c\u5f0f\u5b57\u7b26\u4e32\u4e2d\u5360\u4f4d\u7b26\u7684\u503c\u3002

%s \u5b57\u7b26\u4e32

%.0f \u6570\u503c\uff0c\u70b9\u540e\u9762\u662f\u4fdd\u7559\u5c0f\u6570\u4f4d\u6570

"},{"location":"R/base-content/sprintf%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u4f7f\u7528sprintf\u683c\u5f0f\u5316\u8f93\u51fa\u5b57\u7b26\u4e32\nresult <- sprintf(\"Hello, %s! Today is %s.\", \"John\", Sys.Date())\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n
"},{"location":"R/base-content/sprintf%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0csprintf()\u51fd\u6570\u7528\u4e8e\u683c\u5f0f\u5316\u8f93\u51fa\u5b57\u7b26\u4e32\uff0c\u5c06\u5360\u4f4d\u7b26 %s \u66ff\u6362\u4e3a\u76f8\u5e94\u7684\u503c\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] \"Hello, John! Today is 2023-11-17.\"\n

\u8fd9\u6837\uff0c\u5360\u4f4d\u7b26\u88ab\u66ff\u6362\u4e3a\u5b9e\u9645\u7684\u503c\uff0c\u5f97\u5230\u4e86\u683c\u5f0f\u5316\u540e\u7684\u5b57\u7b26\u4e32\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0csprintf()\u51fd\u6570\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\u7ecf\u5e38\u7528\u4e8e\u6784\u5efa\u590d\u6742\u7684\u8f93\u51fa\u683c\u5f0f\u3002

"},{"location":"R/base-content/sprintf%28%29/#_4","title":"\u767e\u5206\u53f7\u600e\u4e48\u52a0\\%","text":"

\u5728R\u4e2d\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u767e\u5206\u53f7\u7684\u8f6c\u4e49\u5e8f\u5217\u6765\u663e\u793a\u767e\u5206\u53f7\u3002\u4ee5\u4e0b\u662f\u4fee\u6b63\u540e\u7684\u4ee3\u7801\uff1a

# \u5047\u8bbe z_\u03b12 \u5df2\u7ecf\u5b9a\u4e49\nz_\u03b12 <- 25/20\n\n# \u8ba1\u7b97 p\np <- 1 - round(2 * pnorm(z_\u03b12, lower.tail = FALSE), 4)\n\n# \u4f7f\u7528\u8f6c\u4e49\u5e8f\u5217\u663e\u793a\u767e\u5206\u53f7\nsprintf(\"The confidence level: %s%%\", p)\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c%s%% \u662f\u4e00\u4e2a\u8f6c\u4e49\u5e8f\u5217\uff0c\u5176\u4e2d %s \u8868\u793a\u5b57\u7b26\u4e32\u7684\u4f4d\u7f6e\uff0c%% \u8868\u793a\u4e00\u4e2a\u767e\u5206\u53f7\u3002\u8fd9\u6837\uff0csprintf \u51fd\u6570\u4f1a\u5c06 p \u7684\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u4e2d\uff0c\u5e76\u5728\u767e\u5206\u53f7\u4e4b\u540e\u663e\u793a\u767e\u5206\u53f7\u3002

"},{"location":"R/base-content/sprintf%28%29/#_5","title":"\\%\\%\u5728\u5b57\u7b26\u4e32\u4e2d\u5fc5\u987b\u8fd9\u4e48\u8868\u8fbe\uff0c\u4ee5\u53ca\u591a\u4e2a\u8f93\u51fa\u53d8\u91cf\u65f6\uff01","text":"

\u5728\u5b57\u7b26\u4e2d\u8868\u793a\u767e\u5206\u53f7\u4e5f\u5f97\u8fd9\u4e48\u52a0\uff0c\u5426\u5219\u62a5\u9519\uff0c\u598295\\%\\%

sprintf(\"The 95%% confidence intervals for the mean age:[%.2f, %.2f]\", age_low_limit, age_up_limit)\n

"},{"location":"R/base-content/str%28%29/","title":"Str()","text":"

\u4e0d\u542b\u5217\u8868\u5217\u7684\u6570\u636e\u6846\u663e\u793a

\u542b\u5217\u8868\u5217\u7684\u6570\u636e\u6846\u663e\u793a\uff1a

glimpse()

str()\u4f1a\u5c06\u5217\u8868\u5217\u8be6\u7ec6\u5c55\u5f00

'data.frame':   150 obs. of  5 variables:\n $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...\n $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...\n $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...\n $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...\n $ Species     : Factor w/ 3 levels \"setosa\",\"versicolor\",..: 1 1 1 1 1 1 1 1 1 1 ...\n
"},{"location":"R/base-content/sum%28%29/","title":"Sum()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0csum()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6570\u503c\u5411\u91cf\u7684\u603b\u548c\u3002\u5b83\u63a5\u53d7\u4e00\u4e2a\u6570\u503c\u5411\u91cf\u4f5c\u4e3a\u8f93\u5165\uff0c\u5e76\u8fd4\u56de\u8fd9\u4e9b\u503c\u7684\u7d2f\u52a0\u548c\u3002

sum(x, na.rm = FALSE)\n

  • x\uff1a\u8868\u793a\u8981\u8ba1\u7b97\u603b\u548c\u7684\u6570\u503c\u5411\u91cf\u3002
  • na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5728\u8ba1\u7b97\u603b\u548c\u65f6\u5ffd\u7565\u7f3a\u5931\u503c\uff08NA\uff09\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5ffd\u7565\u7f3a\u5931\u503c\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3aTRUE\uff0c\u5219\u5728\u8ba1\u7b97\u603b\u548c\u65f6\u4f1a\u5ffd\u7565\u7f3a\u5931\u503c\u3002
  • \u8ba1\u7b97\u5411\u91cf\u7684\u603b\u548c\uff1a

    x <- c(1, 2, 3, 4, 5)\nsum(x)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 15\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u8ba1\u7b97\u4e86\u5411\u91cfx\u7684\u603b\u548c\uff0c\u7ed3\u679c\u4e3a15\u3002

  • \u5ffd\u7565\u7f3a\u5931\u503c\u7684\u603b\u548c\u8ba1\u7b97\uff1a

    y <- c(1, 2, NA, 4, 5)\nsum(y, na.rm = TRUE)\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 12\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86na.rm = TRUE\u53c2\u6570\uff0c\u8868\u793a\u5728\u8ba1\u7b97\u603b\u548c\u65f6\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u7ed3\u679c\u4e2d\u7684NA\u88ab\u5ffd\u7565\uff0c\u8ba1\u7b97\u7684\u603b\u548c\u4e3a12\u3002

  • \u5bf9\u77e9\u9635\u7684\u5217\u8fdb\u884c\u603b\u548c\u8ba1\u7b97\uff1a

    mat <- matrix(1:9, nrow = 3)\nsum(mat[, 2])\n
    \u8f93\u51fa\u793a\u4f8b\uff1a
    [1] 12\n
    \u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u8ba1\u7b97\u4e86\u77e9\u9635mat\u7684\u7b2c\u4e8c\u5217\u7684\u603b\u548c\uff0c\u7ed3\u679c\u4e3a12\u3002

\u8fd9\u4e9b\u793a\u4f8b\u5c55\u793a\u4e86sum()\u51fd\u6570\u7684\u4e00\u4e9b\u5e38\u89c1\u7528\u6cd5\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528sum()\u51fd\u6570\u6765\u8ba1\u7b97\u6570\u503c\u5411\u91cf\u6216\u77e9\u9635\u7684\u603b\u548c\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3sum()\u51fd\u6570\u7684\u7528\u6cd5\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/sum%28%29/#sumctrue-false","title":"sum(c(true, false...))\u6280\u5de7","text":"

n <- 1000000\nx <- runif(n, -1, 1)\ny <- runif(n, -1, 1)\nsum_pi = sum((x^2+y^2)<=1)\n
\u901a\u8fc7true\u4e3a1\u8fdb\u884c\u5411\u91cf\u5143\u7d20\u6c42\u548c

"},{"location":"R/base-content/summary%28%29/","title":"Summary()","text":"

\u63cf\u8ff0\u7edf\u8ba1

\u5bf9\u6570\u636e\u6846\uff1a

\u53ea\u662fsummary()

\u52a0\u4e0apander()

\u5728 R \u8bed\u8a00\u4e2d\uff0csummary()\u00a0\u51fd\u6570\u7528\u4e8e\u751f\u6210\u5bf9\u8c61\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u5305\u62ec\u63cf\u8ff0\u6027\u7edf\u8ba1\u3001\u5206\u4f4d\u6570\u3001\u6700\u5c0f\u503c\u3001\u6700\u5927\u503c\u4ee5\u53ca\u6a21\u578b\u62df\u5408\u7684\u76f8\u5173\u4fe1\u606f\uff08\u4f8b\u5982\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u7cfb\u6570\u3001\u6807\u51c6\u8bef\u5dee\u3001t \u503c\u548c p \u503c\u7b49\uff09 \u51fd\u6570\u5b9a\u4e49\uff1a

summary(object, ...)\n
\u53c2\u6570\uff1a - object\uff1a\u8981\u751f\u6210\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u7684\u5bf9\u8c61\uff0c\u5982\u5411\u91cf\u3001\u6570\u636e\u6846\u3001\u7ebf\u6027\u6a21\u578b\u7b49\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684summary()\u65b9\u6cd5\u3002

summary()\u51fd\u6570\u6839\u636e\u5bf9\u8c61\u7684\u7c7b\u578b\u751f\u6210\u76f8\u5e94\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u3002

  • \u5bf9\u4e8e\u5411\u91cf\uff0c\u5b83\u63d0\u4f9b\u6700\u5c0f\u503c\u3001\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\u3001\u4e2d\u4f4d\u6570\u3001\u5e73\u5747\u503c\u3001\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\u548c\u6700\u5927\u503c\u3002

  • \u5bf9\u4e8e\u6570\u636e\u6846\uff0c\u5b83\u63d0\u4f9b\u6bcf\u4e2a\u53d8\u91cf\u7684\u6700\u5c0f\u503c\u3001\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\u3001\u4e2d\u4f4d\u6570\u3001\u5e73\u5747\u503c\u3001\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\u548c\u6700\u5927\u503c\uff0c\u4ee5\u53ca\u56e0\u5b50\u53d8\u91cf\u7684\u6a21\u5f0f\uff08mode\uff09\u548c\u9891\u6570\uff08count\uff09\u3002

  • \u5bf9\u4e8e\u7ebf\u6027\u6a21\u578b\uff0c\u5b83\u63d0\u4f9b\u56de\u5f52\u7cfb\u6570\u7684\u4f30\u8ba1\u503c\u3001\u6807\u51c6\u8bef\u5dee\u3001t\u503c\u548cp\u503c\uff0c\u8fd8\u63d0\u4f9b\u6b8b\u5dee\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u548c\u6a21\u578b\u7684\u62df\u5408\u5ea6\u91cf\u3002

"},{"location":"R/base-content/summary%28%29/#1","title":"1.\u5bf9\u5411\u91cf\u8fdb\u884c\u6458\u8981\u7edf\u8ba1\uff1a","text":"
# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nx <- c(1, 2, 3, 4, 5)\n\n# \u751f\u6210\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\nsummary(x)\n

\u8f93\u51fa\uff1a

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. \n   1.00    2.00    3.00    3.00    4.00    5.00 \n

"},{"location":"R/base-content/summary%28%29/#2","title":"2.\u5bf9\u6570\u636e\u6846\u8fdb\u884c\u6458\u8981\u7edf\u8ba1\uff1a","text":"
# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(\"A\", \"B\", \"C\", \"D\", \"E\"),\n  z = c(TRUE, FALSE, TRUE, FALSE, TRUE)\n)\n\n# \u751f\u6210\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\nsummary(data)\n

\u8f93\u51fa\uff1a

       x          y     z    \n Min.   :1   A:1   Mode :logical  \n 1st Qu.:2   B:1   FALSE:2      \n Median :3   C:1   TRUE :3      \n Mean   :3   D:1                 \n 3rd Qu.:4   E:1                 \n Max.   :5                       \n

"},{"location":"R/base-content/summary%28%29/#3","title":"3.\u5bf9\u7ebf\u6027\u6a21\u578b\u8fdb\u884c\u6458\u8981\u7edf\u8ba1\uff1a","text":""},{"location":"R/base-content/summary%28%29/#_1","title":"\u7ebf\u6027\u56de\u5f52\uff1a","text":"

lm(): \u7528\u4e8e\u62df\u5408\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u3002 summary(): \u7528\u4e8e\u83b7\u53d6\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u5305\u62ec\u56de\u5f52\u7cfb\u6570\u3001\u663e\u8457\u6027\u68c0\u9a8c\u7b49\u7ed3\u679c\u3002

\u793a\u4f8b\u4ee3\u7801\uff1a

R # \u5047\u8bbe\u6709\u4e00\u4e2a\u56e0\u53d8\u91cf y \u548c\u4e00\u4e2a\u81ea\u53d8\u91cf x model <- lm(y ~ x) summary(model) # \u8f93\u51fa\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f

\u8fd9\u6bb5\u8f93\u51fa\u662f\u9488\u5bf9\u4e00\u4e2a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u3002\u4e0b\u9762\u89e3\u91ca\u6bcf\u4e2a\u90e8\u5206\u7684\u542b\u4e49\uff1a\n\n1. Call: \u8868\u793a\u6240\u8c03\u7528\u7684\u51fd\u6570\u548c\u53c2\u6570\uff0c\u8fd9\u91cc\u4f7f\u7528\u4e86`lm()`\u51fd\u6570\u8fdb\u884c\u7ebf\u6027\u56de\u5f52\u5206\u6790\u3002\n\n2. Residuals: \u6b8b\u5dee\uff0c\u8868\u793a\u89c2\u6d4b\u503c\u4e0e\u56de\u5f52\u6a21\u578b\u7684\u9884\u6d4b\u503c\u4e4b\u95f4\u7684\u5dee\u5f02\u3002\n\n3. Coefficients: \u56de\u5f52\u7cfb\u6570\uff0c\u5305\u62ec\u622a\u8ddd\uff08Intercept\uff09\u548c\u81ea\u53d8\u91cf\u7684\u7cfb\u6570\uff08miles\uff09\u3002Estimate\u5217\u7ed9\u51fa\u4e86\u4f30\u8ba1\u7684\u56de\u5f52\u7cfb\u6570\u7684\u503c\uff0cStd. Error\u5217\u7ed9\u51fa\u4e86\u4f30\u8ba1\u503c\u7684\u6807\u51c6\u8bef\u5dee\uff0ct value\u5217\u7ed9\u51fa\u4e86\u56de\u5f52\u7cfb\u6570\u7684t\u7edf\u8ba1\u91cf\uff0cPr(>|t|)\u5217\u7ed9\u51fa\u4e86\u5bf9\u5e94\u7684\u663e\u8457\u6027\u6c34\u5e73\u7684p-value\u3002\n\n\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u622a\u8ddd\u7684\u4f30\u8ba1\u503c\u4e3a16.46976\uff0c\u81ea\u53d8\u91cf\uff08miles\uff09\u7684\u4f30\u8ba1\u503c\u4e3a-0.05877\u3002\u8fd9\u4e9b\u4f30\u8ba1\u503c\u7684\u663e\u8457\u6027\u901a\u8fc7t\u7edf\u8ba1\u91cf\u548cp-value\u8fdb\u884c\u4e86\u68c0\u9a8c\u3002\n\n4. Signif. codes: \u8868\u793a\u663e\u8457\u6027\u6c34\u5e73\u7684\u7b26\u53f7\u7f16\u7801\u3002\u4f8b\u5982\uff0c'***'\u8868\u793ap-value\u5c0f\u4e8e0.001\uff0c'**'\u8868\u793ap-value\u5c0f\u4e8e0.01\uff0c'*'\u8868\u793ap-value\u5c0f\u4e8e0.05\uff0c'.'\u8868\u793ap-value\u5c0f\u4e8e0.1\uff0c\u4e3a\u7a7a\u8868\u793ap-value\u5927\u4e8e\u6216\u7b49\u4e8e0.1\u3002\n\n5. Residual standard error: \u6b8b\u5dee\u6807\u51c6\u8bef\u5dee\uff0c\u8868\u793a\u56de\u5f52\u6a21\u578b\u7684\u6b8b\u5dee\u7684\u6807\u51c6\u5dee\u3002\n\n6. Multiple R-squared: \u591a\u91cdR\u65b9\uff0c\u8868\u793a\u56de\u5f52\u6a21\u578b\u5bf9\u89c2\u6d4b\u503c\u7684\u89e3\u91ca\u7a0b\u5ea6\uff0c\u53d6\u503c\u8303\u56f4\u57280\u52301\u4e4b\u95f4\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u591a\u91cdR\u65b9\u4e3a0.5387\uff0c\u8868\u793a\u56de\u5f52\u6a21\u578b\u53ef\u4ee5\u89e3\u91ca\u7ea653.87%\u7684\u89c2\u6d4b\u503c\u7684\u53d8\u5f02\u6027\u3002\n\n7. Adjusted R-squared: \u8c03\u6574\u540e\u7684R\u65b9\uff0c\u8003\u8651\u4e86\u81ea\u53d8\u91cf\u7684\u6570\u91cf\u548c\u6837\u672c\u5927\u5c0f\u7684\u5f71\u54cd\uff0c\u662f\u5bf9\u591a\u91cdR\u65b9\u8fdb\u884c\u4fee\u6b63\u540e\u7684\u6307\u6807\u3002\n\n8. F-statistic: F\u7edf\u8ba1\u91cf\uff0c\u7528\u4e8e\u68c0\u9a8c\u56de\u5f52\u6a21\u578b\u6574\u4f53\u7684\u663e\u8457\u6027\u3002F\u7edf\u8ba1\u91cf\u7684\u503c\u8d8a\u5927\uff0c\u8868\u793a\u56de\u5f52\u6a21\u578b\u6574\u4f53\u8d8a\u663e\u8457\u3002\n\n9. p-value: F\u7edf\u8ba1\u91cf\u5bf9\u5e94\u7684p-value\uff0c\u8868\u793a\u5bf9\u5e94\u7684\u663e\u8457\u6027\u6c34\u5e73\u4e0b\uff0c\u56de\u5f52\u6a21\u578b\u6574\u4f53\u662f\u5426\u663e\u8457\u3002\n\n\u6839\u636e\u7ed9\u51fa\u7684\u56de\u5f52\u6a21\u578b\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u53ef\u4ee5\u5f97\u51fa\u4ee5\u4e0b\u7ed3\u8bba\uff1a\n- \u81ea\u53d8\u91cf\uff08miles\uff09\u7684\u7cfb\u6570\u4f30\u8ba1\u503c\u4e3a-0.05877\uff0c\u8bf4\u660e\u6bcf\u589e\u52a0\u4e00\u5355\u4f4d\u7684miles\uff0c\u4ef7\u683c\uff08price\uff09\u4f1a\u51cf\u5c110.05877\u5355\u4f4d\u3002\n- \u56de\u5f52\u6a21\u578b\u6574\u4f53\u663e\u8457\uff0c\u56e0\u4e3aF-statistic\u7684\u503c\u8f83\u5927\u4e14p-value\u5f88\u5c0f\uff08\u5c0f\u4e8e0.05\uff09\u3002\n- \u591a\u91cdR\u65b9\u4e3a0.5387\uff0c\u8868\u793a\u56de\u5f52\u6a21\u578b\u53ef\u4ee5\u89e3\u91ca\u5927\u7ea653.87%\u7684\u4ef7\u683c\u53d8\u5f02\u6027\u3002\n

\u6839\u636e\u7ed9\u51fa\u7684\u56de\u5f52\u6a21\u578b\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u53ef\u4ee5\u5f97\u51fa\u4ee5\u4e0b\u7ed3\u8bba\uff1a

  1. \u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u7cfb\uff1a\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u901a\u8fc7\u7ebf\u6027\u56de\u5f52\u5206\u6790\u53d1\u73b0\uff0c\u81ea\u53d8\u91cf\uff08miles\uff09\u4e0e\u56e0\u53d8\u91cf\uff08price\uff09\u4e4b\u95f4\u5b58\u5728\u663e\u8457\u7684\u8d1f\u76f8\u5173\u5173\u7cfb\u3002\u6bcf\u589e\u52a0\u4e00\u5355\u4f4d\u7684miles\uff0c\u4ef7\u683c\uff08price\uff09\u4f1a\u51cf\u5c110.05877\u5355\u4f4d\u3002\u8fd9\u610f\u5473\u7740\u968f\u7740\u8f66\u8f86\u4f7f\u7528\u91cc\u7a0b\u7684\u589e\u52a0\uff0c\u8f66\u8f86\u7684\u4ef7\u683c\u5f80\u5f80\u4f1a\u964d\u4f4e\u3002

  2. \u6a21\u578b\u7684\u663e\u8457\u6027\uff1a\u56de\u5f52\u6a21\u578b\u6574\u4f53\u662f\u663e\u8457\u7684\uff0c\u56e0\u4e3aF-statistic\u7684\u503c\u8f83\u5927\u4e14\u5bf9\u5e94\u7684p-value\u975e\u5e38\u5c0f\uff08\u5c0f\u4e8e0.05\uff09\u3002\u8fd9\u8868\u660e\u81ea\u53d8\u91cf\uff08miles\uff09\u5bf9\u4e8e\u89e3\u91ca\u56e0\u53d8\u91cf\uff08price\uff09\u7684\u53d8\u5f02\u6027\u662f\u663e\u8457\u7684\u3002

  3. \u6a21\u578b\u7684\u89e3\u91ca\u529b\uff1a\u591a\u91cdR\u65b9\u4e3a0.5387\uff0c\u8868\u793a\u56de\u5f52\u6a21\u578b\u53ef\u4ee5\u89e3\u91ca\u5927\u7ea653.87%\u7684\u4ef7\u683c\u53d8\u5f02\u6027\u3002\u8fd9\u610f\u5473\u7740\u6a21\u578b\u53ef\u4ee5\u89e3\u91ca\u89c2\u6d4b\u6570\u636e\u4e2d\u7ea653.87%\u7684\u4ef7\u683c\u53d8\u52a8\uff0c\u5269\u4f59\u7684\u53d8\u52a8\u53ef\u80fd\u7531\u5176\u4ed6\u672a\u5305\u542b\u5728\u6a21\u578b\u4e2d\u7684\u56e0\u7d20\u5f15\u8d77\u3002

"},{"location":"R/base-content/summary%28%29/#_2","title":"\u903b\u8f91\u56de\u5f52\uff1a","text":"

glm(): \u7528\u4e8e\u62df\u5408\u903b\u8f91\u56de\u5f52\u6a21\u578b\u3002 summary(): \u7528\u4e8e\u83b7\u53d6\u903b\u8f91\u56de\u5f52\u6a21\u578b\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u5305\u62ec\u56de\u5f52\u7cfb\u6570\u3001\u663e\u8457\u6027\u68c0\u9a8c\u7b49\u7ed3\u679c\u3002

\u793a\u4f8b\u4ee3\u7801\uff1a

# \u5047\u8bbe\u6709\u4e00\u4e2a\u4e8c\u5206\u7c7b\u56e0\u53d8\u91cf y \u548c\u4e00\u4e2a\u81ea\u53d8\u91cf x\nmodel <- glm(y ~ x, family = binomial)\nsummary(model)  # \u8f93\u51fa\u903b\u8f91\u56de\u5f52\u6a21\u578b\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\n

\u4e0a\u8ff0\u51fd\u6570\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9\u9002\u5f53\u7684\u51fd\u6570\u6765\u8fdb\u884c\u76f8\u5173\u6027\u5206\u6790\u6216\u56de\u5f52\u5206\u6790\uff0c\u5e76\u83b7\u53d6\u663e\u8457\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u3002\u6839\u636e\u60a8\u7684\u7814\u7a76\u95ee\u9898\u548c\u6570\u636e\u7c7b\u578b\uff0c\u9009\u62e9\u5408\u9002\u7684\u51fd\u6570\u548c\u65b9\u6cd5\u8fdb\u884c\u5206\u6790\u3002

"},{"location":"R/base-content/summary%28%29/#na","title":"\u5173\u4e8eNA\u503c\u7684\u5904\u7406","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0csummary()\u51fd\u6570\u7528\u4e8e\u751f\u6210\u6709\u5173\u6570\u636e\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u4f46\u5b83\u9ed8\u8ba4\u4f1a\u5254\u9664\u7f3a\u5931\u503c\uff08NA\uff09 \u5e76\u8ba1\u7b97\u975e\u7f3a\u5931\u89c2\u6d4b\u7684\u7edf\u8ba1\u91cf\u3002 \u5982\u679c\u60a8\u5e0c\u671b\u5728\u8ba1\u7b97\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u65f6\u4fdd\u7559NA\u503c\uff0c\u53ef\u4ee5\u4f7f\u7528na.rm = FALSE\u53c2\u6570\u6765\u7981\u7528\u7f3a\u5931\u503c\u7684\u5254\u9664\u3002\u5c06na.rm\u53c2\u6570\u8bbe\u7f6e\u4e3aFALSE\u5c06\u786e\u4fdd\u5728\u8ba1\u7b97\u7edf\u8ba1\u91cf\u65f6\u5305\u62ec\u7f3a\u5931\u503c\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528summary()\u51fd\u6570\uff0c\u5e76\u8bbe\u7f6ena.rm = FALSE\u4ee5\u4fdd\u7559NA\u503c\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5305\u542bNA\u503c\u7684\u5411\u91cf\nx <- c(1, 2, NA, 4, 5)\n\n# \u4f7f\u7528summary()\u51fd\u6570\u8ba1\u7b97\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff08\u5254\u9664NA\u503c\uff09\nsummary(x)\n# \u8f93\u51fa\uff1a\n#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.\n#   1.000   2.000   4.000   3.000   4.000   5.000\n\n# \u4f7f\u7528summary()\u51fd\u6570\u8ba1\u7b97\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff08\u4fdd\u7559NA\u503c\uff09\nsummary(x, na.rm = FALSE)\n# \u8f93\u51fa\uff1a\n#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's \n#   1.000   2.000   4.000   3.000   4.000   5.000   1.000\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542bNA\u503c\u7684\u5411\u91cfx\u3002\u9996\u5148\uff0c\u6211\u4eec\u4f7f\u7528summary(x)\u8ba1\u7b97\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u5e76\u9ed8\u8ba4\u5254\u9664\u4e86NA\u503c\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528summary(x, na.rm = FALSE)\u518d\u6b21\u8ba1\u7b97\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\uff0c\u4f46\u8fd9\u6b21\u4fdd\u7559\u4e86NA\u503c\u3002\u901a\u8fc7\u8bbe\u7f6ena.rm = FALSE\uff0c\u6211\u4eec\u786e\u4fdd\u4e86NA\u503c\u5728\u8ba1\u7b97\u7edf\u8ba1\u91cf\u65f6\u88ab\u8003\u8651\u8fdb\u53bb\uff0c\u5e76\u5728\u8f93\u51fa\u4e2d\u663e\u793a\u4e86NA\u503c\u7684\u8ba1\u6570\uff08NA's\uff09\u3002

\u8bf7\u6ce8\u610f\uff0cna.rm\u53c2\u6570\u5728\u8bb8\u591aR\u51fd\u6570\u4e2d\u90fd\u53ef\u4ee5\u4f7f\u7528\uff0c\u7528\u4e8e\u63a7\u5236\u5bf9\u7f3a\u5931\u503c\u7684\u5904\u7406\u65b9\u5f0f\u3002

"},{"location":"R/base-content/t.test%28%29/","title":"T.test()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c\u51fd\u6570\u7528\u4e8e\u6267\u884c\u4e00\u4e2a\u6216\u4e24\u4e2a\u6837\u672c\u7684t\u68c0\u9a8c\uff08t-test\uff09\u3002t\u68c0\u9a8c\u662f\u4e00\u79cd\u5e38\u7528\u7684\u7edf\u8ba1\u65b9\u6cd5\uff0c\u7528\u4e8e\u6bd4\u8f83\u4e24\u4e2a\u6837\u672c\u7684\u5747\u503c\u662f\u5426\u6709\u663e\u8457\u5dee\u5f02\u3002

\u5176\u8f93\u51fa\u7ed3\u679c\u5177\u6709\u5c5e\u6027\u503c\uff0c\u7528$\u8c03\u7528\u5bf9\u8c61\u5c5e\u6027\uff01

t.test(x, y = NULL, alternative = c(\"two.sided\", \"less\", \"greater\"), mu = 0, paired = FALSE, var.equal = FALSE, conf.level = 0.95)\n

\u53c2\u6570\u8bf4\u660e\uff1a

  • x\uff1a\u7b2c\u4e00\u4e2a\u6837\u672c\u6570\u636e\uff0c\u53ef\u4ee5\u662f\u6570\u503c\u5411\u91cf\u6216\u6570\u503c\u578b\u7684\u6570\u636e\u6846\u3002

  • y\uff1a\u7b2c\u4e8c\u4e2a\u6837\u672c\u6570\u636e\uff0c\u540c\u6837\u53ef\u4ee5\u662f\u6570\u503c\u5411\u91cf\u6216\u6570\u503c\u578b\u7684\u6570\u636e\u6846\u3002\u5982\u679c\u53ea\u6709\u4e00\u4e2a\u6837\u672c\uff0c\u53ef\u4ee5\u7701\u7565\u6b64\u53c2\u6570\u3002

  • alternative\uff1a\u6307\u5b9a\u68c0\u9a8c\u7684\u53cc\u4fa7\uff08\"two.sided\"\uff09\u3001\u5355\u4fa7\u5c0f\u4e8e\uff08\"less\"\uff09\u8fd8\u662f\u5355\u4fa7\u5927\u4e8e\uff08\"greater\"\uff09\u7684\u5047\u8bbe\u68c0\u9a8c\uff0c\u9ed8\u8ba4\u4e3a\"two.sided\"\u3002

two.sided\uff1a\u53cc\u4fa7\u68c0\u9a8c\uff0c\u5907\u7528\u5047\u8bbe\u4e0d\u7b49\u4e8e\u03bc0\uff1b

less\uff1a\u5de6\u4fa7\u68c0\u9a8c\uff0c\u5907\u62e9\u5047\u8bbe\u5c0f\u4e8emu(\u03bc0)\uff1b\u53cc\u6837\u672c\u4e2d\u6307\u7b2c\u4e00\u4e2a\u6837\u672c\u7684\u5747\u503c\u662f\u5426\u5c0f\u4e8e\u7b2c\u4e8c\u4e2a\u6837\u672c\u7684\u5747\u503c\uff1b

greater\uff1a\u53f3\u4fa7\u68c0\u9a8c\uff0c\u5907\u62e9\u5047\u8bbe\u5927\u4e8emu(\u03bc0)\uff1b\u53cc\u6837\u672c\u4e2d\u6307\u7b2c\u4e00\u4e2a\u6837\u672c\u7684\u5747\u503c\u662f\u5426\u5927\u4e8e\u7b2c\u4e8c\u4e2a\u6837\u672c\u7684\u5747\u503c\uff1b

  • mu\uff1a\u8981\u68c0\u9a8c\u7684\u5747\u503c\u5dee\u5f02\u662f\u5426\u4e0e\u7ed9\u5b9a\u503cmu\u6709\u663e\u8457\u5dee\u5f02\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u5373\u68c0\u9a8c\u5747\u503c\u662f\u5426\u76f8\u7b49\u3002 \u7ed9\u5b9a\u503c\u53ef\u4ee5\u7406\u89e3\u4e3a\u603b\u4f53\u5747\u503c\u03bc\uff1b \u4e24\u4e2a\u6837\u672c\u4e0bmu\u4e3a0\uff0c\u68c0\u9a8c\u5747\u503c\u662f\u5426\u76f8\u7b49\uff1f

  • paired\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u8fdb\u884c\u914d\u5bf9\u6837\u672c\u7684t\u68c0\u9a8c\uff0c\u9ed8\u8ba4\u4e3aFALSE\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u8868\u793a\u8fdb\u884c\u914d\u5bf9\u6837\u672c\u7684t\u68c0\u9a8c\u3002 \u662f\u5426\u8fdb\u884c\u914d\u5bf9t\u68c0\u9a8c\uff08paired t-test\uff09\uff0c\u8ddf\u53cc\u6837\u672ct\u68c0\u9a8c\u4e0d\u540c\uff01

  • var.equal\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5047\u8bbe\u4e24\u4e2a\u6837\u672c\u7684\u65b9\u5dee\u76f8\u7b49\uff0c\u9ed8\u8ba4\u4e3aFALSE\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u8868\u793a\u5047\u8bbe\u65b9\u5dee\u76f8\u7b49\u3002

TRUE,student's t-test \u4e24\u4e2a\u6837\u672c\u6ee1\u8db3\u65b9\u5dee\u9f50\u6027\uff0c\u65b9\u5dee\u57fa\u672c\u4e00\u81f4

FALSE,welch's t-test(\u97e6\u5c14\u5947t\u68c0\u9a8c) \u4e24\u4e2a\u6837\u672c\u4e0d\u6ee1\u8db3\u65b9\u5dee\u9f50\u6027\uff0c\u65b9\u5dee\u4e0d\u6574\u5947\uff0c\u65b9\u5dee\u5dee\u5f02\u8f83\u5927

  • conf.level\uff1a\u7f6e\u4fe1\u6c34\u5e73\uff0c\u9ed8\u8ba4\u4e3a0.95\uff0c\u8868\u793a\u8ba1\u7b9795%\u7684\u7f6e\u4fe1\u533a\u95f4\u3002

\u51fd\u6570\u529f\u80fd\uff1a\u6839\u636e\u63d0\u4f9b\u7684\u6837\u672c\u6570\u636e\u6267\u884ct\u68c0\u9a8c\uff0c\u5e76\u8fd4\u56de\u68c0\u9a8c\u7ed3\u679c\uff0c\u5305\u62ect\u7edf\u8ba1\u91cf\u3001p\u503c\u548c\u7f6e\u4fe1\u533a\u95f4\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528t.test()\u51fd\u6570\u6267\u884ct\u68c0\u9a8c\uff1a

# \u6267\u884c\u4e00\u4e2a\u6837\u672c\u7684t\u68c0\u9a8c\ndata <- c(5, 7, 6, 8, 4, 9, 5, 6)\nt.test(data, mu = 6)\n\n# \u6267\u884c\u4e24\u4e2a\u72ec\u7acb\u6837\u672c\u7684t\u68c0\u9a8c\ngroup1 <- c(5, 7, 6, 8, 4)\ngroup2 <- c(9, 5, 6, 7, 5)\nt.test(group1, group2)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u4f7f\u7528\u5355\u4e2a\u6837\u672c\u6570\u636edata\u6267\u884c\u4e86\u4e00\u4e2a\u6837\u672c\u7684t\u68c0\u9a8c\uff0c\u68c0\u9a8c\u662f\u5426\u5b58\u5728\u4e0e\u5747\u503c6\u4e0d\u540c\u7684\u663e\u8457\u5dee\u5f02\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528\u4e24\u4e2a\u72ec\u7acb\u7684\u6837\u672c\u6570\u636egroup1\u548cgroup2\u6267\u884c\u4e86\u4e24\u4e2a\u6837\u672c\u7684\u72ec\u7acbt\u68c0\u9a8c\uff0c\u68c0\u9a8c\u4e24\u4e2a\u6837\u672c\u7684\u5747\u503c\u662f\u5426\u6709\u663e\u8457\u5dee\u5f02\u3002

\u901a\u8fc7t.test()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u5173\u4e8e\u68c0\u9a8c\u7ed3\u679c\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u5982t\u7edf\u8ba1\u91cf\u3001p\u503c\u548c\u7f6e\u4fe1\u533a\u95f4\u3002\u6839\u636e\u68c0\u9a8c\u7ed3\u679c\uff0c\u6211\u4eec\u53ef\u4ee5\u5224\u65ad\u6837\u672c\u4e4b\u95f4\u7684\u5747\u503c\u5dee\u5f02\u662f\u5426\u663e\u8457\u3002

"},{"location":"R/base-content/t.test%28%29/#ttestlist","title":"\u5173\u4e8et.test\u7684\u7ed3\u679clist\u4e2d\u7684\u53c2\u6570\u9009\u53d6","text":"

t.test\u6362\u56de\u7684\u7ed3\u679c\u662f\u5217\u8868\u7ed3\u6784\uff01

One Sample t-test\n\ndata:  data_q4$age\nt = 152, df = 409, p-value <2e-16\nalternative hypothesis: true mean is not equal to 0\n95 percent confidence interval:\n 30 31\nsample estimates:\nmean of x \n       30\n

t.test()\u51fd\u6570\u8fd4\u56de\u7684\u7ed3\u679c\u5217\u8868\u7684\u7ec4\u6210\u5185\u5bb9\u5982\u4e0b\uff1a 1. statistic\uff1a\u7edf\u8ba1\u91cf\u7684\u503c\uff0c\u4f8b\u5982t\u503c\u3001z\u503c\u7b49\u3002 2. parameter\uff1a\u81ea\u7531\u5ea6\uff0c\u5373\u7528\u4e8e\u8ba1\u7b97\u7edf\u8ba1\u91cf\u7684\u53c2\u4e0e\u89c2\u6d4b\u503c\u7684\u6570\u91cf\u3002 3. p.value\uff1a\u53cc\u4fa7\u68c0\u9a8c\u7684p\u503c\u3002 4. conf.int\uff1a\u7f6e\u4fe1\u533a\u95f4\u7684\u4e0a\u4e0b\u9650\u503c\u3002

t.test(data_q4$age)[4](4)\n# \u6216\nt.test(data_q4$age)$conf.int\n\n# \u8f93\u51fa\n[1] 30 31\nattr(,\"conf.level\")\n[1] 0.95\n
5. estimate\uff1a\u4f30\u8ba1\u7684\u5747\u503c\u5dee\u6216\u6548\u5e94\u5927\u5c0f\u3002 6. null.value\uff1a\u96f6\u5047\u8bbe\u7684\u5747\u503c\u5dee\u6216\u6548\u5e94\u5927\u5c0f\u3002 7. alternative\uff1a\u5907\u62e9\u5047\u8bbe\u7684\u63cf\u8ff0\u3002 8. method\uff1a\u6240\u4f7f\u7528\u7684\u7edf\u8ba1\u65b9\u6cd5\u7684\u63cf\u8ff0\u3002 9. data.name\uff1a\u6570\u636e\u96c6\u7684\u540d\u79f0\u3002 \u6ce8\u610f\uff1a\u4e0d\u540c\u7684t.test()\u51fd\u6570\u53ef\u80fd\u8fd4\u56de\u7684\u7ed3\u679c\u5217\u8868\u7684\u5185\u5bb9\u4f1a\u6709\u6240\u5dee\u5f02\uff0c\u5177\u4f53\u7ec4\u6210\u5185\u5bb9\u53ef\u4ee5\u6839\u636e\u51fd\u6570\u7684\u5e2e\u52a9\u6587\u6863\u8fdb\u884c\u67e5\u770b\u3002

"},{"location":"R/base-content/t.test%28%29/#t","title":"\u5355\u6837\u672ct\u68c0\u9a8c","text":""},{"location":"R/base-content/t.test%28%29/#t_1","title":"\u53cc\u8fb9t\u68c0\u9a8c","text":"

\u6837\u672c\u662f\u738b\u8001\u5e08\u73ed\u7ea7\u7684\u5b66\u751f\u6210\u7ee9\uff0cmu\u662f\u5168\u6821\u603b\u4f53\u6210\u7ee9\u7684\u5747\u503c\u4e3a137\u3002

1\uff0c\u4ecet\u5206\u5e03\u7684\u89d2\u5ea6\uff1a t-value\uff1a\u6307\u7684\u662f\u4e00\u4fa7\u7684t\u503c\uff1b p-value\uff1a\u4e24\u4fa7\u52a0\u8d77\u6765\u7684p\u503c\uff0ct=-0.908\uff0c\u5bf9\u5e94\u7684qt(-0.908, df=19)\u4e3a0.1876\u3002

2\uff0c\u4ece\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u89d2\u5ea6\uff1a \u7f6e\u4fe1\u5ea6\u4e3a95%\u7684\u7f6e\u4fe1\u533a\u95f4\uff1a \u6837\u672c\u5747\u503cx_bar\u4e3a135.80\uff1a\u4e3a\u8fd9\u4e2a\u6837\u672c\u5bb9\u91cf\u4e3a20\u7684\u6837\u672c\u7684\u5747\u503c\uff1b\u7f6e\u4fe1\u533a\u95f4\u6307\u7684\u662f\u6837\u672c\u5747\u503c\u5206\u5e03\u4e0a\u7684\u533a\u95f4\uff01\u800c\u975e\u603b\u4f53\u5206\u5e03\u4e0a\u7684\u533a\u95f4

"},{"location":"R/base-content/t.test%28%29/#_1","title":"\u7ed3\u8bba","text":"

1\uff0c\u770bt\u503c\uff0c\u5bf9\u6bd4\u7684\u662f\u81ea\u7531\u5ea6\u4e00\u6837\u7684t\u5206\u5e03

2\uff0c\u770bp\u503c\uff1a\u4e3a\u5de6\u53f3\u4e24\u4fa7\u7684\u548c\u503c

3\uff0c\u770b\u7f6e\u4fe1\u533a\u95f4\u662f\u5426\u5305\u542b\u03bc0\uff0c\u5c31\u662f\u4e0a\u9762\u7684mu\u503c

"},{"location":"R/base-content/t.test%28%29/#t_2","title":"\u5355\u8fb9t\u68c0\u9a8c\uff1a\u53f3\u4fa7\u5047\u8bbe\u68c0\u9a8c","text":"

\u5907\u62e9\u5047\u8bbeH_1\u4e3a\u03bc\uff1e\u03bc0

t-value\u3001p-value\u3001\u7f6e\u4fe1\u533a\u95f4\u7684\u53c2\u6570\u7406\u89e3\u7c7b\u4f3c\u53cc\u4fa7\u3002

"},{"location":"R/base-content/t.test%28%29/#_2","title":"\u7ed3\u8bba","text":"

1\uff0ct\u503c=-0.908<1.729\uff08\u03b1\u5bf9\u5e94\u7684t\u503c\uff09\uff0c\u62d2\u7edd\u5907\u62e9\u5047\u8bbeH_1\uff0c\u5047\u8bbe\u68c0\u9a8c\u7684\u6709\u6548\u6027\u4f53\u73b0\u5728\u5907\u62e9\u5047\u8bbe\uff08\u72af\u9519\u8bef\u7684\u6982\u7387\u03b1\uff09\u4e0a\u3002H_0\u7684\u9009\u62e9\u5177\u6709\u4e3b\u89c2\u6027\uff0c\u66f4\u96be\u8bc1\u4f2a\uff1b

2\uff0cp\u503c=0.8125>\u03b1=0.05\uff0c\u62d2\u7edd\u5907\u62e9\u5047\u8bbe\uff1b

3\uff0c\u7f6e\u4fe1\u533a\u95f4[133.5157, inf)\uff0c\u03bc0=137\uff0c\u88ab\u5305\u542b\u5728\u5185\uff0c\u62d2\u7edd\u5907\u62e9\u5047\u8bbeH_1\u3002 \u8ddf\u201c\u63a5\u53d7\u57df\u201d\u76f8\u533a\u5206\uff0c\u7f6e\u4fe1\u533a\u95f4\u662f\u4ece\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u89d2\u5ea6\u4e0a\u770b\u7684\uff0c\u53d6\u503c\u4f9d\u6258\u4e8e\u672c\u6b21\u6837\u672c\u5747\u503cx_bar\u548c\u9009\u62e9\u7684\u03b1\uff0c\u6b64\u5904\\(133.5157=\\color{red}{\\overline{x}-t*\\frac s{\\sqrt n}}\\)\uff1b\u63a5\u53d7\u57df\u4e5f\u662f\u4ece\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u89d2\u5ea6\u4e0a\u770b\u7684\uff0c\u53ea\u662f\u4f9d\u6258\u4e8e\u03bc\uff08\u603b\u4f53\u5747\u503c\uff0c\u6839\u636e\u5927\u6570\u5b9a\u5f8b\uff0c\u4e5f\u662f\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u5747\u503c\uff09\u548c\u9009\u62e9\u7684\u03b1\u3002

(\u56fe\u4e2d\u53ea\u663e\u793a\u4e86t\u5206\u5e03\u4e2d\u7684t\u3001p\u503c\uff0c\u7f6e\u4fe1\u533a\u95f4\u7684\u4e0b\u8fb9\u754c\u5728\u6837\u672c\u5747\u503c\u5206\u5e03\u4e2d\u7684x_bar=135.8\u7684\u5de6\u4fa7)

"},{"location":"R/base-content/t.test%28%29/#t_3","title":"\u5355\u8fb9t\u68c0\u9a8c\uff1a\u5de6\u4fa7\u5047\u8bbe\u6027\u68c0\u9a8c","text":"

\u5907\u62e9\u5047\u8bbeH_1\u4e3a\u03bc\uff1c\u03bc0

library(tidyverse)\nwang_class=c(136,136,134,136,131,133,142,146,137,140,134,135,136,132,119,132,145,131,140,141)\nt.test(wang_class ,mu=137,alternative=\"greater\")\n
"},{"location":"R/base-content/t.test%28%29/#_3","title":"\u7ed3\u8bba","text":"

1\uff0ct\u503c=-0.908>-1.729\uff08\u03b1\u5bf9\u5e94\u7684t\u503c\uff09\uff0c\u62d2\u7edd\u5907\u62e9\u5047\u8bbeH_1\uff1b

2\uff0cp\u503c=0.188>\u03b1=0.05\uff0c\u62d2\u7edd\u5907\u62e9\u5047\u8bbe\uff1b

3\uff0c\u7f6e\u4fe1\u533a\u95f4(-inf, 138.0843]\uff0c\\(138.0843=\\color{red}{\\overline{x}+t*\\frac s{\\sqrt n}}\\)\uff0c\u03bc0=137\u6ca1\u88ab\u5305\u542b\u5728\u5185\uff0c\u63a5\u53d7\u5907\u62e9\u5047\u8bbeH_1\u3002

(\u56fe\u4e2d\u53ea\u663e\u793a\u4e86t\u5206\u5e03\u7684t\u3001p\u503c\uff0c\u7f6e\u4fe1\u533a\u95f4\u7684\u4e0a\u8fb9\u754c\u5728\u6837\u672c\u5747\u503c\u5206\u5e03\u4e2d\u7684x_bar=135.8\u7684\u53f3\u4fa7)

"},{"location":"R/base-content/t.test%28%29/#t_4","title":"\u53cc\u6837\u672ct\u68c0\u9a8c","text":""},{"location":"R/base-content/t.test%28%29/#t_5","title":"\u72ec\u7acb\u6837\u672ct\u68c0\u9a8c","text":""},{"location":"R/base-content/t.test%28%29/#t_6","title":"\u53cc\u6837\u672c\u53cc\u8fb9t\u68c0\u9a8c","text":""},{"location":"R/base-content/t.test%28%29/#t_7","title":"\u53cc\u6837\u672c\u5355\u8fb9t\u68c0\u9a8c","text":""},{"location":"R/base-content/t.test%28%29/#t_8","title":"\u914d\u5bf9\u6837\u672ct\u68c0\u9a8c","text":"

\uff08\u6570\u636e\u662fd\u503c\uff0c\u5b9e\u8d28\u662f\u5355\u6837\u672c\u5047\u8bbe\u68c0\u9a8c\u3002\uff09 \u5907\u62e9\u5047\u8bbeH_1\uff1a\u540e\u4fa7\u5927\u4e8e\u524d\u6d4b\u6210\u7ee9\uff08\u7b49\u4ef7\u4e8e\u5355\u6837\u672c\u4e2dx_bar\u5927\u4e8e0\uff0c\u5355\u6837\u672c\u53f3\u4fa7\u68c0\u9a8c\uff09

post\uff1a\u540e\u6d4b\u6210\u7ee9\uff1b pre\uff1a\u524d\u4fa7\u6210\u7ee9\uff0c\u76f8\u5f53\u4e8e\u4e0a\u9762\u7684mu\uff1b paired=TRUE\uff1b greater\uff1a\u5907\u62e9\u5047\u8bbe\u540e\u4fa7\u5927\u4e8e\u524d\u4fa7\u6210\u7ee9\uff1b df=19\uff0c\u7b97\u6cd5\u81ea\u52a8\u8ba1\u7b97\u3002

"},{"location":"R/base-content/table%28%29/","title":"Table()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0ctable()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u9891\u6570\u8868\uff08frequency table\uff09\uff0c\u5b83\u7edf\u8ba1\u4e00\u4e2a\u5411\u91cf\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u51fa\u73b0\u9891\u7387\u3002\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u4f5c\u4e3a\u8868\u7684\u884c\u540d\uff0c\u5bf9\u5e94\u7684\u9891\u6570\u4f5c\u4e3a\u8868\u7684\u503c\u3002

\u5b83\u63a5\u53d7\u4e00\u4e2a\u6216\u591a\u4e2a\u56e0\u5b50\u4f5c\u4e3a\u53c2\u6570\uff0c\u7136\u540e\u8fd4\u56de\u4e00\u4e2a\u8868\u683c\uff0c\u663e\u793a\u4e86\u8fd9\u4e9b\u56e0\u5b50\u7684\u9891\u6570\u7edf\u8ba1\u3002

\u529f\u80fd\uff1a\u8be5\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u9891\u6570\u8868\uff0c\u7edf\u8ba1\u5411\u91cf\u6216\u56e0\u5b50\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u9891\u6570\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

table(...)\n

\u53c2\u6570\uff1a - ...\uff1a\u4e00\u4e2a\u6216\u591a\u4e2a\u8981\u7edf\u8ba1\u9891\u6570\u7684\u5411\u91cf\uff0c\u53ef\u4ee5\u662f\u6570\u503c\u578b\u3001\u5b57\u7b26\u578b\u3001\u903b\u8f91\u578b\u6216\u56e0\u5b50\u578b\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528table()\u51fd\u6570\u521b\u5efa\u9891\u6570\u8868\u7684\u793a\u4f8b\uff1a

# \u793a\u4f8b\u5411\u91cf\nvector <- c(\"A\", \"B\", \"A\", \"C\", \"B\", \"C\")\n\n# \u521b\u5efa\u9891\u6570\u8868\nfreq_table <- table(vector)\n\n# \u6253\u5370\u9891\u6570\u8868\nprint(freq_table)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u5411\u91cfvector\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e9b\u5143\u7d20\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528table()\u51fd\u6570\u5bf9vector\u8fdb\u884c\u7edf\u8ba1\uff0c\u521b\u5efa\u4e86\u4e00\u4e2a\u9891\u6570\u8868freq_table\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fafreq_table\uff0c\u5b83\u663e\u793a\u4e86vector\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u51fa\u73b0\u9891\u7387\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\uff1a

vector\nA B C \n2 2 2 \n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u4f7f\u7528table()\u51fd\u6570\u7edf\u8ba1\u4e86\u5411\u91cfvec\u4e2d\u6bcf\u4e2a\u5143\u7d20\u7684\u9891\u6570\u3002\u5411\u91cfvec\u4e2d\u67093\u4e2a\"A\"\uff0c2\u4e2a\"B\"\u548c4\u4e2a\"C\"\u3002

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\"A\"\u3001\"B\"\u548c\"C\"\u8fd9\u4e09\u4e2a\u5143\u7d20\u5728vector\u4e2d\u7684\u51fa\u73b0\u9891\u7387\u5206\u522b\u4e3a2\u6b21\u3002

\u5177\u4f53\u6765\u8bf4\uff0ctable() \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u56e0\u5b50\u6c34\u5e73\u4e4b\u95f4\u9891\u6570\u7684\u8868\u683c\u3002\u8fd9\u53ef\u4ee5\u662f\u4e00\u7ef4\u6216\u591a\u7ef4\u7684\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u4f20\u9012\u7ed9\u51fd\u6570\u7684\u56e0\u5b50\u6570\u91cf\u3002\u5728\u4e00\u7ef4\u60c5\u51b5\u4e0b\uff0c\u5b83\u8fd4\u56de\u4e00\u4e2a\u7b80\u5355\u7684\u5411\u91cf\uff1b\u5728\u591a\u7ef4\u60c5\u51b5\u4e0b\uff0c\u8fd4\u56de\u4e00\u4e2a\u8868\u683c\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff1a

# \u521b\u5efa\u4e00\u4e2a\u56e0\u5b50\u5411\u91cf\ngender <- c(\"Male\", \"Female\", \"Male\", \"Male\", \"Female\", \"Female\")\n\n# \u4f7f\u7528table\u51fd\u6570\u751f\u6210\u9891\u6570\u8868\ngender_table <- table(gender)\n\n# \u6253\u5370\u7ed3\u679c\nprint(gender_table)\n

\u8fd9\u5c06\u8f93\u51fa\uff1a \u540d\u79f0\u662f\u53d8\u91cf\u540d\u79f0\uff01\uff01\uff01gender

gender \nFemale   Male \n     3      3 \n

\u8fd9\u8868\u793a\u5728 gender \u5411\u91cf\u4e2d\uff0c\"Female\" \u51fa\u73b0\u4e86 3 \u6b21\uff0c\"Male\" \u4e5f\u51fa\u73b0\u4e86 3 \u6b21\u3002

"},{"location":"R/base-content/table%28%29/#tablecut_widthdata_q2ppg2boundary-1050","title":"\u6839\u636e\u5212\u5206\u7684\u533a\u95f4\u7edf\u8ba1\u9891\u7387table(cut_width(data_q2$PPG,2,boundary = 10))/50","text":"
data_q2 <- read_csv(str_c(filepath,\"/data/NBAPlayerPts.csv\")) \na <- table(cut_width(data_q2$PPG,2,boundary = 10))/50\na\ncumsum(a)\n

\u5728R\u8bed\u8a00\u4e2d\uff0ctable' num [1:10(1d)] 0.02 0.08 0.12 0.4 0.16 0.08 0.04 0 0.06 0.04\u662f\u4e00\u4e2a\u8868\u793a\u5411\u91cf\u6570\u636e\u7684\u793a\u4f8b\u3002\u8fd9\u91cc\u7684table\u662f\u53d8\u91cf\u540d\uff0cnum\u8868\u793a\u6570\u636e\u7c7b\u578b\u4e3a\u6570\u503c\u578b\uff0c\u800c[1:10(1d)]\u8868\u793a\u8fd9\u4e2a\u5411\u91cf\u7684\u7d22\u5f15\u8303\u56f4\u662f\u4ece1\u523010\uff0c\u5e76\u4e14\u662f\u4e00\u7ef4\u7684\u3002 \u800c\u540e\u9762\u76840.02 0.08 0.12 0.4 0.16 0.08 0.04 0 0.06 0.04\u5219\u662f\u5411\u91cf\u7684\u5177\u4f53\u6570\u503c\u3002\u6839\u636e\u7d22\u5f15\u8303\u56f4\uff0c\u8fd9\u4e2a\u5411\u91cf\u670910\u4e2a\u5143\u7d20\uff0c\u5206\u522b\u662f0.02\u30010.08\u30010.12\u30010.4\u30010.16\u30010.08\u30010.04\u30010\u30010.06\u30010.04\u3002 \u56e0\u6b64\uff0ctable' num [1:10(1d)] 0.02 0.08 0.12 0.4 0.16 0.08 0.04 0 0.06 0.04\u8868\u793a\u4e00\u4e2a\u540d\u4e3atable\u7684\u6570\u503c\u5411\u91cf\uff0c\u5305\u542b\u4e86\u8fd910\u4e2a\u5177\u4f53\u6570\u503c\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u5411\u91cf\u6765\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u5206\u6790\u3001\u8ba1\u7b97\u6216\u53ef\u89c6\u5316\u64cd\u4f5c\u3002

\u8fde\u7eed\u578b\u53d8\u91cf\u62c6\u5206\u6210\u79bb\u6563\u578b\u53d8\u91cf\uff08\u56e0\u5b50\u578b\uff09\u3002\u518d\u7528table\u5bf9\u53d8\u91cf\u4e2d\u7684\u79bb\u6563\u578b\u6570\u503c\u8fdb\u884c\u9891\u7387\u7edf\u8ba1\uff0c\u5f62\u6210\u9891\u7387\u8868\uff08\u56e0\u5b50\u578b\uff09\uff01

"},{"location":"R/base-content/tibble%28%29/","title":"Tibble()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0ctibble() \u51fd\u6570\u7528\u4e8e\u521b\u5efa Tibble \u6570\u636e\u6846\uff0c\u5b83\u662f\u4e00\u4e2a\u7528\u4e8e\u6570\u636e\u5904\u7406\u548c\u5206\u6790\u7684\u6570\u636e\u7ed3\u6784\uff0c\u7c7b\u4f3c\u4e8e\u4f20\u7edf\u7684\u6570\u636e\u6846\uff08data.frame\uff09\uff0c\u4f46\u5177\u6709\u66f4\u591a\u7684\u4f18\u5316\u548c\u529f\u80fd\u3002\u4e0b\u9762\u662f\u5bf9 tibble() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

tibble(...)\n

\u53c2\u6570\u8bf4\u660e\uff1a - ...\uff1a\u8868\u793a\u53d8\u91cf\u540d\u548c\u5bf9\u5e94\u7684\u53d6\u503c\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u6216\u591a\u4e2a\u3002\u6bcf\u4e2a\u53d8\u91cf\u540d\u53ef\u4ee5\u4f7f\u7528\u975e\u6807\u51c6\u8bc4\u4f30\uff08non-standard evaluation\uff09\u7684\u65b9\u5f0f\uff0c\u4f8b\u5982 var_name = value\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a Tibble \u6570\u636e\u6846\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 tibble() \u51fd\u6570\u521b\u5efa Tibble \u6570\u636e\u6846\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a Tibble \u6570\u636e\u6846\ndf <- tibble(\n  var1 = c(1, 2, 3),\n  var2 = c(\"A\", \"B\", \"C\"),\n  var3 = TRUE\n)\n\n# \u6253\u5370 Tibble \u6570\u636e\u6846\nprint(df)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 tibble() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a Tibble \u6570\u636e\u6846 df\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e09\u4e2a\u53d8\u91cf\uff1avar1\u3001var2 \u548c var3\u3002var1 \u662f\u4e00\u4e2a\u6570\u503c\u5411\u91cf\uff0cvar2 \u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0cvar3 \u662f\u4e00\u4e2a\u903b\u8f91\u5411\u91cf\u3002\u6211\u4eec\u7ed9\u6bcf\u4e2a\u53d8\u91cf\u6307\u5b9a\u4e86\u5bf9\u5e94\u7684\u53d6\u503c\u3002\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528 print() \u51fd\u6570\u6253\u5370\u51fa Tibble \u6570\u636e\u6846\u7684\u5185\u5bb9\u3002

Tibble \u6570\u636e\u6846\u4e0e\u4f20\u7edf\u7684\u6570\u636e\u6846\u7c7b\u4f3c\uff0c\u4f46\u5177\u6709\u4e00\u4e9b\u989d\u5916\u7684\u7279\u6027\uff0c\u5982\u66f4\u597d\u7684\u663e\u793a\u65b9\u5f0f\u3001\u66f4\u4e25\u683c\u7684\u53d8\u91cf\u68c0\u67e5\u3001\u66f4\u597d\u7684\u652f\u6301\u7ba1\u9053\u64cd\u4f5c\u7b26 %>% \u7b49\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 tibble() \u51fd\u6570\u521b\u5efa\u81ea\u5df1\u7684 Tibble \u6570\u636e\u6846\uff0c\u5e76\u6839\u636e\u9700\u8981\u6dfb\u52a0\u53d8\u91cf\u548c\u53d6\u503c\u3002

"},{"location":"R/base-content/typeof%28%29/","title":"Typeof()","text":"

typeof()\u662f\u4e00\u4e2a\u5728R\u8bed\u8a00\u4e2d\u7528\u4e8e\u786e\u5b9a\u5bf9\u8c61\u7c7b\u578b\u7684\u51fd\u6570\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u4ee3\u8868\u5bf9\u8c61\u7c7b\u578b\u7684\u5b57\u7b26\u4e32\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684R\u5bf9\u8c61\u7c7b\u578b\u53ca\u5176\u5bf9\u5e94\u7684typeof()\u8fd4\u56de\u503c\uff1a - \u6570\u503c\uff08Numeric\uff09\uff1a\u5305\u62ec\u6574\u6570\u548c\u5b9e\u6570\u3002 - typeof(5) \u8fd4\u56de \"double\"\u3002 - \u5b57\u7b26\u4e32\uff08Character\uff09\uff1a\u8868\u793a\u6587\u672c\u6216\u5b57\u7b26\u6570\u636e\u3002 - typeof(\"Hello\") \u8fd4\u56de \"character\"\u3002 - \u903b\u8f91\u503c\uff08Logical\uff09\uff1a\u8868\u793a\u771f\u6216\u5047\u7684\u503c\u3002 - typeof(TRUE) \u8fd4\u56de \"logical\"\u3002 - \u590d\u6570\uff08Complex\uff09\uff1a\u5305\u542b\u5b9e\u6570\u548c\u865a\u6570\u90e8\u5206\u7684\u590d\u6570\u3002 - typeof(1 + 2i) \u8fd4\u56de \"complex\"\u3002 - \u5217\u8868\uff08List\uff09\uff1a\u5305\u542b\u591a\u4e2a\u5143\u7d20\u7684\u5bf9\u8c61\u3002 - typeof(list(1, 2, 3)) \u8fd4\u56de \"list\"\u3002 - \u51fd\u6570\uff08Function\uff09\uff1a\u8868\u793a\u53ef\u8c03\u7528\u7684\u4ee3\u7801\u5757\u3002 - typeof(mean) \u8fd4\u56de \"function\"\u3002 - \u6570\u636e\u6846\uff08Data frame\uff09\uff1a\u5305\u542b\u591a\u4e2a\u53d8\u91cf\u7684\u8868\u683c\u578b\u6570\u636e\u7ed3\u6784\u3002 - typeof(data.frame(x = 1:3, y = c(\"a\", \"b\", \"c\"))) \u8fd4\u56de \"list\"\u3002 - \u77e9\u9635\uff08Matrix\uff09\uff1a\u5177\u6709\u884c\u548c\u5217\u7684\u4e8c\u7ef4\u6570\u7ec4\u3002 - typeof(matrix(1:4, nrow = 2, ncol = 2)) \u8fd4\u56de \"double\"\u3002 - \u56e0\u5b50\uff08Factor\uff09\uff1a\u8868\u793a\u79bb\u6563\u5206\u7c7b\u53d8\u91cf\u7684\u5bf9\u8c61\u3002 - typeof(factor(c(\"A\", \"B\", \"A\", \"C\"))) \u8fd4\u56de \"integer\"\u3002 - \u6570\u7ec4\uff08Array\uff09\uff1a\u5177\u6709\u591a\u4e2a\u7ef4\u5ea6\u7684\u6570\u636e\u7ed3\u6784\u3002 - typeof(array(1:6, dim = c(2, 3))) \u8fd4\u56de \"integer\"\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0ctypeof()\u51fd\u6570\u8fd4\u56de\u7684\u662f\u5bf9\u8c61\u7684\u57fa\u672c\u7c7b\u578b\u4fe1\u606f\uff0c\u800c\u4e0d\u662f\u5bf9\u8c61\u7684\u8be6\u7ec6\u7ed3\u6784\u6216\u7c7b\u522b\u3002\u5982\u679c\u60f3\u8981\u83b7\u53d6\u66f4\u8be6\u7ec6\u7684\u5bf9\u8c61\u7c7b\u578b\u4fe1\u606f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u51fd\u6570\uff0c\u5982class()\u3001str()\u7b49\u3002

"},{"location":"R/base-content/unique%28%29/","title":"Unique()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cunique() \u51fd\u6570\u662f\u57fa\u7840\u7684 R \u51fd\u6570\uff0c\u7528\u4e8e\u63d0\u53d6\u5411\u91cf\u6216\u56e0\u5b50\u4e2d\u7684\u552f\u4e00\u5143\u7d20\u3002\u5b83\u4e0d\u5c5e\u4e8e\u7279\u5b9a\u7684\u5305\uff0c\u800c\u662f R \u8bed\u8a00\u7684\u57fa\u672c\u51fd\u6570\uff0c\u53ef\u4ee5\u5728\u4e0d\u5bfc\u5165\u5176\u4ed6\u5305\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u4f7f\u7528\u3002

\u529f\u80fd\uff1a \u63d0\u53d6\u5411\u91cf\u6216\u56e0\u5b50\u4e2d\u7684\u552f\u4e00\u5143\u7d20\u3002

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nvec <- c(1, 2, 3, 1, 2, 4, 5)\n\n# \u4f7f\u7528 unique() \u63d0\u53d6\u552f\u4e00\u5143\u7d20\nunique_elements <- unique(vec)\n\n# \u6253\u5370\u7ed3\u679c\nprint(unique_elements)\n\n# \u8f93\u51fa\uff1a\n[1] 1 2 3 4 5\n

\u5b9a\u4e49\uff1a

unique(x, incomparables = FALSE, fromLast = FALSE)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u8981\u63d0\u53d6\u552f\u4e00\u5143\u7d20\u7684\u5411\u91cf\u6216\u56e0\u5b50\u3002 - incomparables\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\u6216\u5411\u91cf\uff0c\u6307\u5b9a\u5728\u6bd4\u8f83\u5143\u7d20\u65f6\u662f\u5426\u5e94\u5c06\u67d0\u4e9b\u503c\u89c6\u4e3a\u4e0d\u53ef\u6bd4\u8f83\u7684\u3002\u9ed8\u8ba4\u4e3a FALSE\u3002 - fromLast\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u4ece\u5411\u91cf\u7684\u672b\u5c3e\u5f00\u59cb\u67e5\u627e\u552f\u4e00\u5143\u7d20\u3002\u9ed8\u8ba4\u4e3a FALSE\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cunique(vec) \u63d0\u53d6\u4e86\u5411\u91cf vec \u4e2d\u7684\u552f\u4e00\u5143\u7d20\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u53ea\u5305\u542b\u8fd9\u4e9b\u552f\u4e00\u5143\u7d20\u7684\u5411\u91cf\u3002\u5728\u7ed3\u679c\u4e2d\uff0c\u91cd\u590d\u7684\u5143\u7d20\u88ab\u53bb\u9664\uff0c\u53ea\u4fdd\u7559\u4e86\u552f\u4e00\u7684\u5143\u7d20\u3002

"},{"location":"R/base-content/var%28%29/","title":"Var()","text":"

\u5728 R \u4e2d\uff0cvar() \u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u7ed9\u5b9a\u6570\u636e\u96c6\u7684\u65b9\u5dee\u3002\u65b9\u5dee\u662f\u8861\u91cf\u6570\u636e\u96c6\u5206\u6563\u7a0b\u5ea6\u7684\u7edf\u8ba1\u6307\u6807\uff0c\u5b83\u8861\u91cf\u89c2\u6d4b\u503c\u4e0e\u5176\u5e73\u5747\u503c\u4e4b\u95f4\u7684\u5dee\u5f02\u3002

var(x, na.rm=FLASE)\n
- x: \u8981\u8ba1\u7b97\u65b9\u5dee\u7684\u5411\u91cf\u3001\u6570\u7ec4\u3001\u6570\u636e\u6846\u6216\u77e9\u9635\u3002 - na.rm: \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u5728\u8ba1\u7b97\u65b9\u5dee\u65f6\u5ffd\u7565\u7f3a\u5931\u503c\u3002\u9ed8\u8ba4\u503c\u4e3a FALSE\uff0c\u5373\u4e0d\u5ffd\u7565\u7f3a\u5931\u503c\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 var() \u51fd\u6570\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nx <- c(3, 1, 4, 1, 5, 9, 2, 6)\n\n# \u8ba1\u7b97\u5411\u91cf\u7684\u65b9\u5dee\nvariance <- var(x)\nprint(variance)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 6.6875\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u6574\u6570\u7684\u5411\u91cf x\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 var() \u51fd\u6570\u8ba1\u7b97\u5411\u91cf x \u7684\u65b9\u5dee\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u53d8\u91cf variance \u4e2d\u3002\u901a\u8fc7\u6253\u5370 variance \u7684\u503c\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u5411\u91cf x \u7684\u65b9\u5dee\u4e3a 6.6875\u3002

\u9664\u4e86\u5411\u91cf\uff0cvar() \u51fd\u6570\u8fd8\u53ef\u4ee5\u7528\u4e8e\u8ba1\u7b97\u77e9\u9635\u7684\u5217\u6216\u6570\u636e\u6846\u7684\u67d0\u4e00\u5217\u7684\u65b9\u5dee\u3002\u4e0b\u9762\u662f\u4e00\u4e9b\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u77e9\u9635\nmat <- matrix(c(5, 2, 3, 1, 4, 6), nrow = 2)\n\n# \u8ba1\u7b97\u77e9\u9635\u6bcf\u5217\u7684\u65b9\u5dee\nvar_cols <- apply(mat, 2, var)\nprint(var_cols)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(\n  x = c(3, 1, 4, 1, 5, 9, 2, 6),\n  y = c(\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\")\n)\n\n# \u8ba1\u7b97\u6570\u636e\u6846\u5217 x \u7684\u65b9\u5dee\nvar_x <- var(df$x)\nprint(var_x)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] 2.5 2.5\n[1] 6.6875\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u77e9\u9635 mat \u548c\u4e00\u4e2a\u6570\u636e\u6846 df\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 apply() \u51fd\u6570\u5c06 var() \u5e94\u7528\u4e8e\u77e9\u9635\u7684\u5217\u548c\u6570\u636e\u6846\u7684\u5217\u3002\u901a\u8fc7\u8bbe\u7f6e MARGIN \u53c2\u6570\u4e3a 2\uff0c\u6211\u4eec\u8ba1\u7b97\u77e9\u9635\u6bcf\u5217\u7684\u65b9\u5dee\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 var_cols \u4e2d\u3002\u901a\u8fc7\u76f4\u63a5\u8c03\u7528 var() \u51fd\u6570\uff0c\u6211\u4eec\u8ba1\u7b97\u6570\u636e\u6846\u5217 x \u7684\u65b9\u5dee\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 var_x \u4e2d\u3002

\u603b\u7ed3\u6765\u8bf4\uff0cvar() \u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u3001\u77e9\u9635\u7684\u5217\u6216\u6570\u636e\u6846\u7684\u67d0\u4e00\u5217\u7684\u65b9\u5dee\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u53c2\u6570\u6765\u8ba1\u7b97\u4e0d\u540c\u6570\u636e\u96c6\u7684\u65b9\u5dee\u3002

\u5e0c\u671b\u8fd9\u4e2a\u793a\u4f8b\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\uff01\u5982\u679c\u4f60\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/base-content/var.test%28%29/","title":"Var.test()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cvar.test()\u51fd\u6570\u662fstats\u5305\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

var.test(x, y, ratio = 1, alternative = \"two.sided\", ...)\n

\u53c2\u6570\uff1a - x\uff1a\u7b2c\u4e00\u4e2a\u6570\u503c\u5411\u91cf\u6216\u6570\u636e\u6846\u3002

  • y\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7b2c\u4e8c\u4e2a\u6570\u503c\u5411\u91cf\u6216\u6570\u636e\u6846\u3002

  • ratio\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9ax\u548cy\u7684\u65b9\u5dee\u6bd4\u4f8b\u3002\u9ed8\u8ba4\u4e3a1\uff0c\u8868\u793a\u65b9\u5dee\u76f8\u7b49\u3002

  • alternative\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u5907\u62e9\u5047\u8bbe\u3002\u53ef\u9009\u503c\u6709\"two.sided\"\uff08\u9ed8\u8ba4\uff0c\u53cc\u4fa7\uff09\u3001\"less\"\uff08\u5355\u4fa7\u5c0f\u4e8e\uff09\u548c\"greater\"\uff08\u5355\u4fa7\u5927\u4e8e\uff09\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u63a7\u5236\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u8ba1\u7b97\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u503c\u3001\u81ea\u7531\u5ea6\u548cp\u503c\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528var.test()\u51fd\u6570\u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u5411\u91cf\ngroup1 <- c(1, 2, 3, 4, 5)\ngroup2 <- c(2, 4, 6, 8, 10)\n\n# \u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\nvar_test_result <- var.test(group1, group2)\n\n# \u67e5\u770b\u68c0\u9a8c\u7ed3\u679c\nprint(var_test_result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e24\u4e2a\u793a\u4f8b\u6570\u636e\u5411\u91cfgroup1\u548cgroup2\uff0c\u5206\u522b\u5305\u542b\u4e86\u4e24\u4e2a\u7ec4\u7684\u6570\u636e\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528var.test()\u51fd\u6570\u5bf9\u4e24\u4e2a\u7ec4\u7684\u65b9\u5dee\u8fdb\u884c\u9f50\u6027\u68c0\u9a8c\u3002\u5c06group1\u548cgroup2\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u51fd\u6570\u3002

\u9f50\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u4fdd\u5b58\u5728var_test_result\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u68c0\u9a8c\u7ed3\u679c\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u503c\u3001\u81ea\u7531\u5ea6\u548cp\u503c\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\u793a\u4f8b\uff1a

    F test to compare two variances\n\ndata:  group1 and group2\nF = 0.25, num df = 4, denom df = 4, p-value = 0.7619\nalternative hypothesis: true ratio of variances is not equal to 1\n95 percent confidence interval:\n 0.02730984 2.27916179\nsample estimates:\nratio of variances\n          0.25\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\uff0c\u5176\u4e2d\u5305\u62ecF\u7edf\u8ba1\u91cf\u7684\u503c\u3001\u81ea\u7531\u5ea6\u3001p\u503c\u4ee5\u53ca\u7f6e\u4fe1\u533a\u95f4\u3002\u6839\u636ep\u503c\u7684\u5927\u5c0f\uff0c\u6211\u4eec\u53ef\u4ee5\u5224\u65ad\u4e24\u4e2a\u7ec4\u7684\u65b9\u5dee\u662f\u5426\u663e\u8457\u4e0d\u540c\u3002\u5728\u672c\u4f8b\u4e2d\uff0cp\u503c\u4e3a0.7619\uff0c\u5927\u4e8e\u901a\u5e38\u7684\u663e\u8457\u6027\u6c34\u5e73\uff08\u59820.05\uff09\uff0c\u56e0\u6b64\u65e0\u6cd5\u62d2\u7edd\u539f\u5047\u8bbe\uff0c\u5373\u4e24\u4e2a\u7ec4\u7684\u65b9\u5dee\u53ef\u4ee5\u8ba4\u4e3a\u662f\u76f8\u7b49\u7684\u3002

"},{"location":"R/base-content/which.max%28%29/","title":"Which.max()","text":"

\u51fd\u6570\u540d\u79f0\uff1awhich.max()

\u529f\u80fd\uff1a\u8be5\u51fd\u6570\u7528\u4e8e\u8fd4\u56de\u5411\u91cf\u4e2d\u7684\u6700\u5927\u503c\u7684\u7d22\u5f15\u4f4d\u7f6e\u3002

\u6240\u5c5e\u5305\uff1abase\uff08R\u7684\u57fa\u672c\u5305\uff0c\u65e0\u9700\u989d\u5916\u5b89\u88c5\uff09

\u5b9a\u4e49\uff1awhich.max(x)

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u4e00\u4e2a\u5411\u91cf\uff0c\u53ef\u4ee5\u662f\u6570\u503c\u578b\u3001\u903b\u8f91\u578b\u6216\u5b57\u7b26\u578b\u3002

\u4e3e\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5411\u91cf\nvec <- c(2, 5, 3, 8, 1)\n\n# \u4f7f\u7528which.max()\u51fd\u6570\u627e\u5230\u6700\u5927\u503c\u7684\u7d22\u5f15\u4f4d\u7f6e\nmax_index <- which.max(vec)\n\n# \u8f93\u51fa\u6700\u5927\u503c\u7684\u7d22\u5f15\u4f4d\u7f6e\nprint(max_index)\n

\u8f93\u51fa\uff1a

[1] 4\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u5411\u91cfvec\u4e2d\u7684\u6700\u5927\u503c\u662f8\uff0c\u5b83\u4f4d\u4e8e\u7d22\u5f15\u4f4d\u7f6e4\u3002\u56e0\u6b64\uff0cwhich.max()\u51fd\u6570\u8fd4\u56de\u4e864\u4f5c\u4e3a\u6700\u5927\u503c\u7684\u7d22\u5f15\u4f4d\u7f6e\u3002

"},{"location":"R/base-content/~/","title":"~","text":"

~\u00a0\u7b26\u53f7\u7528\u4e8e\u521b\u5efa\u516c\u5f0f\uff0c\u800c\u00a0.x\u00a0\u662f\u4e00\u4e2a\u5360\u4f4d\u7b26\u3002 \u5728\u7ed9\u5b9a\u7684\u4ee3\u7801\u4e2d\uff0c~\u7b26\u53f7\u662f\u51fd\u6570\u5f0f\u7f16\u7a0b\u4e2d\u7684\u4e00\u4e2a\u7ea6\u5b9a\uff0c\u7528\u4e8e\u5b9a\u4e49\u533f\u540d\u51fd\u6570\u6216lambda\u51fd\u6570\u3002

\u5728R\u8bed\u8a00\u4e2d\uff0c~\u7b26\u53f7\u7528\u4e8e\u521b\u5efa\u533f\u540d\u51fd\u6570\uff0c\u5b83\u7684\u4f5c\u7528\u7c7b\u4f3c\u4e8e\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\u7684\u7b80\u5199\u5f62\u5f0f\u3002

result <- map(my_list, ~ .x^2) result <- map(my_list, ~ .x*.x) \u5b83\u7684\u542b\u4e49\u662f\u5bf9\u5217\u8868my_list\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u8fdb\u884c\u5e73\u65b9\u64cd\u4f5c\uff0c\u5c06\u7ed3\u679c\u5b58\u50a8\u5728result\u53d8\u91cf\u4e2d,\u5c31\u4e0d\u7528\u5355\u72ec\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\u5b9e\u73b0\u7c7b\u4f3c\u7684\u7b80\u5355\u6548\u679c\uff01

squre1 <- function(x){\n  x^2\n}\nresult <- map(my_list, squrel)\n

\u5728R\u8bed\u8a00\u4e2d\uff0c\u533f\u540d\u51fd\u6570\uff08Anonymous Function\uff09\u662f\u4e00\u79cd\u6ca1\u6709\u660e\u786e\u547d\u540d\u7684\u51fd\u6570\uff0c\u901a\u5e38\u7528\u4e8e\u4e34\u65f6\u6216\u7b80\u5355\u7684\u64cd\u4f5c\uff0c\u4e0d\u9700\u8981\u5355\u72ec\u5b9a\u4e49\u4e00\u4e2a\u5177\u540d\u51fd\u6570\u3002

"},{"location":"R/base-content/%E5%88%97%E8%A1%A8%E7%9A%84%E7%B4%A2%E5%BC%95/","title":"\u5217\u8868\u7684\u7d22\u5f15","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u65b9\u5f0f\u6765\u8bbf\u95ee\u5217\u8868\uff08list\uff09\u4e2d\u7684\u5143\u7d20\u3002\u4ee5\u4e0b\u662f\u51e0\u79cd\u5e38\u7528\u7684\u5217\u8868\u7d22\u5f15\u65b9\u6cd5\uff1a

\u8ddfdf\u5f88\u50cf\uff0c\u60f3\u8981\u5f15\u7528\u5230\u5411\u91cf\uff0c\u9700\u8981$\u6216list[[]]\uff0c\u6709\u65f6\u95f4\u8be6\u7ec6\u7814\u7a76\u4e0b\uff0c\u5728purrr\u5305\u4e2d\u4f1a\u6d89\u53ca\u5217\u8868\u7684\u5185\u5bb9\uff01\u5982map()\u51fd\u6570

\u793a\u4f8b 1\uff1a\u4f7f\u7528\u7d22\u5f15\u4f4d\u7f6e\u8bbf\u95ee\u5217\u8868\u5143\u7d20

my_list <- list(\"apple\", 2, TRUE)\nelement <- my_list[[2]]  # \u8bbf\u95ee\u7b2c2\u4e2a\u5143\u7d20\nprint(element)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 2\n

\u793a\u4f8b 2\uff1a\u4f7f\u7528\u5143\u7d20\u540d\u79f0\u8bbf\u95ee\u5217\u8868\u5143\u7d20

my_list <- list(fruit = \"apple\", number = 2, logical = TRUE)\nelement <- my_list$fruit  # \u4f7f\u7528\u5143\u7d20\u540d\u79f0\u8bbf\u95ee\u5143\u7d20\nprint(element)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] \"apple\"\n

\u793a\u4f8b 3\uff1a\u4f7f\u7528\u903b\u8f91\u6761\u4ef6\u9009\u62e9\u5217\u8868\u5143\u7d20

my_list <- list(\"apple\", 2, TRUE)\nlogical_index <- c(FALSE, TRUE, FALSE)  # \u9009\u62e9\u7b2c2\u4e2a\u5143\u7d20\nselected_elements <- my_list[logical_index]\nprint(selected_elements)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[[1]]\n[1] 2\n

"},{"location":"R/base-content/%E5%90%91%E9%87%8F%E7%9A%84%E7%B4%A2%E5%BC%95/","title":"\u5411\u91cf\u7684\u7d22\u5f15","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u7d22\u5f15\u6765\u8bbf\u95ee\u548c\u64cd\u4f5c\u5411\u91cf\u4e2d\u7684\u5143\u7d20\u3002\u7d22\u5f15\u7528\u4e8e\u6307\u5b9a\u8981\u9009\u62e9\u7684\u5143\u7d20\u4f4d\u7f6e\u6216\u8303\u56f4\u3002 1. \u5355\u4e2a\u5143\u7d20\u7d22\u5f15\uff1a \u53ef\u4ee5\u4f7f\u7528\u65b9\u62ec\u53f7 [ ] \u6765\u8bbf\u95ee\u5411\u91cf\u4e2d\u7684\u5355\u4e2a\u5143\u7d20\u3002\u7d22\u5f15\u503c\u6307\u5b9a\u8981\u9009\u62e9\u7684\u5143\u7d20\u7684\u4f4d\u7f6e\uff0c\u4ece 1 \u5f00\u59cb\u8ba1\u6570\u3002

fruits <- c(\"apple\", \"banana\", \"orange\")\nprint(fruits[2])  # \u8f93\u51fa\uff1a\"banana\"\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u7d22\u5f15\u503c `2` \u8bbf\u95ee\u5411\u91cf `fruits` \u4e2d\u7684\u7b2c\u4e8c\u4e2a\u5143\u7d20\u3002\n
2. \u591a\u4e2a\u5143\u7d20\u7d22\u5f15\uff1a \u53ef\u4ee5\u4f7f\u7528\u65b9\u62ec\u53f7 [ ] \u5e76\u63d0\u4f9b\u4e00\u4e2a\u7d22\u5f15\u5411\u91cf\u6765\u8bbf\u95ee\u591a\u4e2a\u5143\u7d20\u3002\u7d22\u5f15\u5411\u91cf\u6307\u5b9a\u8981\u9009\u62e9\u7684\u5143\u7d20\u7684\u4f4d\u7f6e\u3002
nums <- c(1, 2, 3, 4, 5)\nprint(nums[c(2, 4)])  # \u8f93\u51fa\uff1a2 4\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u7d22\u5f15\u5411\u91cf `c(2, 4)` \u8bbf\u95ee\u5411\u91cf `nums` \u4e2d\u7684\u7b2c\u4e8c\u4e2a\u548c\u7b2c\u56db\u4e2a\u5143\u7d20\u3002\n
3. \u8303\u56f4\u7d22\u5f15\uff1a \u53ef\u4ee5\u4f7f\u7528\u5192\u53f7 : \u6765\u6307\u5b9a\u4e00\u4e2a\u8303\u56f4\u7d22\u5f15\uff0c\u4ee5\u9009\u62e9\u8fde\u7eed\u7684\u5143\u7d20\u3002
nums <- c(1, 2, 3, 4, 5)\nprint(nums[2:4])  # \u8f93\u51fa\uff1a2 3 4\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u8303\u56f4\u7d22\u5f15 `2:4` \u8bbf\u95ee\u5411\u91cf `nums` \u4e2d\u7684\u7b2c\u4e8c\u5230\u7b2c\u56db\u4e2a\u5143\u7d20\u3002\n
4. \u903b\u8f91\u5411\u91cf\u7d22\u5f15\uff1a \u53ef\u4ee5\u4f7f\u7528\u903b\u8f91\u5411\u91cf\u6765\u9009\u62e9\u6ee1\u8db3\u7279\u5b9a\u6761\u4ef6\u7684\u5143\u7d20\u3002
nums <- c(1, 2, 3, 4, 5)\nprint(nums[nums > 3])  # \u8f93\u51fa\uff1a4 5\n```\n\n\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u903b\u8f91\u5411\u91cf `nums > 3` \u4f5c\u4e3a\u7d22\u5f15\uff0c\u9009\u62e9\u5411\u91cf `nums` \u4e2d\u5927\u4e8e 3 \u7684\u5143\u7d20\u3002\n
\u5411\u91cf\u7d22\u5f15\u5728 R \u8bed\u8a00\u4e2d\u975e\u5e38\u6709\u7528\uff0c\u5b83\u5141\u8bb8\u60a8\u6839\u636e\u9700\u8981\u9009\u62e9\u548c\u64cd\u4f5c\u5411\u91cf\u4e2d\u7684\u7279\u5b9a\u5143\u7d20\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u5355\u4e2a\u5143\u7d20\u7d22\u5f15\u3001\u591a\u4e2a\u5143\u7d20\u7d22\u5f15\u3001\u8303\u56f4\u7d22\u5f15\u6216\u903b\u8f91\u5411\u91cf\u7d22\u5f15\u6765\u9009\u62e9\u6ee1\u8db3\u60a8\u9700\u6c42\u7684\u5143\u7d20\u3002

"},{"location":"R/base-content/%E6%95%B0%E6%8D%AE%E6%A1%86%E7%B4%A2%E5%BC%95/","title":"\u6570\u636e\u6846\u7d22\u5f15","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0c\u6570\u636e\u6846\u662f\u4e00\u79cd\u5e38\u7528\u7684\u6570\u636e\u7ed3\u6784\uff0c\u7528\u4e8e\u5b58\u50a8\u548c\u64cd\u4f5c\u4e8c\u7ef4\u6570\u636e\u3002\u6570\u636e\u6846\u7d22\u5f15\u662f\u6307\u5bf9\u6570\u636e\u6846\u4e2d\u7684\u884c\u6216\u5217\u8fdb\u884c\u6807\u8bc6\u548c\u8bbf\u95ee\u7684\u65b9\u6cd5\u3002 1\uff0c\u4f4d\u7f6e\u7d22\u5f15 \u884c\u7d22\u5f15\u8fd4\u56de\u7684\u662f\u6570\u636e\u6846\u683c\u5f0f\uff0c\u5e26\u884c\u540d\u548c\u5217\u540d\uff1b \u5217\u7d22\u5f15\u8fd4\u56de\u7684\u662f\u5143\u7d20\u5411\u91cf\uff1b

2\uff0c\u540d\u79f0\u7d22\u5f15 \u884c\u7d22\u5f15\u8fd4\u56de\u7684\u662f\u6570\u636e\u6846\u683c\u5f0f\uff0c\u5e26\u884c\u540d\u548c\u5217\u540d\uff1b \u5217\u7d22\u5f15\u8fd4\u56de\u7684\u662f\u5143\u7d20\u5411\u91cf\uff1b

\u9009\u53d6\u90fd\u662f\u6570\u636e\u6846\uff0c\u53d6\u5217\u90fd\u662f\u5411\u91cf\uff0c\u5355\u65b9\u62ec\u53f7\u53d6\u5217\u5219\u5168\u662f\u6570\u636e\u6846

\u6570\u636e\u6846\u7d22\u5f15\u6709\u4e24\u79cd\u7c7b\u578b\uff1a\u884c\u7d22\u5f15\u548c\u5217\u7d22\u5f15\u3002 1. \u884c\u7d22\u5f15\uff1a\u884c\u7d22\u5f15\u7528\u4e8e\u6807\u8bc6\u548c\u8bbf\u95ee\u6570\u636e\u6846\u4e2d\u7684\u7279\u5b9a\u884c\u3002\u5728R\u4e2d\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u884c\u53f7\u6216\u903b\u8f91\u5411\u91cf\u4f5c\u4e3a\u884c\u7d22\u5f15\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u793a\u4f8b\uff1a

# \u521b\u5efa\u6570\u636e\u6846\ndf <- data.frame(name = c(\"John\", \"Jane\", \"Tom\"),\n                 age = c(25, 28, 30),\n                 grade = c(\"A\", \"B\", \"C\"))\n\n# \u901a\u8fc7\u884c\u53f7\u8bbf\u95ee\u884c\nrow1 <- df[1, ]  # \u83b7\u53d6\u7b2c\u4e00\u884c\uff0c\u5217\u540d\u4e0d\u5199\u662f\u8fd4\u56de\u6240\u6709\u5217\nrow2 <- df[2, ]  # \u83b7\u53d6\u7b2c\u4e8c\u884c\n\n# \u901a\u8fc7\u903b\u8f91\u5411\u91cf\u8bbf\u95ee\u884c\nsubset_df <- df[df$age > 25, ]  # \u83b7\u53d6\u5e74\u9f84\u5927\u4e8e25\u7684\u884c\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846df\uff0c\u5305\u542bname\u3001age\u548cgrade\u4e09\u5217\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528\u884c\u53f7\u8bbf\u95ee\u4e86\u7b2c\u4e00\u884c\u548c\u7b2c\u4e8c\u884c\u7684\u6570\u636e\uff0c\u5e76\u4f7f\u7528\u903b\u8f91\u5411\u91cf\u8bbf\u95ee\u4e86\u5e74\u9f84\u5927\u4e8e25\u7684\u884c\u3002

  1. \u5217\u7d22\u5f15\uff1a\u5217\u7d22\u5f15\u7528\u4e8e\u6807\u8bc6\u548c\u8bbf\u95ee\u6570\u636e\u6846\u4e2d\u7684\u7279\u5b9a\u5217\u3002\u5728R\u4e2d\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u5217\u540d\u6216\u5217\u53f7\u4f5c\u4e3a\u5217\u7d22\u5f15\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u793a\u4f8b\uff1a
    # \u521b\u5efa\u6570\u636e\u6846\ndf <- data.frame(name = c(\"John\", \"Jane\", \"Tom\"),\n                 age = c(25, 28, 30),\n                 grade = c(\"A\", \"B\", \"C\"))\n\n# \u901a\u8fc7\u5217\u540d\u8bbf\u95ee\u5217\ncol1 <- df$name  # \u83b7\u53d6name\u5217\ncol2 <- df$age   # \u83b7\u53d6age\u5217\n\n# \u901a\u8fc7\u5217\u53f7\u8bbf\u95ee\u5217\ncol3 <- df[, 3]  # \u83b7\u53d6\u7b2c\u4e09\u5217\n
    \u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846df\uff0c\u5305\u542bname\u3001age\u548cgrade\u4e09\u5217\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528\u5217\u540d\u8bbf\u95ee\u4e86name\u5217\u548cage\u5217\uff0c\u5e76\u4f7f\u7528\u5217\u53f7\u8bbf\u95ee\u4e86\u7b2c\u4e09\u5217\u3002
"},{"location":"R/base-content/%E7%89%B9%E6%AE%8A%E5%80%BC/","title":"\u7279\u6b8a\u503c","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u6709\u4e00\u4e9b\u7279\u6b8a\u7684\u503c\u7528\u4e8e\u8868\u793a\u7279\u5b9a\u7684\u60c5\u51b5\u6216\u72b6\u6001\u3002\u4ee5\u4e0b\u662f R \u8bed\u8a00\u4e2d\u5e38\u89c1\u7684\u7279\u6b8a\u503c\uff1a 1. NA\uff1a\u8868\u793a\u7f3a\u5931\u503c\uff08Missing Values\uff09\u3002\u5728\u6570\u636e\u4e2d\u5b58\u5728\u7f3a\u5931\u503c\u65f6\uff0c\u901a\u5e38\u7528 NA \u8868\u793a\u3002 is.na(NA)

  1. NULL\uff1a\u8868\u793a\u7a7a\u503c\uff08Null Value\uff09\u3002NULL \u7528\u4e8e\u8868\u793a\u5bf9\u8c61\u7684\u7a7a\u503c\uff0c\u5373\u6ca1\u6709\u503c\u7684\u60c5\u51b5\u3002 is.null(NULL)

3.NaN\uff1a\u8868\u793a\u4e0d\u662f\u4e00\u4e2a\u6570\u5b57\uff08Not a Number\uff09\u3002\u5f53\u8fdb\u884c\u6570\u5b66\u8ba1\u7b97\u51fa\u73b0\u65e0\u6cd5\u5b9a\u4e49\u7684\u7ed3\u679c\u65f6\uff0c\u5982 0/0 \u6216\u8d1f\u6570\u7684\u5e73\u65b9\u6839\uff0c\u7528 NaN \u8868\u793a\u3002 is.nan(NAN)

  1. Inf \u548c -Inf\uff1a\u8868\u793a\u6b63\u65e0\u7a77\u5927\u548c\u8d1f\u65e0\u7a77\u5927\uff08Infinity\uff09\u3002\u5f53\u8fdb\u884c\u6570\u5b66\u8ba1\u7b97\u65f6\u51fa\u73b0\u65e0\u7a77\u5927\u7684\u7ed3\u679c\u65f6\uff0c\u7528\u8fd9\u4e9b\u7279\u6b8a\u503c\u8868\u793a\u3002 is.infinte()

NULL\u503c\u4e0d\u5360\u7a7a\u95f4\uff08\u53ea\u67091bit\u7684\u6807\u5fd7\u662f\u5426\u4e3a\u7a7a\uff09\uff1bNA\u5360\u7a7a\u95f4\uff08\u6700\u5c11\u6709\u4e2a\u4fdd\u5b58\u957f\u5ea6\u7684\u5730\u65b9\uff09

"},{"location":"R/base-content/%E7%89%B9%E6%AE%8A%E5%80%BC/#nanull","title":"Na\u548cNull\u7684\u533a\u522b","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cNULL\u548cNA\u90fd\u8868\u793a\u7f3a\u5931\u503c\uff0c\u4f46\u5728\u4f7f\u7528\u548c\u542b\u4e49\u4e0a\u6709\u6240\u4e0d\u540c\u3002

NULL\uff1a

  • NULL\u8868\u793a\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\u6216\u8005\u8bf4\u6ca1\u6709\u4efb\u4f55\u503c\u3002\u6362\u53e5\u8bdd\u8bf4\uff0c\u5b83\u8868\u793a\u6ca1\u6709\u503c\uff0c\u5305\u62ec\u96f6\u548c\u7a7a\u5b57\u7b26\u4e32\u3002
  • NULL\u4e0d\u5360\u7528\u5b58\u50a8\u7a7a\u95f4\u3002\u5f53\u4e00\u4e2a\u53d8\u91cf\u88ab\u8d4b\u503c\u4e3aNULL\u65f6\uff0c\u8fd9\u4e2a\u53d8\u91cf\u4e0d\u518d\u5b58\u5728\u3002
  • \u5f53\u4f60\u5c1d\u8bd5\u8bbf\u95ee\u4e00\u4e2aNULL\u5bf9\u8c61\u65f6\uff0cR\u4f1a\u7ed9\u51fa\u9519\u8bef\u4fe1\u606f\u3002
  • \u4f7f\u7528is.null()\u51fd\u6570\u6765\u68c0\u6d4bNULL\u503c\u3002

NA\uff1a

  • NA\u8868\u793a\u786e\u5b9e\u6216\u8005\u4e0d\u53ef\u7528\u7684\u503c\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5bf9\u8c61\u5b58\u5728\uff0c\u4f46\u5176\u503c\u672a\u77e5\u6216\u4e0d\u53ef\u83b7\u53d6\u3002
  • NA\u662f\u5360\u7528\u5b58\u50a8\u7a7a\u95f4\u7684\uff0c\u5177\u4f53\u7684\u7a7a\u95f4\u5927\u5c0f\u53d6\u51b3\u4e8e\u5176\u6570\u636e\u7c7b\u578b\u3002\u6bd4\u5982\uff0c\u5982\u679c\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u67d0\u4e2a\u53d8\u91cf\u7684\u503c\u4e3aNA\uff0c\u90a3\u4e48\u8fd9\u4e2a\u53d8\u91cf\u4ecd\u7136\u5b58\u5728\uff0c\u53ea\u662f\u5176\u503c\u672a\u77e5\u3002
  • \u5bf9\u4e8eNA\u503c\uff0c\u4f60\u53ef\u4ee5\u8fdb\u884c\u4e00\u4e9b\u64cd\u4f5c\uff0c\u4f8b\u5982\u4f7f\u7528\u51fd\u6570\u6765\u5904\u7406NA\u503c\uff0c\u6216\u8005\u5728\u6570\u636e\u96c6\u4e2d\u5ffd\u7565NA\u503c\u3002
  • \u4f7f\u7528is.na()\u51fd\u6570\u6765\u68c0\u6d4bNA\u503c\u3002

\u603b\u7ed3\u8d77\u6765\uff0cNULL\u548cNA\u7684\u4e3b\u8981\u533a\u522b\u5728\u4e8eNULL\u8868\u793a\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\uff0c\u800cNA\u8868\u793a\u5bf9\u8c61\u5b58\u5728\u4f46\u503c\u672a\u77e5\u3002NULL\u4e0d\u5360\u7528\u5b58\u50a8\u7a7a\u95f4\uff0c\u800cNA\u662f\u5360\u7528\u5b58\u50a8\u7a7a\u95f4\u7684\u3002\u5728\u51fd\u6570\u8bc6\u522b\u4e0a\uff0cR\u8bed\u8a00\u63d0\u4f9b\u4e86is.null()\u548cis.na()\u51fd\u6570\u5206\u522b\u7528\u4e8e\u8bc6\u522bNULL\u503c\u548cNA\u503c\u3002\u5728\u4f7f\u7528\u4e0a\uff0cNULL\u901a\u5e38\u7528\u4e8e\u8868\u793a\u4e00\u4e2a\u5bf9\u8c61\u5b8c\u5168\u4e0d\u5b58\u5728\uff0c\u800cNA\u5219\u5e38\u7528\u4e8e\u8868\u793a\u6570\u636e\u7684\u7f3a\u5931\u3002

"},{"location":"R/base-content/%E7%9F%A9%E9%98%B5%E7%9A%84%E7%B4%A2%E5%BC%95/","title":"\u77e9\u9635\u7684\u7d22\u5f15","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u65b9\u6cd5\u6765\u8bbf\u95ee\u77e9\u9635\u4e2d\u7684\u5143\u7d20\u3002\u4e3b\u8981\u6709\u4ee5\u4e0b\u51e0\u79cd\u7d22\u5f15\u65b9\u5f0f\uff1a \u793a\u4f8b 1\uff1a\u4f7f\u7528\u7d22\u5f15\u4f4d\u7f6e\u8bbf\u95ee\u77e9\u9635\u5143\u7d20

mat <- matrix(1:9, nrow = 3, ncol = 3)\nelement <- mat[2, 3]  # \u8bbf\u95ee\u7b2c2\u884c\u7b2c3\u5217\u7684\u5143\u7d20\nprint(element)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 6\n

\u793a\u4f8b 2\uff1a\u4f7f\u7528\u903b\u8f91\u6761\u4ef6\u9009\u62e9\u77e9\u9635\u5143\u7d20

mat <- matrix(1:9, nrow = 3, ncol = 3)\nlogical_index <- mat > 5  # \u8fd4\u56de\u4e00\u4e2a\u903b\u8f91\u77e9\u9635\uff0c\u5bf9\u6ee1\u8db3\u6761\u4ef6\u7684\u5143\u7d20\u4e3a TRUE\uff0c\u5426\u5219\u4e3a FALSE\nselected_elements <- mat[logical_index]  # \u9009\u62e9\u6ee1\u8db3\u6761\u4ef6\u7684\u5143\u7d20\nprint(selected_elements)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 6 7 8 9\n

\u793a\u4f8b 3\uff1a\u4f7f\u7528\u884c\u540d\u548c\u5217\u540d\u8bbf\u95ee\u77e9\u9635\u5143\u7d20

mat <- matrix(1:9, nrow = 3, ncol = 3, dimnames = list(c(\"A\", \"B\", \"C\"), c(\"X\", \"Y\", \"Z\")))\nelement <- mat[\"B\", \"Z\"]  # \u4f7f\u7528\u884c\u540d\u548c\u5217\u540d\u8bbf\u95ee\u5143\u7d20\nprint(element)\n
\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a
[1] 6\n

\u975e\u5e38\u62b1\u6b49\u7ed9\u60a8\u5e26\u6765\u7684\u56f0\u6270\uff0c\u6211\u4f1a\u5c3d\u529b\u786e\u4fdd\u63d0\u4f9b\u6b63\u786e\u7684\u4ee3\u7801\u683c\u5f0f\u3002\u5982\u679c\u60a8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u544a\u8bc9\u6211\u3002

"},{"location":"R/dplyr/across%28%29/","title":"Across()","text":"

across() \u51fd\u6570\u5c5e\u4e8e dplyr \u5305\u4e2d\u7684\u4e00\u90e8\u5206\uff0c\u7528\u4e8e\u5728 dplyr \u4e2d\u8fdb\u884c\u5217\u64cd\u4f5c\u3002\u8be5\u51fd\u6570\u901a\u5e38\u4e0e mutate() \u6216 summarize() \u7b49\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u540c\u65f6\u5e94\u7528\u76f8\u540c\u7684\u53d8\u6362\u6216\u7edf\u8ba1\u51fd\u6570\u4e8e\u591a\u4e2a\u5217\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e across() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u53ef\u4ee5\u6839\u636e\u6307\u5b9a\u7684\u5217\uff0c\u5bf9\u591a\u4e2a\u5217\u8fdb\u884c\u64cd\u4f5c\uff0c\u4f8b\u5982\u8f6c\u6362\u3001\u7b5b\u9009\u3001\u91cd\u547d\u540d\u7b49\u3002

"},{"location":"R/dplyr/across%28%29/#across","title":"across \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5728\u591a\u4e2a\u5217\u4e0a\u5e94\u7528\u76f8\u540c\u7684\u53d8\u6362\u6216\u7edf\u8ba1\u51fd\u6570\u3002

\u6240\u5c5e\u5305\uff1a across() \u51fd\u6570\u5c5e\u4e8e dplyr \u5305\u3002

\u5b9a\u4e49\uff1a

across(.cols, .fns = NULL, .names = NULL, .names_sep = \"_\", .cols_select = NULL, .vars = NULL, .fn = NULL, .options = NULL)\n

"},{"location":"R/dplyr/across%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • .cols\uff1a \u6307\u5b9a\u8981\u5e94\u7528\u53d8\u6362\u6216\u51fd\u6570\u7684\u5217\u3002\u53ef\u4ee5\u4f7f\u7528 select() \u4e2d\u7684\u8bed\u6cd5\u6216 tidyselect \u4e2d\u7684\u9009\u62e9\u5668\u3002

  • .fns\uff1a \u4e00\u4e2a\u51fd\u6570\u5217\u8868\uff0c\u5305\u542b\u8981\u5e94\u7528\u7684\u53d8\u6362\u6216\u7edf\u8ba1\u51fd\u6570\u3002

  • .names\uff1a \u751f\u6210\u65b0\u5217\u540d\u79f0\u7684\u89c4\u5219\u3002\u53ef\u4ee5\u4f7f\u7528 {} \u4e2d\u7684 .fn \u6765\u6307\u5b9a\u751f\u6210\u540d\u79f0\u7684\u65b9\u5f0f\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u4f7f\u7528\u9ed8\u8ba4\u547d\u540d\u89c4\u5219\u3002

  • .names_sep\uff1a \u7528\u4e8e\u8fde\u63a5\u5217\u540d\u524d\u7f00\u548c\u540e\u7f00\u7684\u5206\u9694\u7b26\u3002

  • .cols_select\uff1a \u9009\u62e9\u5217\u7684\u9009\u9879\uff0c\u53ef\u4ee5\u4f7f\u7528 all_of()\u3001starts_with() \u7b49\u3002

  • .vars\uff1a \u8981\u5339\u914d\u7684\u5217\uff0c\u53ef\u4ee5\u4f7f\u7528 vars()\u3002

  • .fn\uff1a \u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u9009\u62e9\u7684\u5217\u4e0a\u5e94\u7528\u53d8\u6362\u3002

  • .options\uff1a \u4e00\u4e2a\u5305\u542b\u9009\u9879\u7684\u5217\u8868\uff0c\u7528\u4e8e\u63a7\u5236\u53d8\u6362\u884c\u4e3a\u3002

1\uff0c\u751f\u6210\u65b0\u7684\u5217\u8868

# \u5b89\u88c5\u5e76\u52a0\u8f7ddplyr\u5305\ninstall.packages(\"dplyr\")\nlibrary(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  A = c(1, 2, 3),\n  B = c(4, 5, 6),\n  C = c(7, 8, 9)\n)\n\n# \u4f7f\u7528across\u5728\u591a\u5217\u4e0a\u5e94\u7528\u53d8\u6362\nresult <- data %>%\n  mutate(across(c(A, B), ~ . * 2, .names = \"new_{.col}\"))\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n

"},{"location":"R/dplyr/across%28%29/#_2","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cacross() \u51fd\u6570\u7528\u4e8e\u5728\u5217 A \u548c B \u4e0a\u5e94\u7528\u53d8\u6362\uff0c\u5c06\u6bcf\u4e2a\u5143\u7d20\u4e58\u4ee52\uff0c\u5e76\u751f\u6210\u65b0\u7684\u5217\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

  A B C new_A new_B \n1 1 4 7     2     8 \n2 2 5 8     4    10\n3 3 6 9     6    12\n

\u8fd9\u8868\u793a\u6210\u529f\u5728\u5217 A \u548c B \u4e0a\u5e94\u7528\u4e86\u53d8\u6362\uff0c\u5e76\u751f\u6210\u4e86\u65b0\u7684\u5217\u3002

2\uff0c\u66ff\u6362\u65e7\u5217\u8868

library(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(A = c(1, 2, 3),\n                 B = c(4, 5, 6))\n\n# \u4f7f\u7528across()\u51fd\u6570\u5c06A\u5217\u7684\u503c\u52a01\uff0c\u5e76\u66ff\u6362\u539f\u59cb\u5217\ndf <- df %>% \n  mutate(across(A, ~ . + 1))\n\n# \u6253\u5370\u7ed3\u679c\nprint(df)\n

\u8f93\u51fa\uff1a

  A B\n1 2 4\n2 3 5\n3 4 6\n

"},{"location":"R/dplyr/across%28%29/#_3","title":"\u540c\u65f6\u4fee\u6539\u5217\u5c5e\u6027","text":"

\u540c\u65f6\u4fee\u6539\u4e3a\u56e0\u5b50\u7c7b\u578b

library(dplyr)\n\ndf_ym <- df_ym %>%\n  mutate(across(c(Gender, Broadband.Access., Have.Children.), as.factor))\n

"},{"location":"R/dplyr/anti_join%28%29/","title":"Anti join()","text":"

\u662fR\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u6267\u884c\u53cd\u8fde\u63a5\u64cd\u4f5c\uff0c\u5373\u8fd4\u56de\u5728\u7b2c\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u800c\u5728\u7b2c\u4e8c\u4e2a\u6570\u636e\u6846\u4e2d\u4e0d\u5b58\u5728\u7684\u884c\u3002\u4e0b\u9762\u662fanti_join()\u51fd\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

anti_join(x, y, by = NULL, ...)\n
- x\u3001y\uff1a\u8981\u8fde\u63a5\u7684\u4e24\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u3002 - by\uff1a\u6307\u5b9a\u7528\u4e8e\u8fde\u63a5\u7684\u5171\u4eab\u53d8\u91cf\u7684\u540d\u79f0\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u53d8\u91cf\u540d\u3002\u5982\u679c\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u540d\u79f0\u76f8\u540c\uff0c\u5219\u53ef\u4ee5\u7701\u7565\u6b64\u53c2\u6570\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684*_join()\u51fd\u6570\u3002

library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3, 4),\n                  value1 = c(\"A\", \"B\", \"C\", \"D\"))\n\ndf2 <- data.frame(ID = c(2, 3, 5, 6),\n                  value2 = c(\"X\", \"Y\", \"Z\", \"W\"))\n\nanti_joined_df <- anti_join(df1, df2, by = \"ID\")\n\nprint(anti_joined_df)\n

\u8f93\u51fa\uff1a

  ID value1\n1  1      A\n4  4      D\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u5b83\u4eec\u90fd\u5305\u542b\u4e00\u4e2a\u540d\u4e3a\"ID\"\u7684\u5171\u4eab\u53d8\u91cf\u3002\u4f7f\u7528anti_join()\u51fd\u6570\uff0c\u6211\u4eec\u8fd4\u56de\u5728df1\u4e2d\u5b58\u5728\u800c\u5728df2\u4e2d\u4e0d\u5b58\u5728\u7684\u884c\u3002 \u5728\u7ed3\u679c\u6570\u636e\u6846anti_joined_df\u4e2d\uff0c\u53ea\u6709ID\u4e3a1\u548c4\u7684\u884c\u5728df1\u4e2d\u5b58\u5728\uff0c\u4f46\u5728df2\u4e2d\u4e0d\u5b58\u5728\uff0c\u56e0\u6b64\u8fd9\u4e9b\u884c\u88ab\u4fdd\u7559\u3002 anti_join()\u51fd\u6570\u8fd4\u56de\u7684\u662f\u5728\u7b2c\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u800c\u5728\u7b2c\u4e8c\u4e2a\u6570\u636e\u6846\u4e2d\u4e0d\u5b58\u5728\u7684\u884c\uff0c\u5373\u8865\u96c6\u64cd\u4f5c\u3002

"},{"location":"R/dplyr/arrange%28%29/","title":"Arrange()","text":"

\u662f R \u8bed\u8a00\u4e2d dplyr \u5305\u63d0\u4f9b\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5bf9\u6570\u636e\u6846\uff08data frame\uff09\u4e2d\u7684\u89c2\u6d4b\u503c\u6309\u7167\u6307\u5b9a\u7684\u53d8\u91cf\u8fdb\u884c\u6392\u5e8f\u3002

arrange(.data, ...)\n
.data \u8868\u793a\u8981\u6392\u5e8f\u7684\u6570\u636e\u6846\uff1b ... \u8868\u793a\u4e00\u4e2a\u6216\u591a\u4e2a\u8981\u6392\u5e8f\u7684\u53d8\u91cf\u3002 arrange() \u51fd\u6570\u9ed8\u8ba4\u4f7f\u7528\u5347\u5e8f\u6392\u5e8f\uff08\u4ece\u5c0f\u5230\u5927\uff09\u3002\u5982\u679c\u9700\u8981\u964d\u5e8f\u6392\u5e8f\uff0c\u5219\u53ef\u4ee5\u5728\u53d8\u91cf\u540d\u524d\u52a0\u4e0a\u8d1f\u53f7\uff08\u4f8b\u5982\uff0carrange(df, -Age)\uff09\u3002

library(dplyr)\n\n# \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(Name = c(\"Alice\", \"Bob\", \"Charlie\"),\n                 Age = c(25, 30, 20),\n                 Salary = c(50000, 60000, 45000))\n\n# \u6309\u7167 Age \u53d8\u91cf\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\nsorted_df <- arrange(df, Age)\n\n# \u6253\u5370\u6392\u5e8f\u7ed3\u679c\nprint(sorted_df)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u6570\u636e\u6846 df\uff0c\u5305\u542b\u4e09\u4e2a\u53d8\u91cf\uff08Name\u3001Age \u548c Salary\uff09\u3002\u901a\u8fc7\u8c03\u7528 arrange() \u51fd\u6570\u5e76\u4f20\u9012\u6570\u636e\u6846 df \u548c\u8981\u6392\u5e8f\u7684\u53d8\u91cf Age \u4f5c\u4e3a\u53c2\u6570\uff0c\u6211\u4eec\u5c06\u6570\u636e\u6846\u6309\u7167 Age \u53d8\u91cf\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\u3002\u6392\u5e8f\u7ed3\u679c\u5b58\u50a8\u5728 sorted_df \u4e2d\uff0c\u5e76\u901a\u8fc7\u6253\u5370\u8bed\u53e5\u8f93\u51fa\u3002

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\u6240\u793a\uff1a

    Name Age Salary\n1 Charlie  20  45000\n2   Alice  25  50000\n3     Bob  30  60000\n

\u9664\u4e86\u5355\u4e2a\u53d8\u91cf\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u53d8\u91cf\u8fdb\u884c\u6392\u5e8f\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528 arrange(df, Age, Salary) \u5bf9 Age \u53d8\u91cf\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\uff0c\u5bf9\u4e8e\u76f8\u540c Age \u503c\u7684\u89c2\u6d4b\u503c\uff0c\u518d\u6309\u7167 Salary \u53d8\u91cf\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\u3002

"},{"location":"R/dplyr/arrange%28%29/#_1","title":"\u5177\u4f53\u7684\u53c2\u6570","text":"

\u5728arrange()\u51fd\u6570\u7684...\u53c2\u6570\u4e2d\uff0c\u60a8\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u5217\u540d\u6216\u8868\u8fbe\u5f0f\u6765\u5b9a\u4e49\u6392\u5e8f\u987a\u5e8f\u3002\u8fd9\u4e9b\u53c2\u6570\u5c06\u6309\u7167\u5b83\u4eec\u5728\u53c2\u6570\u5217\u8868\u4e2d\u7684\u987a\u5e8f\u8fdb\u884c\u6392\u5e8f\uff0c\u4ece\u5de6\u5230\u53f3\u4f9d\u6b21\u5e94\u7528\u3002 \u4ee5\u4e0b\u662farrange()\u51fd\u6570\u4e2d...\u53c2\u6570\u7684\u4e00\u4e9b\u8be6\u7ec6\u53c2\u6570\u9009\u9879\uff1a - \u5347\u5e8f\u6392\u5e8f\uff1a\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0carrange()\u51fd\u6570\u5c06\u6309\u7167\u5347\u5e8f\u5bf9\u6307\u5b9a\u7684\u5217\u8fdb\u884c\u6392\u5e8f\u3002\u4f8b\u5982\uff0carrange(data, age)\u5c06\u6309\u7167age\u5217\u7684\u503c\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\u3002 - \u964d\u5e8f\u6392\u5e8f\uff1a\u5982\u679c\u60a8\u60f3\u8981\u6309\u7167\u964d\u5e8f\u6392\u5e8f\uff0c\u53ef\u4ee5\u5728\u5217\u540d\u524d\u4f7f\u7528desc()\u51fd\u6570\u3002\u4f8b\u5982\uff0carrange(data, desc(age))\u5c06\u6309\u7167age\u5217\u7684\u503c\u8fdb\u884c\u964d\u5e8f\u6392\u5e8f\u3002 - \u591a\u7ea7\u6392\u5e8f\uff1a\u901a\u8fc7\u5728...\u53c2\u6570\u4e2d\u63d0\u4f9b\u591a\u4e2a\u5217\u540d\u6216\u8868\u8fbe\u5f0f\uff0c\u60a8\u53ef\u4ee5\u8fdb\u884c\u591a\u7ea7\u6392\u5e8f\u3002\u6309\u7167\u53c2\u6570\u7684\u987a\u5e8f\uff0c\u9996\u5148\u5bf9\u7b2c\u4e00\u4e2a\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u7136\u540e\u5bf9\u7b2c\u4e8c\u4e2a\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002\u4f8b\u5982\uff0carrange(data, age, salary)\u5c06\u9996\u5148\u6309\u7167age\u5217\u8fdb\u884c\u6392\u5e8f\uff0c\u7136\u540e\u5728\u76f8\u540c\u5e74\u9f84\u7684\u60c5\u51b5\u4e0b\uff0c\u6309\u7167salary\u5217\u8fdb\u884c\u6392\u5e8f\u3002 - \u8868\u8fbe\u5f0f\u6392\u5e8f\uff1a\u60a8\u53ef\u4ee5\u5728...\u53c2\u6570\u4e2d\u4f7f\u7528\u4efb\u610f\u8868\u8fbe\u5f0f\u6765\u5b9a\u4e49\u6392\u5e8f\u987a\u5e8f\u3002\u4f8b\u5982\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u6570\u5b66\u8fd0\u7b97\u3001\u903b\u8f91\u8fd0\u7b97\u6216\u81ea\u5b9a\u4e49\u51fd\u6570\u6765\u521b\u5efa\u8868\u8fbe\u5f0f\u3002\u4f8b\u5982\uff0carrange(data, age + salary)\u5c06\u6309\u7167age + salary\u7684\u7ed3\u679c\u8fdb\u884c\u6392\u5e8f\u3002 - \u7f3a\u5931\u503c\u5904\u7406\uff1a\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0carrange()\u51fd\u6570\u5c06\u7f3a\u5931\u503c\uff08NA\uff09\u653e\u5728\u6392\u5e8f\u7ed3\u679c\u7684\u672b\u5c3e\u3002\u5982\u679c\u60a8\u60f3\u8981\u5c06\u7f3a\u5931\u503c\u653e\u5728\u6392\u5e8f\u7ed3\u679c\u7684\u5f00\u5934\uff0c\u53ef\u4ee5\u5728\u5217\u540d\u540e\u4f7f\u7528desc()\u51fd\u6570\u3002\u4f8b\u5982\uff0carrange(data, desc(age))\u5c06\u6309\u7167age\u5217\u7684\u503c\u8fdb\u884c\u964d\u5e8f\u6392\u5e8f\uff0c\u5e76\u5c06\u7f3a\u5931\u503c\u653e\u5728\u5f00\u5934\u3002

\u8fd9\u4e9b\u662farrange()\u51fd\u6570\u4e2d...\u53c2\u6570\u7684\u4e00\u4e9b\u5e38\u89c1\u7528\u6cd5\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u7ec4\u5408\u548c\u5b9a\u5236\u8fd9\u4e9b\u53c2\u6570\uff0c\u4ee5\u6ee1\u8db3\u60a8\u7684\u6392\u5e8f\u8981\u6c42\u3002

"},{"location":"R/dplyr/count%28%29/","title":"Count()","text":"

R\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u7edf\u8ba1\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u4e2d\u6bcf\u4e2a\u552f\u4e00\u503c\u7684\u51fa\u73b0\u6b21\u6570\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u552f\u4e00\u503c\u53ca\u5176\u5bf9\u5e94\u7684\u8ba1\u6570\u3002

count(data, ..., wt = NULL, sort = FALSE)\n
- data\uff1a\u8981\u7edf\u8ba1\u8ba1\u6570\u7684\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u3002 - ...\uff1a\u7528\u4e8e\u6307\u5b9a\u8981\u8ba1\u6570\u7684\u53d8\u91cf\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u3002 - wt\uff1a\u53ef\u9009\u7684\u6743\u91cd\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u4e2a\u89c2\u5bdf\u503c\u7684\u6743\u91cd\u3002 - sort\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u786e\u5b9a\u662f\u5426\u6309\u8ba1\u6570\u503c\u5bf9\u7ed3\u679c\u8fdb\u884c\u6392\u5e8f\u3002\u9ed8\u8ba4\u503c\u4e3aFALSE\uff0c\u5373\u4e0d\u6392\u5e8f\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528count()\u51fd\u6570\u7684\u793a\u4f8b\uff1a

library(dplyr)\n\ndf <- data.frame(category = c(\"A\", \"B\", \"A\", \"C\", \"C\", \"B\"))\n\ncounts <- count(df, category)\n\nprint(counts)\n
\u8f93\u51fa\uff1a
  category n\n1        A 2\n2        B 2\n3        C 2\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u6570\u636e\u6846df\uff0c\u5305\u542b\u4e86\u4e00\u4e2a\u540d\u4e3a\"category\"\u7684\u53d8\u91cf\u3002\u4f7f\u7528count()\u51fd\u6570\uff0c\u6211\u4eec\u7edf\u8ba1\u4e86\"category\"\u53d8\u91cf\u4e2d\u6bcf\u4e2a\u552f\u4e00\u503c\u7684\u51fa\u73b0\u6b21\u6570\u3002 \u5728\u7ed3\u679c\u6570\u636e\u6846counts\u4e2d\uff0c\u6bcf\u884c\u8868\u793a\u4e00\u4e2a\u552f\u4e00\u503c\u53ca\u5176\u5bf9\u5e94\u7684\u8ba1\u6570\u3002\u4f8b\u5982\uff0c\"A\"\u51fa\u73b0\u4e862\u6b21\uff0c\"B\"\u51fa\u73b0\u4e862\u6b21\uff0c\"C\"\u51fa\u73b0\u4e862\u6b21\u3002 count()\u51fd\u6570\u5bf9\u4e8e\u4e86\u89e3\u6570\u636e\u4e2d\u4e0d\u540c\u7c7b\u522b\u6216\u56e0\u5b50\u7684\u5206\u5e03\u60c5\u51b5\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u5feb\u901f\u8ba1\u7b97\u6bcf\u4e2a\u7c7b\u522b\u7684\u9891\u6570\u3002

"},{"location":"R/dplyr/cut%28%29/","title":"Cut()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0ccut()\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u8fde\u7eed\u578b\u7684\u53d8\u91cf\u5206\u6210\u6307\u5b9a\u5bbd\u5ea6\u7684\u533a\u95f4\u3002

[[group_by()]]\u4e2d\u6709\u4e2a\u4e0d\u9519\u7684\u5b9e\u4f8b

\u51fd\u6570\u5b9a\u4e49\uff1a

cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3, ordered_result = FALSE, ... )\n

\u53c2\u6570\uff1a

  • x\uff1a\u8981\u5207\u5206\u7684\u8fde\u7eed\u53d8\u91cf\u3002

  • breaks\uff1a\u6307\u5b9a\u5206\u7ec4\u7684\u8fb9\u754c\u503c\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793a\u6bcf\u4e2a\u5206\u7ec4\u7684\u8fb9\u754c\u503c\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u6574\u6570\uff0c\u8868\u793a\u8981\u5c06x\u5212\u5206\u4e3a\u51e0\u4e2a\u7b49\u5bbd\u7684\u5206\u7ec4\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5206\u7ec4\u8fb9\u754c\u503c\u3002

  • labels\uff1a\u5206\u7ec4\u7684\u6807\u7b7e\u3002\u5982\u679c\u672a\u6307\u5b9a\uff0c\u5c06\u4f7f\u7528\u9ed8\u8ba4\u7684\u5206\u7ec4\u6807\u7b7e\u3002 \u9ed8\u8ba4\u5206\u7ec4\u663e\u793a\u7684\u662f\u56e0\u5b50\u6807\u7b7e\uff0c\u662f\u4e00\u4e2a\u5de6\u5f00\u53f3\u95ed\u7684\u533a\u95f4\u8303\u56f4\uff1b labels=FALSE\uff0c\u5219\u6807\u7b7e\u8bbe\u7f6e\u7684\u662f\u5e8f\u53f7\u4ece\u7b2c\u4e00\u4e2a\u5206\u7ec4\u5230\u6700\u540e\u4e00\u4e2a\uff0c\u5f52\u5165\u76f8\u5e94\u5e8f\u53f71\u30012...

  • include.lowest\uff1a\u662f\u5426\u5305\u542b\u6700\u5c0f\u503c\u6240\u5728\u7684\u5206\u7ec4\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5305\u542b\u6700\u5c0f\u503c\u6240\u5728\u7684\u5206\u7ec4\u3002

\u8fd9\u4e2a\u6700\u5c0f\u503c\u6307\u5f97\u662f\uff1f

  • right\uff1a\u6307\u5b9a\u5206\u7ec4\u7684\u53f3\u8fb9\u754c\u7c7b\u578b\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u53f3\u8fb9\u754c\u662f\u95ed\u533a\u95f4\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u53f3\u8fb9\u754c\u662f\u5f00\u533a\u95f4\u3002

  • dig.lab\uff1a\u6807\u7b7e\u7684\u5c0f\u6570\u4f4d\u6570\u3002

  • ordered_result\uff1a\u662f\u5426\u8fd4\u56de\u6709\u5e8f\u56e0\u5b50\u4f5c\u4e3a\u7ed3\u679c\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u8fd4\u56de\u6709\u5e8f\u56e0\u5b50\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u8fd4\u56de\u65e0\u5e8f\u56e0\u5b50\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528cut()\u51fd\u6570\u5c06\u8fde\u7eed\u53d8\u91cf\u5212\u5206\u4e3a\u79bb\u6563\u5206\u7ec4\u7684\u793a\u4f8b\uff1a

library(dplyr)\n\n# \u793a\u4f8b\u6570\u636e\ndata <- data.frame(values = c(1, 3, 5, 2, 6, 7, 4, 9, 8))\n\n# \u5c06\u8fde\u7eed\u53d8\u91cf\u5212\u5206\u4e3a\u4e09\u4e2a\u5206\u7ec4\ncut_result <- cut(data$values, breaks = 3)\n\n# \u6253\u5370\u5212\u5206\u7ed3\u679c\nprint(cut_result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86dplyr\u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u8fde\u7eed\u53d8\u91cf\u7684\u793a\u4f8b\u6570\u636e\u6846data\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528cut()\u51fd\u6570\u5c06data$values\u5212\u5206\u4e3a\u4e09\u4e2a\u5206\u7ec4\u3002\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u672a\u6307\u5b9abreaks\u53c2\u6570\u7684\u5177\u4f53\u503c\uff0c\u56e0\u6b64\u9ed8\u8ba4\u5c06x\u5212\u5206\u4e3a\u4e09\u4e2a\u7b49\u5bbd\u7684\u5206\u7ec4\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u5212\u5206\u7684\u7ed3\u679ccut_result\uff0c\u5b83\u5c06\u8fde\u7eed\u53d8\u91cf\u8f6c\u6362\u4e3a\u4e00\u4e2a\u65e0\u5e8f\u56e0\u5b50\uff0c\u8868\u793a\u6bcf\u4e2a\u503c\u6240\u5c5e\u7684\u5206\u7ec4\u3002

\u4ee5\u4e0a\u662fcut()\u51fd\u6570\u5728dplyr\u5305\u4e2d\u7684\u57fa\u672c\u7528\u6cd5\u548c\u793a\u4f8b\u3002\u5b83\u7528\u4e8e\u5c06\u8fde\u7eed\u53d8\u91cf\u5212\u5206\u4e3a\u79bb\u6563\u7684\u5206\u7ec4\u3002\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9abreaks\u53c2\u6570\u6765\u63a7\u5236\u5206\u7ec4\u7684\u8fb9\u754c\u503c\uff0clabels\u53c2\u6570\u6765\u6307\u5b9a\u5206\u7ec4\u7684\u6807\u7b7e\uff0c\u4ee5\u53ca\u5176\u4ed6\u53ef\u9009\u53c2\u6570\u6765\u8c03\u6574\u5212\u5206\u7684\u884c\u4e3a\u3002

\u5bf9\u5e94\u5f97\u52309\u4e2a\u5206\u7ec4\u533a\u95f4\uff0c\u4ee5\u53ca\u5206\u7ec4\u7684\u603b\u4f53\u60c5\u51b5Levels\u3002

[1] (0.995,3.33] (0.995,3.33] (3.33,5.67] (0.995,3.33] (5.67,8] (5.67,8] (3.33,5.67]  (8,10] (8,10]      \nLevels: (0.995,3.33] (3.33,5.67] (5.67,8] (8,10]\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0ccut_result\u662f\u4e00\u4e2a\u65e0\u5e8f\u56e0\u5b50\uff0c\u663e\u793a\u4e86\u6bcf\u4e2a\u503c\u6240\u5c5e\u7684\u5206\u7ec4\u3002\u5206\u7ec4\u7684\u6807\u7b7e\u662f\u6839\u636e\u9ed8\u8ba4\u7684\u5212\u5206\u89c4\u5219\u751f\u6210\u7684\uff0c\u5e76\u4e14\u4f7f\u7528\u4e86\u9ed8\u8ba4\u7684\u5c0f\u6570\u4f4d\u6570\uff08dig.lab\uff09\u3002

\u6bcf\u4e2a\u503c\u90fd\u88ab\u5206\u914d\u5230\u4e00\u4e2a\u5408\u9002\u7684\u5206\u7ec4\u8303\u56f4\uff0c\u5e76\u663e\u793a\u5728\u65b9\u62ec\u53f7\u4e2d\u3002\u4f8b\u5982\uff0c(0.995,3.33]\u8868\u793a\u8be5\u503c\u5c5e\u4e8e\u8303\u56f4\u57280.995\u52303.33\u4e4b\u95f4\uff08\u4e0d\u5305\u62ec3.33\uff09\u7684\u5206\u7ec4\u3002

\u8bf7\u6ce8\u610f\uff0c\u5177\u4f53\u7684\u5206\u7ec4\u8303\u56f4\u548c\u6807\u7b7e\u53ef\u80fd\u4f1a\u6839\u636e\u8f93\u5165\u6570\u636e\u548c\u53c2\u6570\u7684\u8bbe\u7f6e\u800c\u6709\u6240\u4e0d\u540c\uff0c\u4e0a\u8ff0\u8f93\u51fa\u4ec5\u4e3a\u793a\u4f8b\u76ee\u7684\u3002

"},{"location":"R/dplyr/distinct%28%29/","title":"Distinct()","text":"

\u51fd\u6570\u5728dplyr\u5305\u4e2d\u7528\u4e8e\u53bb\u9664\u6570\u636e\u6846\u6216\u6570\u636e\u7ec4\u4e2d\u7684\u91cd\u590d\u89c2\u6d4b\u3002\u5b83\u63a5\u53d7\u4ee5\u4e0b\u53c2\u6570\uff1a

\u529f\u80fd\uff1a \u7528\u4e8e\u5728\u6570\u636e\u6846\u4e2d\u6839\u636e\u6307\u5b9a\u7684\u5217\u53bb\u91cd\uff0c\u8fd4\u56de\u552f\u4e00\u7684\u884c\u3002

# \u4f7f\u7528 dplyr \u5305\nlibrary(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846\ndata <- data.frame(\n  ID = c(1, 2, 3, 1, 2),\n  Name = c(\"Alice\", \"Bob\", \"Charlie\", \"Alice\", \"Bob\"),\n  Age = c(25, 30, 22, 25, 30)\n)\n\n# \u4f7f\u7528 distinct() \u53bb\u91cd\nresult <- distinct(data, ID, .keep_all = TRUE)\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n\n# \u8f93\u51fa\uff1a\n  ID   Name Age\n1  1  Alice  25\n2  2    Bob  30\n3  3 Charlie  22\n\n# \u4f7f\u7528 distinct() \u53bb\u91cd\nresult <- distinct(data, ID, .keep_all = FALSE)\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n\n# \u8f93\u51fa\uff1a\n  ID\n1  1\n2  2\n3  3\n

\u5b9a\u4e49\uff1a

distinct(.data, ..., .keep_all = FALSE)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - .data\uff1a\u8981\u5904\u7406\u7684\u6570\u636e\u6846\u3002 - ...\uff1a\u8981\u6839\u636e\u53bb\u91cd\u7684\u5217\uff0c\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u5217\u3002 - .keep_all\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u4fdd\u7559\u6240\u6709\u5217\uff0c\u9ed8\u8ba4\u4e3a FALSE\uff0c\u8868\u793a\u53ea\u4fdd\u7559\u53bb\u91cd\u7684\u5217\u3002TRUE\uff0c\u8868\u793a\u8fd8\u4fdd\u5b58\u5176\u4ed6\u5217

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cdistinct(data, ID, .keep_all = TRUE) \u4f7f\u7528 dplyr \u5305\u7684 distinct() \u51fd\u6570\uff0c\u6839\u636e\u5217 ID \u8fdb\u884c\u53bb\u91cd\uff0c\u5e76\u4fdd\u7559\u6240\u6709\u5217\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u552f\u4e00\u7684\u884c\u3002

"},{"location":"R/dplyr/facet_%28%29/","title":"Facet ()","text":"

\u5728 ggplot2 \u5305\u4e2d\uff0cfacet_*() \u51fd\u6570\u7528\u4e8e\u521b\u5efa\u5206\u9762\u56fe\uff0c\u5c06\u6570\u636e\u6839\u636e\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u7684\u4e0d\u540c\u6c34\u5e73\u62c6\u5206\u6210\u591a\u4e2a\u5b50\u56fe\u3002\u5206\u9762\u56fe\u662f\u4e00\u79cd\u6709\u6548\u7684\u6570\u636e\u53ef\u89c6\u5316\u65b9\u5f0f\uff0c\u53ef\u5e2e\u52a9\u6211\u4eec\u540c\u65f6\u89c2\u5bdf\u6570\u636e\u5728\u4e0d\u540c\u6761\u4ef6\u4e0b\u7684\u53d8\u5316\u3002

\u4ee5\u4e0b\u662f\u51e0\u4e2a\u5e38\u7528\u7684 facet_*() \u51fd\u6570\u53ca\u5176\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

  1. facet_wrap() ``facet_wrap() \u51fd\u6570\u7528\u4e8e\u5728\u4e00\u4e2a\u7279\u5b9a\u7684\u53d8\u91cf\u4e0a\u521b\u5efa\u7f51\u683c\u5e03\u5c40\u7684\u5b50\u56fe\uff0c\u6bcf\u4e2a\u5b50\u56fe\u663e\u793a\u8be5\u53d8\u91cf\u7684\u4e0d\u540c\u6c34\u5e73\u3002 \u53c2\u6570\uff1a
  2. facets\uff1a\u6307\u5b9a\u7528\u4e8e\u5206\u9762\u7684\u53d8\u91cf\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u540d\uff0c\u7528 ~ \u5206\u9694\u3002
# \u4f7f\u7528 facet_wrap() \u521b\u5efa\u57fa\u4e8e \"category\" \u53d8\u91cf\u7684\u7f51\u683c\u5e03\u5c40\u5b50\u56fe\nggplot(data = df, mapping = aes(x = x, y = y)) +\n  geom_point() +\n  facet_wrap(~ category)\n
  1. facet_grid() `facet_grid() \u51fd\u6570\u7528\u4e8e\u5728\u4e24\u4e2a\u53d8\u91cf\u4e0a\u521b\u5efa\u7f51\u683c\u5e03\u5c40\u7684\u5b50\u56fe\uff0c\u663e\u793a\u8fd9\u4e24\u4e2a\u53d8\u91cf\u7684\u7ec4\u5408\u3002

  2. rows\uff1a\u6307\u5b9a\u653e\u7f6e\u4e8e\u884c\u65b9\u5411\u7684\u53d8\u91cf\u540d\u3002

  3. cols\uff1a\u6307\u5b9a\u653e\u7f6e\u4e8e\u5217\u65b9\u5411\u7684\u53d8\u91cf\u540d\u3002
# \u4f7f\u7528 facet_grid() \u521b\u5efa\u57fa\u4e8e \"category\" \u548c \"group\" \u53d8\u91cf\u7684\u7f51\u683c\u5e03\u5c40\u5b50\u56fe\nggplot(data = df, mapping = aes(x = x, y = y)) +\n  geom_point() +\n  facet_grid(category ~ group)\n
  1. facet_wrap() \u548c facet_grid() \u7684\u53c2\u6570\u5171\u4eab\uff1a
  2. nrow \u548c ncol\uff1a\u7528\u4e8e\u6307\u5b9a\u5b50\u56fe\u7684\u884c\u6570\u548c\u5217\u6570\u3002
  3. scales\uff1a\u63a7\u5236\u6bcf\u4e2a\u5b50\u56fe\u7684\u5750\u6807\u8f74\u523b\u5ea6\u662f\u5426\u76f8\u540c\u3002\u53ef\u4ee5\u8bbe\u7f6e\u4e3a \"free\"\uff08\u6bcf\u4e2a\u5b50\u56fe\u72ec\u7acb\u523b\u5ea6\uff09\u3001\"fixed\"\uff08\u6240\u6709\u5b50\u56fe\u5171\u4eab\u76f8\u540c\u523b\u5ea6\uff09\u6216 \"free_x\" / \"free_y\"\uff08x \u8f74\u6216 y \u8f74\u72ec\u7acb\u523b\u5ea6\uff09\u3002
  4. switch\uff1a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u4ea4\u6362\u884c\u548c\u5217\u7684\u987a\u5e8f\u3002
  5. labeller\uff1a\u7528\u4e8e\u81ea\u5b9a\u4e49\u5b50\u56fe\u7684\u6807\u7b7e\u3002
  6. drop\uff1a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u5220\u9664\u6ca1\u6709\u6570\u636e\u7684\u5b50\u56fe\u3002
# \u4f7f\u7528 facet_wrap() \u521b\u5efa 2 \u884c 3 \u5217\u7684\u5b50\u56fe\u7f51\u683c\uff0c\u523b\u5ea6\u72ec\u7acb\nggplot(data = df, mapping = aes(x = x, y = y)) +\n  geom_point() +\n  facet_wrap(~ category, nrow = 2, ncol = 3, scales = \"free\")\n\n# \u4f7f\u7528 facet_grid() \u521b\u5efa\u5b50\u56fe\u7f51\u683c\uff0c\u81ea\u5b9a\u4e49\u6807\u7b7e\u548c\u523b\u5ea6\nggplot(data = df, mapping = aes(x = x, y = y)) +\n  geom_point() +\n  facet_grid(category ~ group, labeller = label_both, scales = \"free_x\")\n

\u901a\u8fc7\u4f7f\u7528 facet_wrap() \u548c facet_grid() \u51fd\u6570\uff0c\u53ef\u4ee5\u6839\u636e\u6570\u636e\u7684\u4e0d\u540c\u6761\u4ef6\u521b\u5efa\u591a\u4e2a\u5b50\u56fe\uff0c\u4ee5\u4fbf\u66f4\u597d\u5730\u6bd4\u8f83\u548c\u5206\u6790\u6570\u636e\u3002\u8fd9\u4e9b\u51fd\u6570\u7684\u53c2\u6570\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u8c03\u6574\uff0c\u4ee5\u6ee1\u8db3\u7279\u5b9a\u7684\u5206\u9762\u5e03\u5c40\u9700\u6c42\u3002

"},{"location":"R/dplyr/filter%28%29/","title":"Filter()","text":"

\u51fd\u6570\u7528\u4e8e\u7b5b\u9009\u6570\u636e\u6846\u4e2d\u6ee1\u8db3\u6307\u5b9a\u6761\u4ef6\u7684\u884c\u3002\u5b83\u53ef\u4ee5\u6839\u636e\u7ed9\u5b9a\u7684\u903b\u8f91\u6761\u4ef6\u6765\u9009\u62e9\u6570\u636e\u6846\u4e2d\u7684\u89c2\u6d4b\u503c\u3002

filter(data, ...)\n

  • .data: \u6570\u636e\u6846\u6216\u6570\u636e\u8868\uff0c\u8868\u793a\u8981\u7b5b\u9009\u7684\u6570\u636e\u6e90\u3002

  • ...: \u903b\u8f91\u6761\u4ef6\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u7b5b\u9009\u7684\u884c\u3002\u6761\u4ef6\u53ef\u4ee5\u662f\u4e00\u4e2a\u6216\u591a\u4e2a\uff0c\u5b83\u4eec\u5c06\u88ab\u8fde\u63a5\u8d77\u6765\u5f62\u6210\u7b5b\u9009\u8868\u8fbe\u5f0f\u3002 \u7b5b\u9009\u8868\u8fbe\u5f0f\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u903b\u8f91\u8fd0\u7b97\u7b26\uff1a

  • \\==: \u7b49\u4e8e\u3002
  • !=: \u4e0d\u7b49\u4e8e\u3002
  • >: \u5927\u4e8e\u3002
  • \\<: \u5c0f\u4e8e\u3002
  • >=: \u5927\u4e8e\u7b49\u4e8e\u3002
  • \\<=: \u5c0f\u4e8e\u7b49\u4e8e\u3002
  • !: \u975e\u3002
  • &: \u903b\u8f91\u4e0e\u3002
  • |: \u903b\u8f91\u6216\u3002

  • \u9009\u62e9\u5e74\u9f84\u5927\u4e8e30\u7684\u89c2\u6d4b\uff1a

    filtered_data <- filter(data, age > 30)\n

  • \u9009\u62e9\u6027\u522b\u4e3a\u5973\u6027\u4e14\u6536\u5165\u5927\u4e8e50000\u7684\u89c2\u6d4b\uff1a

    filtered_data <- filter(data, gender == \"Female\" & income > 50000)\n\nfiltered_data <- filter(data, gender == \"Female\", income > 50000)\n

  • \u9009\u62e9\u57ce\u5e02\u4e3a\"New York\"\u6216\"Los Angeles\"\u7684\u89c2\u6d4b\uff1a

    filtered_data <- filter(data, city %in% c(\"New York\", \"Los Angeles\"))\n

  • \u9009\u62e9\u6ce8\u518c\u65e5\u671f\u5728\u7279\u5b9a\u65f6\u95f4\u8303\u56f4\u5185\u7684\u89c2\u6d4b\uff1a

    filtered_data <- filter(data, registration_date >= \"2022-01-01\" & registration_date <= \"2022-12-31\")\n

\u901a\u8fc7\u7ec4\u5408\u4e0d\u540c\u7684\u6761\u4ef6\uff0c\u53ef\u4ee5\u7075\u6d3b\u5730\u7b5b\u9009\u51fa\u7b26\u5408\u7279\u5b9a\u8981\u6c42\u7684\u6570\u636e\u6846\u4e2d\u7684\u884c\u3002 \u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cfilter()\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u6ee1\u8db3\u7b5b\u9009\u6761\u4ef6\u7684\u884c\u3002\u539f\u59cb\u6570\u636e\u6846\u4e0d\u4f1a\u53d7\u5230\u5f71\u54cd\uff0c\u9664\u975e\u5c06\u7ed3\u679c\u5206\u914d\u7ed9\u4e00\u4e2a\u65b0\u7684\u53d8\u91cf\u6216\u8986\u76d6\u539f\u59cb\u6570\u636e\u6846\u3002

"},{"location":"R/dplyr/filter%28%29/#python","title":"\u771f\u7684\u6ca1\u6709python\u597d\u7528","text":"
property_names <- property_name$property_region\n\nlj_top30 <- dplyr::filter(lj, property_region %in% property_names)\n

\u9519\u8bef\u793a\u8303

lj_top30 <- dplyr::filter(lj, property_region == property_names$property_region)\n
\u4e0d\u80fd\u7528\u7b49\u4e8e\u53f7\uff0c\u5426\u5219\u53ea\u8fd4\u56de\u56fa\u5b9a\u6570\u503c\u7684\u884c\u6570\uff1b \u4e0d\u80fd\u5728filter\u51fd\u6570\u4e2d\u52a0\u989d\u5916df\uff0c\u6307\u5b9adf$column\u4f1a\u663e\u793a\u62a5\u9519\uff01

https://blog.csdn.net/weixin_39366714/article/details/126578371\u6269\u5c55 filter_all if at

"},{"location":"R/dplyr/full_join%28%29/","title":"Full join()","text":"

\u60a8\u53ef\u4ee5\u4f7f\u7528\u591a\u4e2a\u53c2\u6570\u6765\u6307\u5b9a\u5168\u8fde\u63a5\u7684\u884c\u4e3a\u3002\u4ee5\u4e0b\u662ffull_join()\u51fd\u6570\u4e2d\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

\n
- x\u3001y\uff1a\u8981\u8fde\u63a5\u7684\u4e24\u4e2a\u6570\u636e\u6846\uff08\u6216\u6570\u636e\u8868\uff09\u3002 - by\uff1a\u6307\u5b9a\u7528\u4e8e\u8fde\u63a5\u7684\u5171\u4eab\u53d8\u91cf\u7684\u540d\u79f0\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u53d8\u91cf\u540d\u3002\u5982\u679c\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u540d\u79f0\u76f8\u540c\uff0c\u5219\u53ef\u4ee5\u7701\u7565\u6b64\u53c2\u6570\u3002 - suffix\uff1a\u6307\u5b9a\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u65f6\uff0c\u7528\u4e8e\u533a\u5206\u8fd9\u4e9b\u53d8\u91cf\u7684\u540e\u7f00\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u540e\u7f00\u4e3a \".x\" \u548c \".y\" \u7528\u4e8e\u533a\u5206\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u4e86full_join()\u51fd\u6570\u7684\u53c2\u6570\u4f7f\u7528\uff1a

library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3, 4),\n                  value1 = c(\"A\", \"B\", \"C\", \"D\"))\n\ndf2 <- data.frame(ID = c(2, 3, 5, 6),\n                  value2 = c(\"X\", \"Y\", \"Z\", \"W\"))\n\njoined_df <- full_join(df1, df2, by = \"ID\", suffix = c(\".left\", \".right\"))\n\nprint(joined_df)\n

\u8f93\u51fa\uff1a

  ID value1 value2\n1  1      A   <NA>\n2  2      B      X\n3  3      C      Y\n4  4      D   <NA>\n5  5   <NA>      Z\n6  6   <NA>      W\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u5b83\u4eec\u90fd\u5305\u542b\u4e00\u4e2a\u540d\u4e3a\"ID\"\u7684\u5171\u4eab\u53d8\u91cf\u3002\u4f7f\u7528full_join()\u51fd\u6570\uff0c\u6211\u4eec\u57fa\u4e8e\"ID\"\u5217\u5bf9\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u5168\u8fde\u63a5\u3002suffix\u53c2\u6570\u8bbe\u7f6e\u4e3ac(\".left\", \".right\")\uff0c\u7528\u4e8e\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u7684\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002

\u5168\u8fde\u63a5\u64cd\u4f5c\u4f1a\u4fdd\u7559\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u6240\u6709\u884c\uff0c\u5e76\u5c06\u5b83\u4eec\u5408\u5e76\u5230\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u4e2d\u3002\u5982\u679c\u67d0\u4e2aID\u53ea\u5728\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u51fa\u73b0\uff0c\u5219\u5bf9\u5e94\u7684\u53e6\u4e00\u4e2a\u6570\u636e\u6846\u7684\u503c\u5c06\u4e3aNA\u3002

\u4e0a\u8ff0\u793a\u4f8b\u8fd8\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528suffix\u53c2\u6570\u6765\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002\u8fd9\u53ef\u4ee5\u907f\u514d\u53d8\u91cf\u540d\u51b2\u7a81\u3002

\u5e0c\u671b\u8fd9\u4e2a\u89e3\u91ca\u5bf9\u60a8\u6709\u5e2e\u52a9\u3002\u5982\u679c\u60a8\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/dplyr/full_join%28%29/#bynull","title":"by=NULL","text":"

\u5f53\u5728full_join()\u51fd\u6570\u4e2d\u4f7f\u7528by = NULL\u53c2\u6570\u65f6\uff0c\u5b83\u5c06\u6267\u884c\u5168\u8fde\u63a5\u64cd\u4f5c\uff0c\u4e0d\u57fa\u4e8e\u4efb\u4f55\u5171\u4eab\u53d8\u91cf\u8fdb\u884c\u8fde\u63a5\u3002\u8fd9\u5c06\u5bfc\u81f4\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u6240\u6709\u884c\u8fdb\u884c\u5408\u5e76\uff0c\u800c\u4e0d\u8003\u8651\u5b83\u4eec\u4e4b\u95f4\u7684\u4efb\u4f55\u5339\u914d\u6761\u4ef6\u3002

\u4ee5\u4e0b\u662f\u4f7f\u7528by = NULL\u53c2\u6570\u8fdb\u884c\u5168\u8fde\u63a5\u7684\u793a\u4f8b\uff1a

library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3, 4),\n                  value1 = c(\"A\", \"B\", \"C\", \"D\"))\n\ndf2 <- data.frame(ID = c(2, 3, 5, 6),\n                  value2 = c(\"X\", \"Y\", \"Z\", \"W\"))\n\njoined_df <- full_join(df1, df2, by = NULL)\n\nprint(joined_df)\n

\u8f93\u51fa\uff1a

  ID value1 value2\n1  1      A   <NA>\n2  2      B      X\n3  3      C      Y\n4  4      D   <NA>\n5  5   <NA>      Z\n6  6   <NA>      W\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u901a\u8fc7\u5c06by\u53c2\u6570\u8bbe\u7f6e\u4e3aNULL\uff0c\u6211\u4eec\u6267\u884c\u4e86\u5168\u8fde\u63a5\u64cd\u4f5c\uff0c\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u6240\u6709\u884c\u8fdb\u884c\u5408\u5e76\u3002

\u7ed3\u679c\u4e2d\u7684\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u6765\u81eadf1\u548cdf2\u7684\u6570\u636e\uff0c\u65e0\u8bba\u5b83\u4eec\u4e4b\u95f4\u662f\u5426\u6709\u5339\u914d\u6761\u4ef6\u3002\u5982\u679c\u67d0\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u5bf9\u5e94\u884c\u5728\u53e6\u4e00\u4e2a\u6570\u636e\u6846\u4e2d\u4e0d\u5b58\u5728\uff0c\u5219\u5bf9\u5e94\u7684\u53d8\u91cf\u503c\u5c06\u4e3aNA\u3002

\u8bf7\u6ce8\u610f\uff0c\u4f7f\u7528by = NULL\u53c2\u6570\u8fdb\u884c\u5168\u8fde\u63a5\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7ed3\u679c\u6570\u636e\u6846\u975e\u5e38\u5927\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u7684\u6240\u6709\u884c\u8fdb\u884c\u5408\u5e76\u3002

\u5e0c\u671b\u8fd9\u4e2a\u89e3\u91ca\u5bf9\u60a8\u6709\u5e2e\u52a9\u3002\u5982\u679c\u60a8\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/dplyr/glimpse%28%29/","title":"Glimpse()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cglimpse()\u51fd\u6570\u901a\u5e38\u662f\u7531tidyverse\u5305\u4e2d\u7684dplyr\u5305\u63d0\u4f9b\u7684\uff0c\u7528\u4e8e\u67e5\u770b\u6570\u636e\u6846\uff08data frame\uff09\u7684\u7b80\u8981\u6458\u8981\u4fe1\u606f\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

glimpse(x, width = NULL, ...)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u67e5\u770b\u6458\u8981\u4fe1\u606f\u7684\u6570\u636e\u6846\u3002 - width\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u8f93\u51fa\u7684\u5bbd\u5ea6\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u8f93\u51fa\u9002\u5e94\u4e8e\u5c4f\u5e55\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684print()\u51fd\u6570\u3002

library(dplyr)\n\n# \u51c6\u5907\u6570\u636e\ndata <- iris\n\n# \u67e5\u770b\u6570\u636e\u6846\u6458\u8981\u4fe1\u606f\nglimpse(data)\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528iris\u6570\u636e\u96c6\u4f5c\u4e3a\u793a\u4f8b\u6570\u636e\u6846\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528glimpse()\u51fd\u6570\u67e5\u770b\u6570\u636e\u6846\u7684\u7b80\u8981\u6458\u8981\u4fe1\u606f\u3002\u51fd\u6570\u4f1a\u663e\u793a\u6570\u636e\u6846\u7684\u5217\u540d\u3001\u6570\u636e\u7c7b\u578b\u548c\u524d\u51e0\u884c\u7684\u503c\uff0c\u4ee5\u53ca\u5176\u4ed6\u6709\u5173\u6570\u636e\u6846\u7ed3\u6784\u7684\u76f8\u5173\u4fe1\u606f\u3002

\u5728\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u60a8\u5c06\u770b\u5230\u6bcf\u5217\u7684\u540d\u79f0\u3001\u6570\u636e\u7c7b\u578b\u548c\u524d\u51e0\u884c\u7684\u503c\u3002\u6570\u5b57\u8868\u793a\u6570\u503c\u578b\u53d8\u91cf\uff0c\u5b57\u7b26\u8868\u793a\u5b57\u7b26\u578b\u53d8\u91cf\uff0c\u800c\u56e0\u5b50\u8868\u793a\u5206\u7c7b\u53d8\u91cf\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u663e\u793a\u6570\u636e\u6846\u7684\u884c\u6570\u548c\u5217\u6570\u3002

\u4f7f\u7528glimpse()\u51fd\u6570\u53ef\u4ee5\u5feb\u901f\u4e86\u89e3\u6570\u636e\u6846\u7684\u7ed3\u6784\u548c\u5185\u5bb9\uff0c\u6709\u52a9\u4e8e\u8fdb\u884c\u6570\u636e\u6e05\u6d17\u548c\u5206\u6790\u3002\u8bf7\u6ce8\u610f\uff0cglimpse()\u51fd\u6570\u901a\u5e38\u4e0e\u5176\u4ed6dplyr\u5305\u4e2d\u7684\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u7528\u4e8e\u6570\u636e\u5904\u7406\u548c\u64cd\u4f5c\u3002

"},{"location":"R/dplyr/group_by%28%29/","title":"Group by()","text":"

\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u6309\u7167\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\u64cd\u4f5c\u3002

\u5206\u7ec4\u540e\u6570\u636e\u6574\u4f53\u6ca1\u6709\u53d8\u5316\uff0c\u53ea\u662f\u6dfb\u52a0\u4e86\u5206\u7ec4\u7279\u5f81\u8bf4\u660e\uff0cungroup()\u5c31\u662f\u53d6\u6d88\u8fd9\u4e2a\u8bf4\u660e\uff0c\u4e0d\u50cfpython\u76f4\u63a5\u4fee\u6539\u4e86\u5206\u7ec4\u5217\u7684\u6570\u636e\u3002

group_by(.data, ...)\n
  • .data: \u8981\u8fdb\u884c\u5206\u7ec4\u64cd\u4f5c\u7684\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u3002

  • ...: \u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u5206\u7ec4\u7684\u4f9d\u636e\u3002\u53ef\u4ee5\u662f\u53d8\u91cf\u540d\u3001\u53d8\u91cf\u4f4d\u7f6e\u6216\u53d8\u91cf\u8868\u8fbe\u5f0f\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528group_by()\u51fd\u6570\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\uff1a

library(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"A\", \"B\", \"C\"),\n  value = c(10, 15, 8, 12, 9, 6)\n)\n\n# \u4f7f\u7528group_by()\u51fd\u6570\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\ngrouped_data <- group_by(data, category)\n\n# \u5bf9\u5206\u7ec4\u540e\u7684\u6570\u636e\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\nsummary_data <- summarize(grouped_data,  mean_value = mean(value), max_value = max(value))\n\n# \u8f93\u51fa\u6c47\u603b\u7edf\u8ba1\u7ed3\u679c\nprint(summary_data)\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u7c7b\u522b\u53d8\u91cfcategory\u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cfvalue\u3002\u7136\u540e\uff0c\u4f7f\u7528group_by()\u51fd\u6570\u5bf9\u6570\u636e\u6846\u6309\u7167category\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\u64cd\u4f5c\uff0c\u5c06\u5206\u7ec4\u7ed3\u679c\u4fdd\u5b58\u5230grouped_data\u4e2d\u3002\u63a5\u4e0b\u6765\uff0c\u4f7f\u7528summarize()\u51fd\u6570\u5bf9\u5206\u7ec4\u540e\u7684\u6570\u636e\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\uff0c\u8ba1\u7b97\u4e86\u6bcf\u4e2a\u7c7b\u522b\u7684value\u5747\u503c\u548c\u6700\u5927\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230summary_data\u4e2d\u3002\u6700\u540e\uff0c\u4f7f\u7528print()\u51fd\u6570\u8f93\u51fa\u6c47\u603b\u7edf\u8ba1\u7ed3\u679c\u3002

\u8fd0\u884c\u8fd9\u6bb5\u4ee3\u7801\u4f1a\u8f93\u51fa\u6839\u636e\u7c7b\u522b\u8fdb\u884c\u5206\u7ec4\u540e\u7684\u6c47\u603b\u7edf\u8ba1\u7ed3\u679c\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6839\u636ecategory\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\u540e\uff0c\u6bcf\u4e2a\u7c7b\u522b\u7684\u5747\u503c\u548c\u6700\u5927\u503c\u88ab\u8ba1\u7b97\u51fa\u6765\u5e76\u663e\u793a\u5728\u7ed3\u679c\u4e2d\u3002

group_by()\u51fd\u6570\u901a\u5e38\u4e0e\u5176\u4ed6dplyr\u51fd\u6570\uff08\u5982summarize()\u3001mutate()\u3001filter()\u7b49\uff09\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u8fdb\u884c\u66f4\u590d\u6742\u7684\u6570\u636e\u64cd\u4f5c\u548c\u5206\u6790\u3002

"},{"location":"R/dplyr/group_by%28%29/#groups","title":".groups\u5904\u7406\u591a\u7ea7\u5206\u7ec4\u7ed3\u6784","text":"

\u591a\u7ea7\u5206\u7ec4\uff0cungroup()\u53ef\u80fd\u4e0d\u9002\u7528\u4e86\u3002\u9700\u8981\u7528.groups\u6765\u544a\u8bc9\u7a0b\u5e8f\u6c47\u603b\u540e\u5bf9\u591a\u7ea7\u5206\u7ec4\u7684\u5904\u7406\u65b9\u5f0f\u3002 \u4ee5group_by(flights, year, month, day)\u4e3a\u4f8b\u5b50

daily <- group_by(flights, year, month, day)\n\n(per_day <- summarize(daily, flights = n(), .groups = \"drop_last\"))\n

\u4e0a\u9762\u5c06day\u7684\u7ec4\u5206\u7ec4\u91ca\u653e\u4e86\uff0c\u8fd9\u7ea7\u518d\u6c42\u5c31\u662f\u6309\u7167month\u6700\u4f18\u4e00\u4e2a\u5206\u7ec4\u6765\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\u3002

(per_month <- summarize(per_day, flights = sum(flights), .groups = \"drop_last\")\n
.groups\u7684\u4e3b\u8981\u53c2\u6570\u67094\u4e2a\uff1a - drop_last\uff1a\u6c47\u603b\u7ed3\u675f\u540e\uff0c\u5c06\u5f53\u524d\u6570\u636e\u96c6\u7684\u6700\u4f4e\u4e00\u7ea7\u5206\u7ec4\u7ed3\u6784\u5220\u9664 - drop\uff1a\u6c47\u603b\u7ed3\u675f\u540e\uff0c\u5c06\u5f53\u524d\u6570\u636e\u96c6\u6240\u6709\u7684\u5206\u7ec4\u7ed3\u6784\u5220\u9664\uff0c\u6570\u636e\u96c6\u56de\u5230\u4e4b\u524d\u672a\u5206\u7ec4\u7684\u72b6\u6001 - keep\uff1a\u6c47\u603b\u7ed3\u675f\u540e\uff0c\u4fdd\u7559\u6570\u636e\u96c6\u5f53\u524d\u7684\u5206\u7ec4\u7ed3\u6784\uff0c\u5373\u5f53\u524d\u7684\u5206\u7ec4\u72b6\u6001 - rowwiese\uff1a\u5b57\u9762\u4e0a\u7406\u89e3\u662f\u6bcf\u4e00\u884c\u4f5c\u4e3a\u4e00\u7ec4\uff0c\u5b9e\u9645\u4e0a\u662f\u6307\u5c06\u539f\u6709\u7684\u5206\u7ec4\u7ed3\u6784\u5220\u9664\uff0c\u4ee5\u6c47\u603b\u53d8\u91cf\u4f5c\u4e3a\u4f9d\u636e\u91cd\u65b0\u5206\u7ec4 https://blog.csdn.net/Y1575071736/article/details/119277403

"},{"location":"R/dplyr/group_by%28%29/#na","title":"\u5173\u4e8eNA\u503c\u7684\u5904\u7406","text":"

NA\u503c\u5355\u72ec\u5206\u4e00\u7ec4 \u5728R\u8bed\u8a00\u4e2d\uff0cgroup_by()\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u6309\u7167\u6307\u5b9a\u7684\u53d8\u91cf\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\u64cd\u4f5c\u3002\u5728\u5206\u7ec4\u671f\u95f4\uff0cgroup_by()\u51fd\u6570\u4f1a\u5c06\u6570\u636e\u96c6\u6309\u7167\u6307\u5b9a\u7684\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u5728\u540e\u7eed\u7684\u64cd\u4f5c\u4e2d\u5c06\u6bcf\u4e2a\u7ec4\u89c6\u4e3a\u5355\u72ec\u7684\u5355\u4f4d\u3002

\u5728group_by()\u51fd\u6570\u7684\u9ed8\u8ba4\u884c\u4e3a\u4e2d\uff0c\u5bf9\u4e8e\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u53d8\u91cf\uff0c\u4f1a\u5c06\u5176\u4f5c\u4e3a\u4e00\u4e2a\u5355\u72ec\u7684\u7ec4\u8fdb\u884c\u5904\u7406\u3002\u8fd9\u610f\u5473\u7740\u5177\u6709\u7f3a\u5931\u503c\u7684\u89c2\u6d4b\u5c06\u88ab\u5206\u914d\u5230\u4e00\u4e2a\u72ec\u7acb\u7684\u7ec4\u4e2d\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u4e86group_by()\u51fd\u6570\u5728\u5904\u7406\u5305\u542bNA\u503c\u7684\u60c5\u51b5\u4e0b\u7684\u884c\u4e3a\uff1a

library(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u5305\u542bNA\u503c\u7684\u6570\u636e\u6846\ndf <- data.frame(\n  group_var = c(\"A\", \"A\", \"B\", \"B\", NA),\n  value = c(1, 2, 3, 4, 5)\n)\n\n# \u4f7f\u7528group_by\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\ngrouped_df <- df %>% group_by(group_var)\n\n# \u67e5\u770b\u5206\u7ec4\u540e\u7684\u6570\u636e\nprint(grouped_df)\n\n### \u8f93\u51fa\n# A tibble: 5 \u00d7 2\n# Groups:   group_var [3]\n  group_var value\n  <chr>     <dbl>\n1 A             1\n2 A             2\n3 B             3\n4 B             4\n5 <NA>          5\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542bNA\u503c\u7684\u6570\u636e\u6846df\uff0c\u5176\u4e2d\u5305\u542b\u4e00\u4e2a\u5206\u7ec4\u53d8\u91cfgroup_var\u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cfvalue\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528group_by()\u51fd\u6570\u5c06\u6570\u636e\u6309\u7167group_var\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728grouped_df\u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u4e86\u5206\u7ec4\u540e\u7684\u6570\u636e\u3002

\u5728\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u60a8\u4f1a\u6ce8\u610f\u5230\u542b\u6709NA\u503c\u7684\u7ec4\u88ab\u5355\u72ec\u5217\u51fa\uff0c\u800c\u5176\u4ed6\u7ec4\u5219\u6309\u7167group_var\u7684\u53d6\u503c\u8fdb\u884c\u5206\u7ec4\u3002\u8fd9\u662fgroup_by()\u51fd\u6570\u5bf9\u4e8eNA\u503c\u7684\u9ed8\u8ba4\u5904\u7406\u65b9\u5f0f\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6ena.action\u53c2\u6570\u6765\u4fee\u6539group_by()\u51fd\u6570\u5bf9\u4e8eNA\u503c\u7684\u5904\u7406\u65b9\u5f0f\u3002\u4f8b\u5982\uff0c\u5c06na.action = na.pass\u4f20\u9012\u7ed9group_by()\u51fd\u6570\uff0c\u5c06\u5141\u8bb8NA\u503c\u53c2\u4e0e\u5206\u7ec4\u64cd\u4f5c\uff0c\u5e76\u4fdd\u7559\u539f\u59cb\u7684NA\u503c\u6240\u5728\u7684\u7ec4\u3002

\u603b\u7ed3\u8d77\u6765\uff0cR\u8bed\u8a00\u4e2d\u7684group_by()\u51fd\u6570\u9ed8\u8ba4\u5c06\u5305\u542bNA\u503c\u7684\u53d8\u91cf\u4f5c\u4e3a\u4e00\u4e2a\u5355\u72ec\u7684\u7ec4\u8fdb\u884c\u5904\u7406\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6ena.action\u53c2\u6570\u6765\u8c03\u6574\u5bf9NA\u503c\u7684\u5904\u7406\u65b9\u5f0f\u3002

"},{"location":"R/dplyr/group_by%28%29/#cut","title":"\u9ad8\u7ea7\u5206\u7ec4\uff1a\u6307\u5b9a\u8303\u56f4\u8fdb\u884c\u5206\u7ec4cut()","text":"

\u7528\u5230cut()\u51fd\u6570\uff0c\u5f3a\u5236\u6309\u79bb\u6563\u578b\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\uff1f

# \u5bfc\u5165dplyr\u5305\nlibrary(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(Player = c(\"Player1\", \"Player2\", \"Player3\", \"Player4\", \"Player5\"),\n                 PPG = c(15, 8, 12, 18, 23))\n\n# \u5b9a\u4e49\u5206\u7ec4\u533a\u95f4\nbreaks <- seq(10, 30, by = 2)  # \u4ece10\u523030\uff0c\u6bcf2\u4e3a\u4e00\u4e2a\u533a\u95f4\n\n# \u4f7f\u7528cut\u51fd\u6570\u521b\u5efa\u5206\u7ec4\ndf <- df %>%\n  mutate(PPG_Group = cut(PPG, breaks = breaks, labels = FALSE, include.lowest = TRUE)) %>%\n  group_by(PPG_Group)\n\n# \u8f93\u51fa\u5206\u7ec4\u540e\u7684\u6570\u636e\u6846\nprint(df)\n

\u6b63\u786e\u7684\u505a\u6cd5!

# input data\ndf_ppg <- read.csv(\"./data/NBAPlayerPts.csv\")\n\n# \u4f7f\u7528cut\u51fd\u6570\u521b\u5efa\u56e0\u5b50\nbreaks <- seq(10, 30, by = 2)\ndf_ppg_fre <- df_ppg %>%\n  mutate(PPG_Group = cut(PPG, breaks = breaks,include.lowest = TRUE)) %>% \n  group_by(PPG_Group) %>% \n  summarise(PPG_Group_count = n(), .groups = \"drop\")\n\n# \u7ed8\u5236\u67f1\u72b6\u56fe\ndf_ppg_fre %>% \n  ggplot() +\n  geom_bar(aes(x = PPG_Group, y = PPG_Group_count), stat = \"identity\") +\n  scale_y_continuous(breaks = seq(0,20))\n

"},{"location":"R/dplyr/inner_join%28%29/","title":"Inner join()","text":"

\u5728\u51fd\u6570\u4e2d\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u591a\u4e2a\u53c2\u6570\u6765\u6307\u5b9a\u5185\u8fde\u63a5\u7684\u884c\u4e3a\u3002\u4ee5\u4e0b\u662finner_join()\u51fd\u6570\u4e2d\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

inner_join(x,y,by=\"key\", )\n

  • x\u3001y\uff1a\u8981\u8fde\u63a5\u7684\u4e24\u4e2a\u6570\u636e\u6846\uff08\u6216\u6570\u636e\u8868\uff09\u3002
  • by\uff1a\u6307\u5b9a\u7528\u4e8e\u8fde\u63a5\u7684\u5171\u4eab\u53d8\u91cf\u7684\u540d\u79f0\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u53d8\u91cf\u540d\u3002\u5982\u679c\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u540d\u79f0\u76f8\u540c\uff0c\u5219\u53ef\u4ee5\u7701\u7565\u6b64\u53c2\u6570\u3002\u9ed8\u8ba4\u4e3aNull
  • suffix\uff1a\u6307\u5b9a\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u65f6\uff0c\u7528\u4e8e\u533a\u5206\u8fd9\u4e9b\u53d8\u91cf\u7684\u540e\u7f00\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u540e\u7f00\u4e3a \".x\" \u548c \".y\" \u7528\u4e8e\u533a\u5206\u3002
library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3, 4),\n                  value1 = c(\"A\", \"B\", \"C\", \"D\"))\n\ndf2 <- data.frame(ID = c(2, 3, 5, 6),\n                  value2 = c(\"X\", \"Y\", \"Z\", \"W\"))\n\njoined_df <- inner_join(df1, df2, by = \"ID\", suffix = c(\".left\", \".right\"))\n\nprint(joined_df)\n

\u8f93\u51fa\uff1a

  ID value1 value2\n1  2      B      X\n2  3      C      Y\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u5b83\u4eec\u90fd\u5305\u542b\u4e00\u4e2a\u540d\u4e3a\"ID\"\u7684\u5171\u4eab\u53d8\u91cf\u3002\u4f7f\u7528inner_join()\u51fd\u6570\uff0c\u6211\u4eec\u57fa\u4e8e\"ID\"\u5217\u5bf9\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u5185\u8fde\u63a5\u3002suffix\u53c2\u6570\u8bbe\u7f6e\u4e3ac(\".left\", \".right\")\uff0c\u7528\u4e8e\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u7684\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002 \u5185\u8fde\u63a5\u64cd\u4f5c\u4f1a\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u627e\u5230\u5339\u914d\u7684\u884c\uff0c\u5e76\u5c06\u5b83\u4eec\u5408\u5e76\u5230\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u4e2d\u3002\u53ea\u6709\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u90fd\u5b58\u5728\u7684ID\u624d\u4f1a\u51fa\u73b0\u5728\u7ed3\u679c\u4e2d\u3002 \u4e0a\u8ff0\u793a\u4f8b\u8fd8\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528suffix\u53c2\u6570\u6765\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002\u8fd9\u53ef\u4ee5\u907f\u514d\u53d8\u91cf\u540d\u51b2\u7a81\u3002

"},{"location":"R/dplyr/lag%28%29/","title":"Lag()","text":"

\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u6ede\u540e\u89c2\u6d4b\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u8ba1\u7b97\u5148\u524d\u7684\u503c\u6216\u89c2\u6d4b\uff0c\u5e76\u5728\u7ed3\u679c\u4e2d\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\u6216\u6570\u636e\u6846\u3002

lag(x)\n
- x\uff1a\u8981\u83b7\u53d6\u6ede\u540e\u89c2\u6d4b\u7684\u5411\u91cf\u6216\u6570\u636e\u6846\u7684\u5217\u3002 - n\uff1a\u8981\u6ede\u540e\u7684\u89c2\u6d4b\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a1\u3002\u5982\u679cn\u4e3a\u6b63\u6570\uff0c\u8fd4\u56de\u5411\u91cf\u6216\u5217\u4e2d\u7684\u5148\u524d\u89c2\u6d4b\u3002\u5982\u679cn\u4e3a\u8d1f\u6570\uff0c\u8fd4\u56de\u5411\u91cf\u6216\u5217\u4e2d\u7684\u540e\u7eed\u89c2\u6d4b\u3002 - default\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5728\u8fb9\u7f18\u60c5\u51b5\u4e0b\uff08\u5982\u6ede\u540e\u89c2\u6d4b\u4e0d\u53ef\u7528\u65f6\uff09\u8fd4\u56de\u7684\u9ed8\u8ba4\u503c\u3002

\u4e0b\u9762\u662flag()\u51fd\u6570\u7684\u793a\u4f8b\u7528\u6cd5\uff1a

  1. \u5e94\u7528\u4e8e\u5411\u91cf\uff1a

    x <- c(1, 2, 3, 4, 5)\nlag(x)\n
    \u8f93\u51fa\uff1a
    NA 1 2 3 4\n
    \u4e0a\u8ff0\u4ee3\u7801\u83b7\u53d6\u5411\u91cfx\u7684\u6ede\u540e\u89c2\u6d4b\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6ede\u540e1\u4e2a\u89c2\u6d4b\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u7b2c\u4e00\u4e2a\u5143\u7d20\u4e3aNA\uff0c\u540e\u9762\u7684\u5143\u7d20\u4e3a\u539f\u59cb\u5411\u91cf\u7684\u524d\u4e00\u4e2a\u89c2\u6d4b\u3002

  2. \u5e94\u7528\u4e8e\u6570\u636e\u6846\u7684\u5217\uff1a

    df <- data.frame(x = c(1, 2, 3, 4, 5), y = c(6, 7, 8, 9, 10))\nlag(df$x)\n
    \u8f93\u51fa\uff1a
    NA 1 2 3 4\n
    \u4e0a\u8ff0\u4ee3\u7801\u83b7\u53d6\u6570\u636e\u6846df\u4e2d\u5217x\u7684\u6ede\u540e\u89c2\u6d4b\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6ede\u540e1\u4e2a\u89c2\u6d4b\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u7b2c\u4e00\u4e2a\u5143\u7d20\u4e3aNA\uff0c\u540e\u9762\u7684\u5143\u7d20\u4e3a\u539f\u59cb\u5411\u91cf\u7684\u524d\u4e00\u4e2a\u89c2\u6d4b\u3002

lag()\u51fd\u6570\u5728\u65f6\u95f4\u5e8f\u5217\u5206\u6790\u548c\u6570\u636e\u5904\u7406\u4e2d\u7ecf\u5e38\u7528\u4e8e\u8ba1\u7b97\u6ede\u540e\u503c\u3002\u5b83\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8fdb\u884c\u89c2\u6d4b\u6570\u636e\u7684\u6bd4\u8f83\u3001\u8ba1\u7b97\u5dee\u5f02\u7b49\u64cd\u4f5c\u3002

"},{"location":"R/dplyr/lead%28%29/","title":"Lead()","text":"

\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u9886\u5148\u89c2\u6d4b(\u53ef\u4ee5\u7406\u89e3\u4e3a\u524d\u79fb)\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u8ba1\u7b97\u540e\u7eed\u7684\u503c\u6216\u89c2\u6d4b\uff0c\u5e76\u5728\u7ed3\u679c\u4e2d\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\u6216\u6570\u636e\u6846\u3002

lead(x)\n
- x\uff1a\u8981\u83b7\u53d6\u9886\u5148\u89c2\u6d4b\u7684\u5411\u91cf\u6216\u6570\u636e\u6846\u7684\u5217\u3002 - n\uff1a\u8981\u9886\u5148\u7684\u89c2\u6d4b\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a1\u3002\u5982\u679cn\u4e3a\u6b63\u6570\uff0c\u8fd4\u56de\u5411\u91cf\u6216\u5217\u4e2d\u7684\u540e\u7eed\u89c2\u6d4b\u3002\u5982\u679cn\u4e3a\u8d1f\u6570\uff0c\u8fd4\u56de\u5411\u91cf\u6216\u5217\u4e2d\u7684\u5148\u524d\u89c2\u6d4b\u3002 - default\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u5728\u8fb9\u7f18\u60c5\u51b5\u4e0b\uff08\u5982\u9886\u5148\u89c2\u6d4b\u4e0d\u53ef\u7528\u65f6\uff09\u8fd4\u56de\u7684\u9ed8\u8ba4\u503c\u3002

  1. \u5e94\u7528\u4e8e\u5411\u91cf\uff1a

       x <- c(1, 2, 3, 4, 5)\n   lead(x)\n
    \u8f93\u51fa\uff1a
       2 3 4 5 NA\n
    \u4e0a\u8ff0\u4ee3\u7801\u83b7\u53d6\u5411\u91cfx\u7684\u9886\u5148\u89c2\u6d4b\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u9886\u51481\u4e2a\u89c2\u6d4b\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u524d\u9762\u7684\u5143\u7d20\u4e3a\u539f\u59cb\u5411\u91cf\u7684\u540e\u4e00\u4e2a\u89c2\u6d4b\uff0c\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3aNA\u3002

  2. \u5e94\u7528\u4e8e\u6570\u636e\u6846\u7684\u5217\uff1a

    df <- data.frame(x = c(1, 2, 3, 4, 5), y = c(6, 7, 8, 9, 10))\nlead(df$x)\n
    \u8f93\u51fa\uff1a
       2 3 4 5 NA\n

\u4e0a\u8ff0\u4ee3\u7801\u83b7\u53d6\u6570\u636e\u6846df\u4e2d\u5217x\u7684\u9886\u5148\u89c2\u6d4b\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u9886\u51481\u4e2a\u89c2\u6d4b\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u65b0\u7684\u5411\u91cf\uff0c\u5176\u4e2d\u524d\u9762\u7684\u5143\u7d20\u4e3a\u539f\u59cb\u5411\u91cf\u7684\u540e\u4e00\u4e2a\u89c2\u6d4b\uff0c\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3aNA\u3002

lead()\u51fd\u6570\u5728\u65f6\u95f4\u5e8f\u5217\u5206\u6790\u548c\u6570\u636e\u5904\u7406\u4e2d\u7ecf\u5e38\u7528\u4e8e\u8ba1\u7b97\u9886\u5148\u503c\u3002\u5b83\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8fdb\u884c\u89c2\u6d4b\u6570\u636e\u7684\u6bd4\u8f83\u3001\u8ba1\u7b97\u5dee\u5f02\u7b49\u64cd\u4f5c\u3002

"},{"location":"R/dplyr/left_join%28%29/","title":"Left join()","text":"

\u51fd\u6570\u662f dplyr \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8fdb\u884c\u5de6\u8fde\u63a5\u64cd\u4f5c\u3002\u5b83\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u6309\u7167\u5171\u4eab\u7684\u952e\u8fdb\u884c\u8fde\u63a5\uff0c\u5e76\u4fdd\u7559\u5de6\u4fa7\u6570\u636e\u6846\u7684\u6240\u6709\u884c\uff0c\u540c\u65f6\u5c06\u53f3\u4fa7\u6570\u636e\u6846\u4e2d\u5339\u914d\u7684\u884c\u5408\u5e76\u5230\u7ed3\u679c\u4e2d\u3002

left_join(x, y, by = NULL, ...)\n# \u6216\u8005\u4f7f\u7528\u7ba1\u9053\u64cd\u4f5c\u7b26 %>%\nx %>% left_join(y, by = NULL, ...)\n
- x, y: \u8981\u8fde\u63a5\u7684\u4e24\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u3002 - by\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u4e00\u4e2a\u5305\u542b\u5b57\u7b26\u5411\u91cf\u7684\u5217\u8868\uff0c\u7528\u4e8e\u6307\u5b9a\u8fde\u63a5\u7684\u952e\u3002\u5982\u679c\u952e\u7684\u540d\u79f0\u5728\u5de6\u4fa7\u548c\u53f3\u4fa7\u6570\u636e\u6846\u4e2d\u4e0d\u540c\uff0c\u53ef\u4ee5\u4f7f\u7528\u00a0by = c(\"left_key\" = \"right_key\")\u00a0\u7684\u5f62\u5f0f\u8fdb\u884c\u6620\u5c04\u3002\u5982\u679c\u4e0d\u63d0\u4f9b\u952e\uff0c\u5219\u00a0left_join()\u00a0\u51fd\u6570\u5c06\u6839\u636e\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u6240\u6709\u5217\u8fdb\u884c\u8fde\u63a5\u3002 \u4e0d\u6307\u5b9a\u952e\u540d\uff0c\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u6240\u6709\u5177\u6709\u76f8\u540c\u540d\u79f0\u7684\u5217\u8fdb\u884c\u8fde\u63a5 by = c(\"key1\", \"key2\")\u591akey

  • copy: \u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u590d\u5236 x \u548c y\u3002\u9ed8\u8ba4\u4e3a TRUE\uff0c\u8868\u793a\u5728\u8fdb\u884c\u8fde\u63a5\u4e4b\u524d\u590d\u5236\u6570\u636e\u6846\u3002\u5982\u679c\u6570\u636e\u6846\u5f88\u5927\uff0c\u53ef\u4ee5\u5c06\u5176\u8bbe\u7f6e\u4e3a FALSE\uff0c\u4ee5\u8282\u7701\u5185\u5b58\u3002
  • suffix: \u4e00\u4e2a\u957f\u5ea6\u4e3a2\u7684\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u7ed9\u5177\u6709\u76f8\u540c\u5217\u540d\u7684\u5217\u6dfb\u52a0\u540e\u7f00\u3002\u9ed8\u8ba4\u4e3a c(\".x\", \".y\")\u3002
  • ...: \u5176\u4ed6\u4f20\u9012\u7ed9\u5e95\u5c42\u8fde\u63a5\u51fd\u6570\u7684\u53c2\u6570\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u4e86 left_join() \u51fd\u6570\u7684\u7528\u6cd5\uff1a

library(dplyr)\n\n# \u521b\u5efa\u7b2c\u4e00\u4e2a\u6570\u636e\u6846\ndata1 <- data.frame(\n  id = c(1, 2, 3),\n  name = c(\"Alice\", \"Bob\", \"Charlie\")\n)\n\n# \u521b\u5efa\u7b2c\u4e8c\u4e2a\u6570\u636e\u6846\ndata2 <- data.frame(\n  id = c(1, 2, 4),\n  age = c(25, 30, 35)\n)\n\n# \u8fdb\u884c\u5de6\u8fde\u63a5\njoined_data <- left_join(data1, data2, by = \"id\")\n\nprint(joined_data)\n

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\uff1a

  id    name age\n1  1   Alice  25\n2  2     Bob  30\n3  3 Charlie  NA\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e24\u4e2a\u6570\u636e\u6846 data1 \u548c data2\u3002\u7136\u540e\u4f7f\u7528 left_join() \u51fd\u6570\u5c06\u8fd9\u4e24\u4e2a\u6570\u636e\u6846\u6309\u7167\u5171\u4eab\u7684\u952e \"id\" \u8fdb\u884c\u5de6\u8fde\u63a5\u3002\u5de6\u8fde\u63a5\u7ed3\u679c\u4fdd\u7559\u4e86\u5de6\u4fa7\u6570\u636e\u6846 data1 \u7684\u6240\u6709\u884c\uff0c\u5e76\u5c06\u53f3\u4fa7\u6570\u636e\u6846 data2 \u4e2d\u5339\u914d\u7684\u884c\u5408\u5e76\u5230\u7ed3\u679c\u4e2d\u3002\u5982\u679c\u53f3\u4fa7\u6570\u636e\u6846\u4e2d\u6ca1\u6709\u4e0e\u5de6\u4fa7\u6570\u636e\u6846\u5339\u914d\u7684\u884c\uff0c\u76f8\u5e94\u4f4d\u7f6e\u4e0a\u7684\u503c\u5c06\u663e\u793a\u4e3a NA\u3002

"},{"location":"R/dplyr/left_join%28%29/#by","title":"\u5173\u4e8eby\u53c2\u6570\u7684\u8be6\u7ec6\u89e3\u91ca","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cleft_join() \u51fd\u6570\u7528\u4e8e\u6839\u636e\u4e00\u4e2a\u6216\u591a\u4e2a\u5b57\u6bb5\uff08\u5217\uff09\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u5de6\u8fde\u63a5\uff08left join\uff09\u3002\u5de6\u8fde\u63a5\u662f\u4e00\u79cd\u5408\u5e76\u6570\u636e\u7684\u64cd\u4f5c\uff0c\u5b83\u5c06\u4fdd\u7559\u5de6\u4fa7\u6570\u636e\u6846\u7684\u6240\u6709\u884c\uff0c\u5e76\u5c06\u53f3\u4fa7\u6570\u636e\u6846\u4e2d\u5339\u914d\u7684\u884c\u6dfb\u52a0\u5230\u5de6\u4fa7\u6570\u636e\u6846\u3002left_join() \u51fd\u6570\u7684 by \u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u7528\u4e8e\u5339\u914d\u7684\u5b57\u6bb5\u3002\u4ee5\u4e0b\u662f left_join() \u51fd\u6570\u4e2d by \u53c2\u6570\u7684\u8be6\u7ec6\u8bb2\u89e3\u548c\u793a\u4f8b\u4f7f\u7528\uff1a

left_join(x, y, by = c(\"column1\", \"column2\", ...))\n

\u53c2\u6570\uff1a - x\uff1a\u5de6\u4fa7\u6570\u636e\u6846\u3002 - y\uff1a\u53f3\u4fa7\u6570\u636e\u6846\u3002 - by\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u6307\u5b9a\u7528\u4e8e\u5339\u914d\u7684\u5b57\u6bb5\uff08\u5217\uff09\u7684\u540d\u79f0\u3002

\u793a\u4f8b\u7528\u6cd5\uff1a

# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u6846\ndf1 <- data.frame(ID = c(1, 2, 3),\n                  Name = c(\"John\", \"Alice\", \"Bob\"),\n                  Age = c(25, 30, 35))\n\ndf2 <- data.frame(ID = c(2, 3, 4),\n                  City = c(\"New York\", \"Chicago\", \"Los Angeles\"))\n\n# \u4f7f\u7528 left_join() \u8fdb\u884c\u5de6\u8fde\u63a5\nresult <- left_join(df1, df2, by = \"ID\")\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e24\u4e2a\u793a\u4f8b\u6570\u636e\u6846 df1 \u548c df2\uff0c\u5b83\u4eec\u5305\u542b\u4e86\u4e00\u4e9b\u5171\u540c\u7684\u5b57\u6bb5 ID\u3002\u6211\u4eec\u60f3\u8981\u6839\u636e ID \u5b57\u6bb5\u5c06\u8fd9\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u5de6\u8fde\u63a5\u64cd\u4f5c\u3002

\u4f7f\u7528 left_join() \u51fd\u6570\uff0c\u6211\u4eec\u4f20\u9012\u4e86\u5de6\u4fa7\u6570\u636e\u6846 df1 \u548c\u53f3\u4fa7\u6570\u636e\u6846 df2\uff0c\u5e76\u901a\u8fc7 by \u53c2\u6570\u6307\u5b9a\u4e86\u8981\u5339\u914d\u7684\u5b57\u6bb5\u540d\u79f0 \"ID\"\u3002\u8fd9\u5c06\u4f7f\u51fd\u6570\u6839\u636e ID \u5b57\u6bb5\u7684\u503c\u8fdb\u884c\u5339\u914d\u3002

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

  ID  Name Age       City\n1  1  John  25       <NA>\n2  2 Alice  30   New York\n3  3   Bob  35    Chicago\n

\u7ed3\u679c\u6570\u636e\u6846 result \u4fdd\u7559\u4e86\u5de6\u4fa7\u6570\u636e\u6846 df1 \u7684\u6240\u6709\u884c\uff0c\u5e76\u5c06\u53f3\u4fa7\u6570\u636e\u6846 df2 \u4e2d\u5339\u914d\u7684\u884c\u6dfb\u52a0\u5230\u76f8\u5e94\u7684\u5217\u4e2d\u3002\u5339\u914d\u5931\u8d25\u7684\u884c\u5c06\u5728\u7ed3\u679c\u6570\u636e\u6846\u4e2d\u663e\u793a\u4e3a <NA>\uff08\u7f3a\u5931\u503c\uff09\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cby \u53c2\u6570\u53ef\u4ee5\u63a5\u53d7\u4e00\u4e2a\u6216\u591a\u4e2a\u5b57\u6bb5\u7684\u540d\u79f0\u3002\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u53ea\u4f7f\u7528\u4e86\u4e00\u4e2a\u5b57\u6bb5 \"ID\" \u8fdb\u884c\u5339\u914d\u3002\u5982\u679c\u8981\u5339\u914d\u591a\u4e2a\u5b57\u6bb5\uff0c\u53ea\u9700\u5728 by \u53c2\u6570\u4e2d\u6307\u5b9a\u591a\u4e2a\u5b57\u6bb5\u7684\u540d\u79f0\u5373\u53ef\uff0c\u4f8b\u5982 by = c(\"field1\", \"field2\")\u3002

\u603b\u7ed3\u8d77\u6765\uff0cleft_join() \u51fd\u6570\u4e2d\u7684 by \u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u7528\u4e8e\u5339\u914d\u7684\u5b57\u6bb5\uff0c\u4f7f\u5f97\u5de6\u8fde\u63a5\u64cd\u4f5c\u80fd\u591f\u6839\u636e\u6307\u5b9a\u7684\u5b57\u6bb5\u5c06\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u8fde\u63a5\u3002

"},{"location":"R/dplyr/min_rank%28%29/","title":"Min rank()","text":"

min_rank() \u662f\u5728 R \u7684 dplyr \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u5143\u7d20\u7684\u6700\u5c0f\u6392\u540d\u3002\u5b83\u4e3a\u6bcf\u4e2a\u5143\u7d20\u5206\u914d\u4e00\u4e2a\u6392\u540d\u503c\uff0c\u5176\u4e2d\u6700\u5c0f\u7684\u5143\u7d20\u5177\u6709\u6392\u540d\u503c 1\uff0c\u800c\u76f8\u540c\u503c\u7684\u5143\u7d20\u5c06\u5177\u6709\u76f8\u540c\u7684\u6392\u540d\u3002 \u5c31\u662f\u8f93\u51fa\u6700\u5c0f\u503c\u6392\u5e8f\u540e\u7684\u5e8f\u53f7\uff0c\u5e8f\u53f71\u4e3a\u6700\u5c0f\uff0c\u76f8\u540c\u503c\u5e8f\u53f7\u76f8\u540c\uff0c\u4f9d\u6b21\u5206\u914d\u3002

library(dplyr)\n\n# \u4f7f\u7528 min_rank() \u8ba1\u7b97\u5411\u91cf\u7684\u6700\u5c0f\u6392\u540d\nvec <- c(10, 15, 8, 12, 9, 6)\nrank_vec <- min_rank(vec)\n\nprint(rank_vec)\n

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\uff1a

[1] 4 6 2 5 3 1\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 min_rank() \u51fd\u6570\u8ba1\u7b97\u4e86\u5411\u91cf vec \u4e2d\u5143\u7d20\u7684\u6700\u5c0f\u6392\u540d\u3002\u5143\u7d20 6 \u5177\u6709\u6700\u5c0f\u503c\uff0c\u56e0\u6b64\u5b83\u83b7\u5f97\u6392\u540d 1\uff0c\u5143\u7d20 15 \u5177\u6709\u6700\u5927\u503c\uff0c\u56e0\u6b64\u5b83\u83b7\u5f97\u6392\u540d 6\u3002\u5176\u4ed6\u5143\u7d20\u7684\u6392\u540d\u6839\u636e\u5b83\u4eec\u7684\u5927\u5c0f\u4f9d\u6b21\u5206\u914d\u3002

\u9664\u4e86\u5411\u91cf\uff0cmin_rank() \u51fd\u6570\u8fd8\u53ef\u4ee5\u5e94\u7528\u4e8e\u6570\u636e\u6846\u4e2d\u7684\u5217\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

data <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"A\", \"B\", \"C\"),\n  value = c(10, 15, 8, 12, 9, 6)\n)\n\n# \u5728\u6570\u636e\u6846\u4e2d\u5e94\u7528 min_rank()\nrank_data <- data %>%\n  mutate(rank_value = min_rank(value))\n\nprint(rank_data)\n

\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\uff1a

  category value rank_value\n1        A    10          4\n2        B    15          6\n3        C     8          2\n4        A    12          5\n5        B     9          3\n6        C     6          1\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 mutate() \u51fd\u6570\u548c min_rank() \u51fd\u6570\u5728\u6570\u636e\u6846\u4e2d\u521b\u5efa\u4e86\u4e00\u4e2a\u65b0\u5217 rank_value\uff0c\u5176\u4e2d\u5b58\u50a8\u4e86 value \u5217\u5143\u7d20\u7684\u6700\u5c0f\u6392\u540d\u3002 \u901a\u8fc7 min_rank() \u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u4e3a\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u5143\u7d20\u8ba1\u7b97\u6700\u5c0f\u6392\u540d\uff0c\u5e76\u7528\u4e8e\u5404\u79cd\u6392\u5e8f\u548c\u6392\u540d\u5206\u6790\u4efb\u52a1\u3002

"},{"location":"R/dplyr/mutate%28%29/","title":"Mutate()","text":"

\u662f R \u8bed\u8a00\u4e2d dplyr \u5305\u63d0\u4f9b\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u6570\u636e\u6846\uff08data frame\uff09\u4e2d\u521b\u5efa\u6216\u4fee\u6539\u65b0\u7684\u5217\uff08\u53d8\u91cf\uff09\u3002

mutate() \u51fd\u6570\u4f1a\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u521b\u5efa\u6216\u4fee\u6539\u540e\u7684\u5217\uff0c\u539f\u59cb\u6570\u636e\u6846\u4e0d\u4f1a\u88ab\u4fee\u6539\u3002

\u5982\u679c\u9700\u8981\u5728\u539f\u59cb\u6570\u636e\u6846\u4e0a\u8fdb\u884c\u5c31\u5730\u4fee\u6539\uff0c\u53ef\u4ee5\u4f7f\u7528\u8d4b\u503c\u64cd\u4f5c\u7b26\u3002

mutate(.data, new_column1 = expression1, new_column2 = expression2,...)\n

.data \u8868\u793a\u8981\u8fdb\u884c\u64cd\u4f5c\u7684\u6570\u636e\u6846\uff1b

new_column \u662f\u8981\u521b\u5efa\u6216\u4fee\u6539\u7684\u65b0\u5217\u7684\u540d\u79f0\uff0c\u521b\u5efa\u65b0\u5217\u540e\u4f1a\u81ea\u52a8\u6dfb\u52a0\u5230df\u6700\u540e\u4e00\u5217\uff1b

expression \u662f\u7528\u4e8e\u8ba1\u7b97\u65b0\u5217\u503c\u7684\u8868\u8fbe\u5f0f\uff1b

... \u8868\u793a\u5176\u4ed6\u8981\u521b\u5efa\u6216\u4fee\u6539\u7684\u5217\u3002

library(dplyr)\n\n# \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(Name = c(\"Alice\", \"Bob\", \"Charlie\"),\n                 Age = c(25, 30, 20),\n                 Salary = c(50000, 60000, 45000))\n\n# \u521b\u5efa\u65b0\u5217 Bonus\uff0c\u8ba1\u7b97 Salary \u7684 10% \u4f5c\u4e3a Bonus \u503c\ndf <- mutate(df, Bonus = Salary * 0.1)\n\n# \u4fee\u6539 Age \u5217\uff0c\u5c06\u5e74\u9f84\u52a0\u4e0a 1\ndf <- mutate(df, Age = Age + 1)\n\n# \u6253\u5370\u4fee\u6539\u540e\u7684\u6570\u636e\u6846\nprint(df)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u6570\u636e\u6846 df\uff0c\u5305\u542b\u4e09\u4e2a\u5217\uff08Name\u3001Age \u548c Salary\uff09\u3002\u901a\u8fc7\u8c03\u7528 mutate() \u51fd\u6570\u5e76\u4f20\u9012\u6570\u636e\u6846 df\u3001\u8981\u521b\u5efa\u7684\u65b0\u5217\u540d\u79f0 Bonus \u548c\u8ba1\u7b97\u8868\u8fbe\u5f0f Salary * 0.1 \u4f5c\u4e3a\u53c2\u6570\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a Bonus \u7684\u65b0\u5217\uff0c\u5176\u503c\u4e3a Salary \u7684 10%\u3002\u63a5\u7740\uff0c\u6211\u4eec\u518d\u6b21\u8c03\u7528 mutate() \u51fd\u6570\uff0c\u5e76\u5c06\u6570\u636e\u6846 df\u3001\u8981\u4fee\u6539\u7684\u5217\u540d Age \u548c\u8ba1\u7b97\u8868\u8fbe\u5f0f Age + 1 \u4f5c\u4e3a\u53c2\u6570\uff0c\u5c06 Age \u5217\u4e2d\u7684\u6bcf\u4e2a\u503c\u52a0\u4e0a 1\u3002\u6700\u540e\uff0c\u6211\u4eec\u901a\u8fc7\u6253\u5370\u8bed\u53e5\u8f93\u51fa\u4fee\u6539\u540e\u7684\u6570\u636e\u6846\u3002 \u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\u6240\u793a\uff1a

    Name Age Salary  Bonus\n1  Alice  26  50000  5000\n2    Bob  31  60000  6000\n3 Charlie  21  45000  4500\n

\u5728\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6570\u636e\u6846 df \u4e2d\u65b0\u589e\u4e86\u4e00\u4e2a\u540d\u4e3a Bonus \u7684\u5217\uff0c\u5b83\u7684\u503c\u662f\u6839\u636e Salary \u5217\u8ba1\u7b97\u5f97\u51fa\u7684\u3002\u540c\u65f6\uff0cAge \u5217\u7684\u503c\u4e5f\u88ab\u4fee\u6539\u4e3a\u539f\u503c\u52a0\u4e0a 1\u3002

"},{"location":"R/dplyr/mutate%28%29/#function","title":"\u5173\u4e8e\u5176\u4e2d\u7684function\u51fd\u6570","text":"

\u8fd9\u4e2a\u5c31\u53ef\u4ee5\u3002\u4e5f\u662f\u5c06x\u5f53\u4f5c\u5411\u91cf\u5904\u7406\uff01

get_one <- function(x) {\n  j <- ifelse(x == '\u8fd1\u5730\u94c1', 1, 0)\n  return(j)\n}\n\n# \u5c06\u6709\u5730\u94c1\u7684\u6570\u636e\u53d8\u4e3a0\nlj1 <- lj_group %>% \n  mutate(if_subway = get_one(near_subway))\n

\u4f46\u4e0b\u9762\u4e24\u79cd\u90fd\u4e0d\u884c\uff0c\u4e0d\u80fd\u5faa\u73af\u8fed\u4ee3\uff0c\u8bf4\u662flength(x)\u957f\u5ea6\u4e0elj_group\u7684\u957f\u5ea6\u4e0d\u7b26\u5408\uff1f\uff1f\uff1f

get_one <- function(x){\n  j <- c(0)\n  for (i in 1:length(x)){\n    if (x[i] == '\u8fd1\u5730\u94c1'){\n      j[i] <- 1\n    }else{\n      j[i] <- 0\n    } \n  }\n  return(j)\n}\n\nget_one <- function(x){\n  j <- 0\n    if (x == '\u8fd1\u5730\u94c1'){\n      j <- 1\n    }else{\n      j <- 0\n    } \n\n  return(j)\n}\n

"},{"location":"R/dplyr/n%28%29/","title":"N()","text":"

\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u6570\u636e\u6846\u4e2d\u7684\u89c2\u6d4b\u6570\u91cf\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u6574\u6570\uff0c\u8868\u793a\u7ed9\u5b9a\u6570\u636e\u6846\u4e2d\u7684\u884c\u6570\u3002 \u4ee5\u4e0b\u662fn()\u51fd\u6570\u7684\u793a\u4f8b\u7528\u6cd5\uff1a

library(dplyr)\n\ndf <- data.frame(x = c(1, 2, 3, 4, 5),\n                 y = c(\"A\", \"B\", \"C\", \"D\", \"E\"))\n\nn(df)\n

\u8f93\u51fa\uff1a

[1] 5\n

\u4e0a\u8ff0\u4ee3\u7801\u4f7f\u7528n()\u51fd\u6570\u8ba1\u7b97\u4e86\u6570\u636e\u6846df\u4e2d\u7684\u89c2\u6d4b\u6570\u91cf\uff0c\u7ed3\u679c\u4e3a5\u3002 n()\u51fd\u6570\u901a\u5e38\u4e0edplyr\u5305\u4e2d\u7684\u5176\u4ed6\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u7528\u4e8e\u6570\u636e\u5904\u7406\u548c\u7edf\u8ba1\u5206\u6790\u4e2d\u7684\u8ba1\u6570\u64cd\u4f5c\u3002

decoration <- lj %>%\n  group_by(decoration) %>%\n  summarise(sum_decoration = n())\n
\u8ba1\u7b97\u5206\u7ec4\u540e\u7684\u884c\u6570\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u5206\u7ec4\u6570\uff01

"},{"location":"R/dplyr/n_distinct%28%29/","title":"N distinct()","text":"

\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5411\u91cf\u6216\u6570\u636e\u6846\u4e2d\u7684\u552f\u4e00\u503c\u7684\u6570\u91cf\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a\u6574\u6570\uff0c\u8868\u793a\u7ed9\u5b9a\u5411\u91cf\u6216\u6570\u636e\u6846\u5217\u4e2d\u7684\u552f\u4e00\u503c\u7684\u4e2a\u6570\u3002

n_distinct(data)\n
- data\uff1a\u8981\u8ba1\u7b97\u552f\u4e00\u503c\u6570\u91cf\u7684\u5411\u91cf\u6216\u6570\u636e\u6846\u7684\u5217\u3002

  1. \u5e94\u7528\u4e8e\u5411\u91cf\uff1a
    x <- c(1, 2, 3, 2, 1, 4)\nn_distinct(x)\n
    \u8f93\u51fa\uff1a
    4\n
    \u4e0a\u8ff0\u4ee3\u7801\u8ba1\u7b97\u4e86\u5411\u91cfx\u4e2d\u7684\u552f\u4e00\u503c\u7684\u6570\u91cf\uff0c\u7ed3\u679c\u4e3a4\u3002
  2. \u5e94\u7528\u4e8e\u6570\u636e\u6846\u7684\u5217\uff1a
    df <- data.frame(x = c(1, 2, 3, 2, 1, 4), y = c(\"A\", \"B\", \"C\", \"B\", \"A\", \"D\"))\nn_distinct(df$y)\n
    \u8f93\u51fa\uff1a
    4\n
    \u4e0a\u8ff0\u4ee3\u7801\u8ba1\u7b97\u4e86\u6570\u636e\u6846df\u4e2d\u5217y\u7684\u552f\u4e00\u503c\u7684\u6570\u91cf\uff0c\u7ed3\u679c\u4e3a4\u3002 n_distinct()\u51fd\u6570\u5728\u6570\u636e\u5904\u7406\u548c\u7edf\u8ba1\u5206\u6790\u4e2d\u5e38\u7528\u4e8e\u8ba1\u7b97\u552f\u4e00\u503c\u7684\u4e2a\u6570\uff0c\u4f8b\u5982\u8ba1\u7b97\u5206\u7c7b\u53d8\u91cf\u7684\u4e0d\u540c\u7c7b\u522b\u6570\u91cf\u6216\u8ba1\u7b97\u53bb\u91cd\u540e\u7684\u89c2\u6d4b\u6570\u91cf\u3002
"},{"location":"R/dplyr/rename%28%29/","title":"Rename()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0crename() \u51fd\u6570\u6709\u4e8e\u4fee\u6539\u6570\u636e\u6846\u5217\u540d\uff0c\u7528\u65b0\u5217\u660e\u66ff\u4ee3\u65e7\u5217\u540d

\u6240\u5c5e\u5305\uff1a dplyr

\u5b9a\u4e49\uff1a

dplyr::rename(data, new_column_name = old_column_name)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - data\uff1a\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u3002 - new_column_name\uff1a\u8981\u91cd\u547d\u540d\u7684\u65b0\u5217\u540d\u3002 - old_column_name\uff1a\u8981\u88ab\u66ff\u6362\u7684\u65e7\u5217\u540d\u3002

\u529f\u80fd\uff1a \u5728\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u4e2d\uff0c\u5c06\u6307\u5b9a\u7684\u5217\u540d\u4ece\u65e7\u5217\u540d\u6539\u4e3a\u65b0\u5217\u540d\u3002

\u4e3e\u4f8b\uff1a

library(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(A = c(1, 2, 3), B = c(4, 5, 6))\n\n# \u4f7f\u7528 rename() \u91cd\u547d\u540d\u5217 B \u4e3a NewB\ndf <- rename(df, NewB = B)\n\n# \u6253\u5370\u7ed3\u679c\nprint(df)\n

\u8f93\u51fa\uff1a

  A NewB\n1 1    4\n2 2    5\n3 3    6\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0crename() \u51fd\u6570\u7528\u4e8e\u5c06\u6570\u636e\u6846 df \u4e2d\u7684\u5217 B \u91cd\u547d\u540d\u4e3a NewB\u3002

"},{"location":"R/dplyr/right_join%28%29/","title":"Right join()","text":"

\u5728\u51fd\u6570\u4e2d\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u591a\u4e2a\u53c2\u6570\u6765\u6307\u5b9a\u53f3\u8fde\u63a5\u7684\u884c\u4e3a\u3002\u4ee5\u4e0b\u662fright_join()\u51fd\u6570\u4e2d\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

right_join(x, y, by=NULL, suffix)\n
- x\u3001y\uff1a\u8981\u8fde\u63a5\u7684\u4e24\u4e2a\u6570\u636e\u6846\uff08\u6216\u6570\u636e\u8868\uff09\u3002 - by\uff1a\u6307\u5b9a\u7528\u4e8e\u8fde\u63a5\u7684\u5171\u4eab\u53d8\u91cf\u7684\u540d\u79f0\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u53d8\u91cf\u540d\u3002\u5982\u679c\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u540d\u79f0\u76f8\u540c\uff0c\u5219\u53ef\u4ee5\u7701\u7565\u6b64\u53c2\u6570\u3002 - suffix\uff1a\u6307\u5b9a\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u65f6\uff0c\u7528\u4e8e\u533a\u5206\u8fd9\u4e9b\u53d8\u91cf\u7684\u540e\u7f00\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u540e\u7f00\u4e3a \".x\" \u548c \".y\" \u7528\u4e8e\u533a\u5206\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u4e86right_join()\u51fd\u6570\u7684\u53c2\u6570\u4f7f\u7528\uff1a

library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3, 4),\n                  value1 = c(\"A\", \"B\", \"C\", \"D\"))\n\ndf2 <- data.frame(ID = c(2, 3, 5, 6),\n                  value2 = c(\"X\", \"Y\", \"Z\", \"W\"))\n\njoined_df <- right_join(df1, df2, by = \"ID\", suffix = c(\".left\", \".right\"))\n\nprint(joined_df)\n
\u8f93\u51fa\uff1a
  ID value1 value2\n1  2      B      X\n2  3      C      Y\n3  5   <NA>      Z\n4  6   <NA>      W\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u5b83\u4eec\u90fd\u5305\u542b\u4e00\u4e2a\u540d\u4e3a\"ID\"\u7684\u5171\u4eab\u53d8\u91cf\u3002\u4f7f\u7528right_join()\u51fd\u6570\uff0c\u6211\u4eec\u57fa\u4e8e\"ID\"\u5217\u5bf9\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u53f3\u8fde\u63a5\u3002suffix\u53c2\u6570\u8bbe\u7f6e\u4e3ac(\".left\", \".right\")\uff0c\u7528\u4e8e\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u7684\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002 \u53f3\u8fde\u63a5\u64cd\u4f5c\u4f1a\u4fdd\u7559\u53f3\u4fa7\u6570\u636e\u6846\uff08df2\uff09\u7684\u6240\u6709\u884c\uff0c\u5e76\u5c06\u4e0e\u5de6\u4fa7\u6570\u636e\u6846\uff08df1\uff09\u4e2d\u7684\u5339\u914d\u884c\u8fdb\u884c\u5408\u5e76\u3002\u5982\u679c\u67d0\u4e2aID\u53ea\u5728\u53f3\u4fa7\u6570\u636e\u6846\u4e2d\u51fa\u73b0\uff0c\u5219\u5de6\u4fa7\u6570\u636e\u6846\u4e2d\u5bf9\u5e94\u7684\u53d8\u91cf\u503c\u5c06\u4e3aNA\u3002 \u4e0a\u8ff0\u793a\u4f8b\u8fd8\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528suffix\u53c2\u6570\u6765\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002\u8fd9\u53ef\u4ee5\u907f\u514d\u53d8\u91cf\u540d\u51b2\u7a81\u3002

"},{"location":"R/dplyr/right_join%28%29/#suffix","title":"suffix\u53c2\u6570\u4ecb\u7ecd","text":"

\u5f53\u4f7f\u7528suffix\u53c2\u6570\u65f6\uff0c\u5b83\u7528\u4e8e\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u65f6\uff0c\u4e3a\u8fd9\u4e9b\u53d8\u91cf\u6dfb\u52a0\u540e\u7f00\u4ee5\u8fdb\u884c\u533a\u5206\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528suffix\u53c2\u6570\u7684\u793a\u4f8b\uff1a

library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3),\n                  value = c(\"A\", \"B\", \"C\"),\n                  other = c(\"X\", \"Y\", \"Z\"))\n\ndf2 <- data.frame(ID = c(2, 3, 4),\n                  value = c(\"D\", \"E\", \"F\"),\n                  other = c(\"W\", \"X\", \"Y\"))\n\njoined_df <- full_join(df1, df2, by = \"ID\", suffix = c(\".df1\", \".df2\"))\n\nprint(joined_df)\n

\u8f93\u51fa\uff1a

  ID value.df1 other.df1 value.df2 other.df2\n1  1         A         X      <NA>      <NA>\n2  2         B         Y         D         W\n3  3         C         Z         E         X\n4  4      <NA>      <NA>         F         Y\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u5b83\u4eec\u90fd\u5305\u542b\u4e00\u4e2a\u540d\u4e3a\"ID\"\u7684\u5171\u4eab\u53d8\u91cf\uff0c\u4ee5\u53ca\u5176\u4ed6\u53d8\u91cf\u3002\u4f7f\u7528full_join()\u51fd\u6570\uff0c\u6211\u4eec\u57fa\u4e8e\"ID\"\u5217\u5bf9\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u5168\u8fde\u63a5\u3002suffix\u53c2\u6570\u8bbe\u7f6e\u4e3ac(\".df1\", \".df2\")\uff0c\u7528\u4e8e\u533a\u5206\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u5b58\u5728\u7684\u540c\u540d\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\u3002

\u7ed3\u679c\u6570\u636e\u6846joined_df\u4e2d\uff0c\u6765\u81eadf1\u7684\u53d8\u91cf\"ID\"\u3001\"value\"\u548c\"other\"\u88ab\u4fdd\u7559\uff0c\u5e76\u5728\u53d8\u91cf\u540d\u79f0\u540e\u6dfb\u52a0\u4e86.df1\u7684\u540e\u7f00\u3002\u540c\u6837\uff0c\u6765\u81eadf2\u7684\u53d8\u91cf\"ID\"\u3001\"value\"\u548c\"other\"\u4e5f\u88ab\u4fdd\u7559\uff0c\u5e76\u5728\u53d8\u91cf\u540d\u79f0\u540e\u6dfb\u52a0\u4e86.df2\u7684\u540e\u7f00\u3002

\u4f7f\u7528suffix\u53c2\u6570\u80fd\u591f\u533a\u5206\u5177\u6709\u76f8\u540c\u540d\u79f0\u4f46\u4e0d\u76f8\u7b49\u7684\u53d8\u91cf\uff0c\u907f\u514d\u4e86\u53d8\u91cf\u540d\u51b2\u7a81\u3002

\u5e0c\u671b\u8fd9\u4e2a\u793a\u4f8b\u5bf9\u60a8\u6709\u5e2e\u52a9\u3002\u5982\u679c\u60a8\u8fd8\u6709\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/dplyr/sample_frac%28%29/","title":"Sample frac()","text":"

\u5728dplyr\u5305\u4e2d\uff0c \u4ece\u6570\u636e\u96c6\u4e2d\u968f\u673a\u62bd\u53d6\u6307\u5b9a\u6bd4\u4f8b\u7684\u89c2\u5bdf\u503c\u3002

sample_frac(data, size, replace = FALSE, weight = NULL)\n
\u53c2\u6570\u8bf4\u660e: - data: \u8f93\u5165\u7684\u6570\u636e\u96c6\u3002 - size: \u9700\u8981\u62bd\u6837\u7684\u89c2\u5bdf\u503c\u6bd4\u4f8b\uff0c\u53d6\u503c\u8303\u56f4\u4e3a0\u52301\u4e4b\u95f4\u3002 - replace: \u662f\u5426\u8fdb\u884c\u6709\u653e\u56de\u62bd\u6837\uff0c\u5982\u679c\u4e3aTRUE\uff0c\u5219\u5141\u8bb8\u91cd\u590d\u62bd\u53d6\u540c\u4e00\u4e2a\u89c2\u5bdf\u503c\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u4e0d\u5141\u8bb8\u91cd\u590d\u62bd\u53d6\u540c\u4e00\u4e2a\u89c2\u5bdf\u503c\uff0c\u9ed8\u8ba4\u4e3aFALSE\u3002 - weight: \u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u4e2a\u89c2\u5bdf\u503c\u7684\u62bd\u6837\u6743\u91cd\uff0c\u5373\u6bcf\u4e2a\u89c2\u5bdf\u503c\u88ab\u62bd\u53d6\u7684\u6982\u7387\u3002 \u793a\u4f8b\u7528\u6cd5:
library(dplyr)\n\n# \u4ecemtcars\u6570\u636e\u96c6\u4e2d\u968f\u673a\u62bd\u53d630%\u7684\u89c2\u5bdf\u503c\nsample_frac(mtcars, 0.3)\n

\u4e0a\u8ff0\u793a\u4f8b\u5c55\u793a\u4e86\u5982\u4f55\u5728dplyr\u5305\u4e2d\u4f7f\u7528sample_n()\u548csample_frac()\u51fd\u6570\u8fdb\u884c\u62bd\u6837\u64cd\u4f5c\u3002\u6839\u636e\u5177\u4f53\u7684\u9700\u6c42\uff0c\u53ef\u4ee5\u6839\u636e\u6570\u636e\u96c6\u7684\u5927\u5c0f\u548c\u62bd\u6837\u6bd4\u4f8b\u6765\u8c03\u6574\u62bd\u6837\u51fd\u6570\u7684\u53c2\u6570\u3002

"},{"location":"R/dplyr/sample_n%28%29/","title":"Sample n()","text":"

\u7528\u4e8e\u4ece\u6570\u636e\u96c6\u4e2d\u968f\u673a\u62bd\u53d6\u89c2\u5bdf\u503c\u3002 1. sample_n(): \u4ece\u6570\u636e\u96c6\u4e2d\u968f\u673a\u62bd\u53d6\u6307\u5b9a\u6570\u91cf\u7684\u89c2\u5bdf\u503c\u3002 \u8bed\u6cd5:

sample_n(data, size, replace = FALSE, weight = NULL)\n
\u53c2\u6570\u8bf4\u660e: - data: \u8f93\u5165\u7684\u6570\u636e\u96c6\u3002 - size: \u9700\u8981\u62bd\u6837\u7684\u89c2\u5bdf\u503c\u6570\u91cf\u3002 - replace: \u662f\u5426\u8fdb\u884c\u6709\u653e\u56de\u62bd\u6837\uff0c\u5982\u679c\u4e3aTRUE\uff0c\u5219\u5141\u8bb8\u91cd\u590d\u62bd\u53d6\u540c\u4e00\u4e2a\u89c2\u5bdf\u503c\uff1b\u5982\u679c\u4e3aFALSE\uff0c\u5219\u4e0d\u5141\u8bb8\u91cd\u590d\u62bd\u53d6\u540c\u4e00\u4e2a\u89c2\u5bdf\u503c\uff0c\u9ed8\u8ba4\u4e3aFALSE\u3002 - weight: \u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u4e2a\u89c2\u5bdf\u503c\u7684\u62bd\u6837\u6743\u91cd\uff0c\u5373\u6bcf\u4e2a\u89c2\u5bdf\u503c\u88ab\u62bd\u53d6\u7684\u6982\u7387\u3002

\u793a\u4f8b\u7528\u6cd5:

library(dplyr)\n\n# \u4ecemtcars\u6570\u636e\u96c6\u4e2d\u968f\u673a\u62bd\u53d65\u4e2a\u89c2\u5bdf\u503c\nsample_n(mtcars, 5)\n

"},{"location":"R/dplyr/select%28%29/","title":"Select()","text":"

\u662f R \u8bed\u8a00\u4e2d dplyr \u5305\u63d0\u4f9b\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u9009\u62e9\uff08\u63d0\u53d6\uff09 \u6570\u636e\u6846\uff08data frame\uff09\u4e2d\u7684\u7279\u5b9a\u5217\uff08\u53d8\u91cf\uff09\u3002

select() \u51fd\u6570\u4f1a\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u53ea\u5305\u542b\u9009\u62e9\u7684\u5217\u3002\u539f\u59cb\u6570\u636e\u6846\u4e0d\u4f1a\u88ab\u4fee\u6539\u3002\u5982\u679c\u9700\u8981\u5728\u539f\u59cb\u6570\u636e\u6846\u4e0a\u8fdb\u884c\u5c31\u5730\u4fee\u6539\uff0c\u53ef\u4ee5\u4f7f\u7528\u8d4b\u503c\u64cd\u4f5c\u7b26\uff08\u4f8b\u5982\uff0cdf <- select(df, Name, Salary)\uff09\u3002

select(.data,...)\n

.data \u8868\u793a\u8981\u9009\u62e9\u5217\u7684\u6570\u636e\u6846\uff1b

  • ...: \u8981\u9009\u62e9\u6216\u6392\u9664\u7684\u5217\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u65b9\u5f0f\u6765\u6307\u5b9a\u5217\uff1a

    \u4f7f\u7528\u6307\u5b9a\u5217\u540d\uff1aselect(data, col1, col2, col3)\uff0c\u5176\u4e2dcol1\u3001col2\u548ccol3\u662f\u6570\u636e\u6846\u4e2d\u7684\u5217\u540d\u3002

    \u4f7f\u7528\u5192\u53f7\uff08:\uff09\u8303\u56f4\u63cf\u8ff0\u7b26\uff1aselect(data, col1:col3)\uff0c\u9009\u62e9\u4ececol1\u5230col3\u4e4b\u95f4\u7684\u6240\u6709\u5217\u3002 \u8981\u786e\u4fdd\u662f\u6839\u636e\u539f\u8868\u4e2d\u5217\u6807\u9898\u5934\u7684\u987a\u5e8f\u6765\u7684\uff0c\u5426\u5219\u4f1a\u51fa\u73b0\u95ee\u9898\uff01\u5982\u679c\u662fcol2 col3 col1 \u7684\u987a\u5e8f\uff0c\u5b9e\u9645col1:col3\u53ea\u4f1a\u5339\u914d\u51facol1\u548ccol3\u5b57\u6bb5\uff01

    \u4f7f\u7528\u51cf\u53f7\uff08-\uff09\u7ec4\u5408\uff1aselect(data, col1, -col2)\uff0c\u9009\u62e9col1\u5217\u5e76\u6392\u9664col2\u5217\u3002 select\u63d0\u53d6\u7684\u903b\u8f91\u3002\u7b2c\u4e00\u6b65\u4e3adf1=data\uff1b\u5176\u540e\u6709\u6307\u5b9a\u5217\uff0c\u8fdb\u4e00\u6b65\u63d0\u53d6df1\u5f62\u6210df2\u3002\u65e0\uff0c\u5219df2=df1\uff1b-col* \u6392\u9664\u5217\uff0c\u57fa\u4e8edf2\u4e0a\u6392\u9664col* \u5217\uff0c\u5f62\u6210df3\u3002 \u6240\u4ee5select(data, col1, -col2)\u7ed3\u679c\u662f\uff1f\u662fcol1\u3002

  • \u6307\u5b9a\u524d\u7f00\u6216\u540e\u7f00\uff1astarts_with()\uff0c\u9009\u62e9\u4ee5\u6307\u5b9a\u524d\u7f00\u5f00\u5934\u7684\u5217\uff1bends_with()\uff0c\u9009\u62e9\u4ee5\u6307\u5b9a\u540e\u7f00\u5f00\u5934\u7684\u5217\uff1bcontains()\uff0c\u9009\u62e9\u5305\u542b\u5173\u952e\u5b57\u7684\u5217\u5b57\u6bb5\u540d\uff1bmatches()\uff0c\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u3002

  • \u4f7f\u7528one_of()\uff1aselect(data, one_of(c(\"col1\", \"col2\", \"col3\")))\uff0c\u9009\u62e9\u5728\u6307\u5b9a\u5411\u91cf\u4e2d\u7684\u5217\u3002

# \u9009\u62e9\u7279\u5b9a\u5217\nselected_cols <- select(data, col1, col2, col3)\n\n# \u9009\u62e9\u8303\u56f4\u5185\u7684\u5217\nselected_cols <- select(data, col1:col3)\n\n# \u6392\u9664\u7279\u5b9a\u5217col2\uff0c\u5176\u4ed6\u5217\u90fd\u9009\u4e0a\nselected_cols <- select(data, -col2)\n\n# \u4f7f\u7528\u51fd\u6570\u9009\u62e9\u7279\u5b9a\u524d\u7f00\u7684\u5217\nselected_cols <- select(data, starts_with(\"prefix\"))\n\n# \u4f7f\u7528one_of\u9009\u62e9\u5217\nselected_cols <- select(data, one_of(c(\"col1\", \"col2\", \"col3\")))\n
"},{"location":"R/dplyr/select%28%29/#everything","title":"everything()\u9700\u8981\u6839\u636e\u4f7f\u7528\u573a\u666f\u8fdb\u4e00\u6b65\u5b8c\u5584","text":"

everything()\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u9009\u62e9\u6216\u6392\u9664\u7279\u5b9a\u5217\u7684\u540c\u65f6\uff0c\u4ecd\u4fdd\u7559\u5176\u4ed6\u6240\u6709\u5217\u3002

1\uff0c\u5c06\u6307\u5b9a\u5217\u524d\u7f6e\uff1a\u5c06col3\u5217\u53d6\u51fa\u524d\u7f6e\uff0c\u5269\u4f59\u7684\u5176\u4ed6\u5217\u6392\u5728\u540e\u9762

selected_cols <- select(data, col3, everything())\n

2\uff0c \u9009\u62e9\u9664\u7279\u5b9a\u5217\u5916\u7684\u6240\u6709\u5217\uff1a

selected_cols <- select(data, -col1, -col2, everything())\n

\u4e0a\u8ff0\u4ee3\u7801\u5c06\u9009\u62e9\u9664col1\u548ccol2\u4e4b\u5916\u7684\u6240\u6709\u5217\u3002\u8fd9\u91cc\u611f\u89c9\u591a\u6b64\u4e00\u4e3e\uff0c\u4f46\u5728\u5176\u4ed6\u7684\u60c5\u51b5\u4e0b\u5e94\u8be5\u6709\u7528\uff0c\u5982\u5728\u4e0d\u9002\u7528select\u7684\u60c5\u51b5\u4e0b\uff0c\u5254\u9664\u67d0\u4e9b\u5217\uff0c\u5bf9\u6307\u5b9a\u5217\u8fdb\u884c\u64cd\u4f5c\uff1f

"},{"location":"R/dplyr/select%28%29/#one_of","title":"[[one_of()]] \u51fd\u6570\uff0c\u5f85\u5b8c\u5584","text":"

\u5176\u529f\u80fd\u6709\u4e9b\u4e0d\u660e\u786e\u3002

\u5047\u8bbe\u6709\u4e00\u4e2a\u5305\u542b\u4ee5\u4e0b\u5217\u7684\u6570\u636e\u6846data\uff1a

data <- data.frame(\n  col1 = 1:5,\n  col2 = letters[1:5],\n  col3 = LETTERS[1:5],\n  col4 = c(TRUE, FALSE, TRUE, FALSE, TRUE),\n  col5 = 11:15\n)\n
1. \u9009\u62e9\u7279\u5b9a\u5217\uff1a \u5047\u8bbe\u6211\u4eec\u60f3\u9009\u62e9col2\u548ccol4\u5217\uff0c\u53ef\u4ee5\u4f7f\u7528one_of()\u51fd\u6570\u5982\u4e0b\uff1a
selected_cols <- select(data, one_of(c(\"col2\", \"col4\")))\n
\u8fd9\u5c06\u9009\u62e9\u6570\u636e\u6846data\u4e2d\u5217\u540d\u4e3acol2\u548ccol4\u7684\u5217\u3002

"},{"location":"R/dplyr/select%28%29/#contain-r","title":"contain()\u51fd\u6570\u6269\u5c55-R\u4e2d\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u7b26\u53f7","text":"

\u5728R\u4e2d\uff0c\u6b63\u5219\u8868\u8fbe\u5f0f\u662f\u4e00\u79cd\u7528\u4e8e\u5339\u914d\u548c\u64cd\u4f5c\u6587\u672c\u6a21\u5f0f\u7684\u5f3a\u5927\u5de5\u5177\u3002\u6b63\u5219\u8868\u8fbe\u5f0f\u7531\u4e00\u7cfb\u5217\u5b57\u7b26\u548c\u7279\u6b8a\u7b26\u53f7\u7ec4\u6210\uff0c\u7528\u4e8e\u5b9a\u4e49\u6a21\u5f0f\u3002

  1. .\uff1a\u5339\u914d\u4efb\u610f\u5b57\u7b26\uff08\u9664\u4e86\u6362\u884c\u7b26\uff09\u3002
  2. ^\uff1a\u5339\u914d\u5b57\u7b26\u4e32\u7684\u5f00\u5934\u3002
  3. $\uff1a\u5339\u914d\u5b57\u7b26\u4e32\u7684\u7ed3\u5c3e\u3002
  4. *\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u96f6\u6b21\u6216\u591a\u6b21\u3002
  5. +\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u4e00\u6b21\u6216\u591a\u6b21\u3002
  6. ?\uff1a\u5339\u914d\u524d\u9762\u7684\u5143\u7d20\u96f6\u6b21\u6216\u4e00\u6b21\u3002
  7. []\uff1a\u5339\u914d\u62ec\u53f7\u5185\u7684\u4efb\u610f\u5b57\u7b26\u3002
  8. ()\uff1a\u521b\u5efa\u6355\u83b7\u7ec4\uff0c\u7528\u4e8e\u63d0\u53d6\u5339\u914d\u7684\u5b50\u5b57\u7b26\u4e32\u3002
  9. |\uff1a\u8868\u793a\u903b\u8f91\u6216\uff0c\u5339\u914d\u4e24\u4e2a\u6216\u591a\u4e2a\u6a21\u5f0f\u4e4b\u4e00\u3002
  10. \\\uff1a\u8f6c\u4e49\u5b57\u7b26\uff0c\u7528\u4e8e\u8f6c\u4e49\u7279\u6b8a\u5b57\u7b26\uff0c\u4f7f\u5176\u5931\u53bb\u5176\u7279\u6b8a\u542b\u4e49\u3002

\u4e0b\u9762\u662f\u4e00\u4e9b\u6848\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u5728\u5b9e\u9645\u60c5\u51b5\u4e2d\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\uff1a

  1. \u7535\u8bdd\u53f7\u7801\u63d0\u53d6\uff1a

\u5047\u8bbe\u60a8\u6709\u4e00\u4e2a\u5305\u542b\u6587\u672c\u7684\u5b57\u7b26\u4e32\uff0c\u5176\u4e2d\u5305\u542b\u7535\u8bdd\u53f7\u7801\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u6765\u63d0\u53d6\u8fd9\u4e9b\u7535\u8bdd\u53f7\u7801\u3002\u4f8b\u5982\uff1a

text <- \"\u8bf7\u8054\u7cfb\u6211\uff1a\u7535\u8bdd\u53f7\u7801\u662f\uff1a+1-123-456-7890\u3002\"\nphone_numbers <- gregexpr(\"\\\\+\\\\d{1}-\\\\d{3}-\\\\d{3}-\\\\d{4}\", text, perl = TRUE)\nextracted_numbers <- regmatches(text, phone_numbers)\nprint(extracted_numbers)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] \"+1-123-456-7890\"\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f \\\\+\\\\d{1}-\\\\d{3}-\\\\d{3}-\\\\d{4} \u6765\u5339\u914d\u7535\u8bdd\u53f7\u7801\u7684\u6a21\u5f0f\u3002\u7136\u540e\uff0c\u4f7f\u7528 gregexpr() \u51fd\u6570\u627e\u5230\u5b57\u7b26\u4e32\u4e2d\u5339\u914d\u7684\u4f4d\u7f6e\uff0c\u5e76\u4f7f\u7528 regmatches() \u51fd\u6570\u63d0\u53d6\u5339\u914d\u7684\u5b50\u5b57\u7b26\u4e32\u3002

  1. \u90ae\u7bb1\u5730\u5740\u9a8c\u8bc1\uff1a

\u5047\u8bbe\u60a8\u6709\u4e00\u4e2a\u5305\u542b\u591a\u4e2a\u90ae\u7bb1\u5730\u5740\u7684\u5411\u91cf\uff0c\u60a8\u60f3\u8981\u9a8c\u8bc1\u8fd9\u4e9b\u90ae\u7bb1\u5730\u5740\u662f\u5426\u6709\u6548\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u6765\u68c0\u67e5\u90ae\u7bb1\u5730\u5740\u7684\u683c\u5f0f\u3002\u4f8b\u5982\uff1a

emails <- c(\"example@example.com\", \"invalid_email\", \"another@example.com\")\nvalid_emails <- grep(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\", emails, value = TRUE)\nprint(valid_emails)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

[1] \"example@example.com\"   \"another@example.com\"\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$ \u6765\u9a8c\u8bc1\u90ae\u7bb1\u5730\u5740\u7684\u683c\u5f0f\u3002\u4f7f\u7528 grep() \u51fd\u6570\u548c\u53c2\u6570 value = TRUE\uff0c\u6211\u4eec\u53ef\u4ee5\u627e\u5230\u7b26\u5408\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u7684\u6709\u6548\u90ae\u7bb1\u5730\u5740\u3002

"},{"location":"R/dplyr/select_if%28%29/","title":"Select if()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cselect_if() \u51fd\u6570\u7528\u4e8e\u9009\u62e9\u6570\u636e\u6846\u4e2d\u6ee1\u8db3\u7279\u5b9a\u6761\u4ef6\u7684\u5217\u3002\u5b83\u5141\u8bb8\u4f60\u6839\u636e\u81ea\u5b9a\u4e49\u7684\u6761\u4ef6\u8868\u8fbe\u5f0f\u6765\u9009\u62e9\u5217\u3002\u4e0b\u9762\u662f\u5bf9 select_if() \u51fd\u6570\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a \u51fd\u6570\u8bed\u6cd5\uff1a

select_if(.data, .predicate, ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a \u4ee5\u4e0b\u662f select_if() \u51fd\u6570\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570\uff0c\u5177\u4f53\u8bf4\u660e\u5982\u4e0b\uff1a

  • .data\uff1a\u8981\u9009\u62e9\u5217\u7684\u6570\u636e\u6846\u3002
  • .predicate\uff1a\u4e00\u4e2a\u903b\u8f91\u6761\u4ef6\uff0c\u7528\u4e8e\u9009\u62e9\u5217\u3002\u53ef\u4ee5\u662f\u51fd\u6570\u3001\u8c13\u8bcd\u51fd\u6570\uff08\u8fd4\u56de\u903b\u8f91\u503c\u7684\u51fd\u6570\uff09\u6216\u5217\u9009\u62e9\u516c\u5f0f\u3002
  • ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u5b9a\u5236\u9009\u62e9\u64cd\u4f5c\u7684\u884c\u4e3a\u3002 \u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 select_if() \u51fd\u6570\u9009\u62e9\u5217\u7684\u793a\u4f8b\uff1a
  • \u6839\u636e\u6570\u636e\u7c7b\u578b\u9009\u62e9\u5217\uff1a

    # \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3),\n  y = c(\"a\", \"b\", \"c\"),\n  z = c(TRUE, FALSE, TRUE)\n)\n\n# \u6839\u636e\u6570\u636e\u7c7b\u578b\u9009\u62e9\u5217\nlibrary(dplyr)\nselected_cols <- select_if(data, is.numeric)\n\nselected_cols\n
    \u8f93\u51fa\uff1a
      x\n1 1\n2 2\n3 3\n
    \u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 select_if() \u51fd\u6570\u548c is.numeric \u51fd\u6570\u4f5c\u4e3a\u6761\u4ef6\u6765\u9009\u62e9\u6570\u636e\u6846\u4e2d\u7684\u6570\u503c\u5217\u3002\u7ed3\u679c\u53ea\u8fd4\u56de\u4e86 x \u5217\uff0c\u56e0\u4e3a\u5b83\u662f\u6570\u503c\u7c7b\u578b\u7684\u5217\u3002

  • \u6839\u636e\u81ea\u5b9a\u4e49\u6761\u4ef6\u9009\u62e9\u5217\uff1a

    # \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3),\n  y = c(\"a\", \"b\", \"c\"),\n  z = c(TRUE, FALSE, TRUE)\n)\n\n# \u6839\u636e\u81ea\u5b9a\u4e49\u6761\u4ef6\u9009\u62e9\u5217\nlibrary(dplyr)\nselected_cols <- select_if(data, function(col) {\n  any(col > 1)\n})\n\nselected_cols\n
    \u8f93\u51fa\uff1a
      x\n1 1\n2 2\n3 3\n
    \u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 select_if() \u51fd\u6570\u548c\u81ea\u5b9a\u4e49\u7684\u6761\u4ef6\u51fd\u6570\u6765\u9009\u62e9\u6570\u636e\u6846\u4e2d\u6ee1\u8db3\u4efb\u610f\u503c\u5927\u4e8e 1 \u7684\u5217\u3002\u7531\u4e8e x \u5217\u6ee1\u8db3\u8fd9\u4e2a\u6761\u4ef6\uff0c\u6240\u4ee5\u5b83\u88ab\u9009\u62e9\u4e86\u3002

  • \u4f7f\u7528\u5217\u9009\u62e9\u516c\u5f0f\u9009\u62e9\u5217\uff1a

    # \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3),\n  y = c(\"a\", \"b\", \"c\"),\n  z = c(TRUE, FALSE, TRUE)\n)\n\n# \u4f7f\u7528\u5217\u9009\u62e9\u516c\u5f0f\u9009\u62e9\u5217\nlibrary(dplyr)\nselected_cols <- select_if(data, ~is.factor(.))\n\nselected_cols\n
    \u8f93\u51fa\uff1a
      y\n1 a\n2 b\n3 c\n
    \u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 select_if() \u51fd\u6570\u548c\u5217\u9009\u62e9\u516c\u5f0f ~is.factor(.) \u6765\u9009\u62e9\u6570\u636e\u6846\u4e2d\u7684\u56e0\u5b50\u7c7b\u578b\u7684\u5217\u3002\u7ed3\u679c\u53ea\u8fd4\u56de\u4e86 y \u5217\uff0c\u56e0\u4e3a\u5b83\u662f\u56e0\u5b50\u7c7b\u578b\u7684\u5217\u3002 \u901a\u8fc7\u4f7f\u7528\u9002\u5f53\u7684\u6761\u4ef6\u8868\u8fbe\u5f0f\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u4f7f\u7528 select_if() \u51fd\u6570\u9009\u62e9\u6570\u636e\u6846\u4e2d\u7684\u5217\u3002

"},{"location":"R/dplyr/semi_join%28%29/","title":"Semi join()","text":"

\u60a8\u53ef\u4ee5\u4f7f\u7528\u591a\u4e2a\u53c2\u6570\u6765\u6307\u5b9a\u534a\u8fde\u63a5\u7684\u884c\u4e3a\u3002\u4ee5\u4e0b\u662fsemi_join()\u51fd\u6570\u4e2d\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

semi_join(x, y, by=NULL)\n
- x\u3001y\uff1a\u8981\u8fde\u63a5\u7684\u4e24\u4e2a\u6570\u636e\u6846\uff08\u6216\u6570\u636e\u8868\uff09\u3002 - by\uff1a\u6307\u5b9a\u7528\u4e8e\u8fde\u63a5\u7684\u5171\u4eab\u53d8\u91cf\u7684\u540d\u79f0\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u53d8\u91cf\u540d\u3002\u5982\u679c\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u7684\u53d8\u91cf\u540d\u79f0\u76f8\u540c\uff0c\u5219\u53ef\u4ee5\u7701\u7565\u6b64\u53c2\u6570\uff0c\u9ed8\u8ba4NULL\u3002

library(dplyr)\n\ndf1 <- data.frame(ID = c(1, 2, 3, 4),\n                  value1 = c(\"A\", \"B\", \"C\", \"D\"))\n\ndf2 <- data.frame(ID = c(2, 3, 5, 6),\n                  value2 = c(\"X\", \"Y\", \"Z\", \"W\"))\n\nsemi_joined_df <- semi_join(df1, df2, by = \"ID\")\n\nprint(semi_joined_df)\n

\u8f93\u51fa\uff1a

  ID value1\n1  2      B\n2  3      C\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u6570\u636e\u6846\uff1adf1\u548cdf2\u3002\u5b83\u4eec\u90fd\u5305\u542b\u4e00\u4e2a\u540d\u4e3a\"ID\"\u7684\u5171\u4eab\u53d8\u91cf\u3002\u4f7f\u7528semi_join()\u51fd\u6570\uff0c\u6211\u4eec\u57fa\u4e8e\"ID\"\u5217\u5bf9\u4e24\u4e2a\u6570\u636e\u6846\u8fdb\u884c\u534a\u8fde\u63a5\u3002 \u534a\u8fde\u63a5\u64cd\u4f5c\u4f1a\u4fdd\u7559\u5de6\u4fa7\u6570\u636e\u6846\uff08df1\uff09\u4e2d\u4e0e\u53f3\u4fa7\u6570\u636e\u6846\uff08df2\uff09\u4e2d\u5339\u914d\u884c\u7684\u6570\u636e\uff0c\u5e76\u4e14\u53ea\u8fd4\u56de\u5de6\u4fa7\u6570\u636e\u6846\u4e2d\u7684\u6240\u6709\u5217\u3002\u5982\u679c\u67d0\u4e2aID\u5728\u53f3\u4fa7\u6570\u636e\u6846\u4e2d\u4e0d\u5b58\u5728\uff0c\u5219\u5bf9\u5e94\u7684\u884c\u5c06\u88ab\u8fc7\u6ee4\u6389\u3002 \u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u53ea\u6709ID\u4e3a2\u548c3\u7684\u884c\u5728\u4e24\u4e2a\u6570\u636e\u6846\u4e2d\u90fd\u6709\u5339\u914d\uff0c\u56e0\u6b64\u53ea\u6709\u8fd9\u4e9b\u884c\u88ab\u4fdd\u7559\u5728\u7ed3\u679c\u6570\u636e\u6846semi_joined_df\u4e2d\u3002

"},{"location":"R/dplyr/semi_join%28%29/#_1","title":"\u534a\u8fde\u63a5\u548c\u5de6\u8fde\u63a5\u7684\u533a\u522b","text":"

\u534a\u8fde\u63a5\uff08semi-join\uff09\u548c\u5de6\u8fde\u63a5\uff08left join\uff09\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u7684\u4e24\u79cd\u8fde\u63a5\u64cd\u4f5c\uff0c\u7528\u4e8e\u5c06\u4e24\u4e2a\u8868\u683c\u6309\u7167\u6307\u5b9a\u7684\u6761\u4ef6\u8fdb\u884c\u5173\u8054\u3002\u5b83\u4eec\u4e4b\u95f4\u7684\u533a\u522b\u5728\u4e8e\u8fd4\u56de\u7684\u7ed3\u679c\u96c6\u7684\u4e0d\u540c\u3002

  • \u5de6\u8fde\u63a5\uff08left join\uff09\uff1a\u5de6\u8fde\u63a5\u8fd4\u56de\u7684\u7ed3\u679c\u96c6\u5305\u542b\u5de6\u4fa7\u8868\u683c\u7684\u6240\u6709\u884c\uff0c\u5e76\u5c06\u53f3\u4fa7\u8868\u683c\u4e2d\u6ee1\u8db3\u8fde\u63a5\u6761\u4ef6\u7684\u5339\u914d\u884c\u5408\u5e76\u5230\u7ed3\u679c\u4e2d\u3002\u5982\u679c\u53f3\u4fa7\u8868\u683c\u4e2d\u6ca1\u6709\u4e0e\u5de6\u4fa7\u8868\u683c\u5339\u914d\u7684\u884c\uff0c\u76f8\u5e94\u4f4d\u7f6e\u4e0a\u7684\u503c\u5c06\u663e\u793a\u4e3a NULL \u6216\u7f3a\u5931\u503c\u3002\u5de6\u8fde\u63a5\u4fdd\u7559\u4e86\u5de6\u4fa7\u8868\u683c\u7684\u6240\u6709\u884c\uff0c\u65e0\u8bba\u662f\u5426\u5b58\u5728\u5339\u914d\u3002

  • \u534a\u8fde\u63a5\uff08semi-join\uff09\uff1a\u534a\u8fde\u63a5\u64cd\u4f5c\u8fd4\u56de\u7684\u7ed3\u679c\u96c6\u53ea\u5305\u542b\u5de6\u4fa7\u8868\u683c\u4e2d\u6ee1\u8db3\u8fde\u63a5\u6761\u4ef6\u7684\u884c\uff0c\u5e76\u4e14\u4e0d\u4f1a\u8fd4\u56de\u53f3\u4fa7\u8868\u683c\u7684\u4efb\u4f55\u6570\u636e\u3002\u5b83\u53ea\u5173\u5fc3\u5de6\u4fa7\u8868\u683c\u4e2d\u7684\u5339\u914d\u884c\u662f\u5426\u5b58\u5728\u4e8e\u53f3\u4fa7\u8868\u683c\u4e2d\uff0c\u800c\u4e0d\u5173\u5fc3\u53f3\u4fa7\u8868\u683c\u4e2d\u7684\u5177\u4f53\u503c\u3002\u5982\u679c\u5de6\u4fa7\u8868\u683c\u4e2d\u7684\u67d0\u4e2a\u952e\u503c\u5728\u53f3\u4fa7\u8868\u683c\u4e2d\u5b58\u5728\u81f3\u5c11\u4e00\u6b21\u5339\u914d\uff0c\u5219\u8be5\u884c\u5c06\u5305\u542b\u5728\u7ed3\u679c\u96c6\u4e2d\u3002

"},{"location":"R/dplyr/semi_join%28%29/#_2","title":"\u7b5b\u9009\u4e3b\u952e\u7684\u65b9\u5f0f","text":"

\u4ee3\u7801\u8fd8\u662f\u6709\u4e9b\u95ee\u9898\uff0c\u7279\u522b\u662fcount()\u7684\u4f7f\u7528\u3002

- \u7b5b\u9009\u975e\u4e3b\u952e\u4fe1\u606f\ndata %>% \n  group_by(col1, col2) %>% \n  count() %>% \n  filter(n >= 2) %>% \n  semi_join(data, by = 'ID')\n\n-- \u7b5b\u9009\u4e3b\u952e\u4fe1\u606f\ndata %>% \n  group_by(col1, col2) %>% \n  count() %>% \n  filter(n >= 2) %>% \n  anti_join(data, by = 'ID')\n
"},{"location":"R/dplyr/slice_max%28%29/","title":"Slice max()","text":"

\u5728 R \u8bed\u8a00\u7684 dplyr \u5305\u4e2d\uff0cslice_max() \u51fd\u6570\u7528\u4e8e\u6839\u636e\u6307\u5b9a\u7684\u53d8\u91cf\uff0c\u4fdd\u7559\u5177\u6709\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u6570\u636e\u6846\u7684\u7b5b\u9009\u548c\u5b50\u96c6\u9009\u62e9\u3002\u4e0b\u9762\u662f\u5bf9 slice_max() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

slice_max(.data, ..., n = 1, with_ties = FALSE, order_by = NULL)\n\n# \u6216\u8005\u4f7f\u7528\u7ba1\u9053\u64cd\u4f5c\u7b26 %>%\n.data %>% slice_max(..., n = 1, with_ties = FALSE, order_by = NULL)\n

\u53c2\u6570\u8bf4\u660e\uff1a - .data\uff1a\u8981\u64cd\u4f5c\u7684\u6570\u636e\u6846\u3002

  • ...\uff1a\u4e00\u4e2a\u6216\u591a\u4e2a\u8981\u6bd4\u8f83\u7684\u53d8\u91cf\uff0c\u53ef\u4ee5\u662f\u53d8\u91cf\u540d\u3001\u4f4d\u7f6e\u7d22\u5f15\u6216 vars() \u5bf9\u8c61\u3002

  • n\uff1a\u8981\u4fdd\u7559\u7684\u5177\u6709\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\u6570\u91cf\u3002\u9ed8\u8ba4\u4e3a 1\uff0c\u8868\u793a\u53ea\u4fdd\u7559\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\u3002

  • with_ties\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u4fdd\u7559\u5177\u6709\u76f8\u540c\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\u3002\u9ed8\u8ba4\u4e3a FALSE

  • order_by\uff1a\u4e00\u4e2a\u53ef\u9009\u7684\u53d8\u91cf\u6216\u8868\u8fbe\u5f0f\uff0c\u7528\u4e8e\u6307\u5b9a\u89c2\u6d4b\u884c\u7684\u6392\u5e8f\u987a\u5e8f\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u4e0d\u8fdb\u884c\u6392\u5e8f\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5305\u542b\u5177\u6709\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 slice_max() \u51fd\u6570\u6839\u636e\u53d8\u91cf\u4fdd\u7559\u5177\u6709\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\u7684\u793a\u4f8b\uff1a

library(dplyr)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(\n  ID = c(1, 2, 3, 4, 5),\n  Name = c(\"Alice\", \"Bob\", \"Charlie\", \"David\", \"Eve\"),\n  Age = c(25, 30, 35, 30, 40),\n  Salary = c(50000, 60000, 70000, 65000, 80000)\n)\n\n# \u4f7f\u7528 slice_max() \u4fdd\u7559\u5177\u6709\u6700\u5927\u85aa\u8d44\u7684\u89c2\u6d4b\u884c\nmax_salary <- slice_max(df, Salary)\nprint(max_salary)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86 dplyr \u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846 df\uff0c\u5305\u542b\u4e00\u4e9b\u5217\uff08\u4f8b\u5982 ID\u3001Name\u3001Age\u3001Salary\uff09\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 slice_max() \u51fd\u6570\u6839\u636e Salary \u53d8\u91cf\u4fdd\u7559\u5177\u6709\u6700\u5927\u85aa\u8d44\u7684\u89c2\u6d4b\u884c\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u7ed3\u679c max_salary\u3002 \u6839\u636e\u793a\u4f8b\u6570\u636e\u6846 df \u7684\u5185\u5bb9\uff0c\u4f7f\u7528 slice_max() \u4fdd\u7559\u5177\u6709\u6700\u5927\u85aa\u8d44\u7684\u89c2\u6d4b\u884c\u540e\uff0c\u8f93\u51fa\u7684\u7ed3\u679c\u5c06\u662f\uff1a

  ID Name Age Salary\n1  5  Eve  40  80000\n

\u7ed3\u679c\u53ea\u5305\u542b\u4e86\u5177\u6709\u6700\u5927\u85aa\u8d44\u7684\u89c2\u6d4b\u884c\uff0c\u5176\u4ed6\u884c\u88ab\u6392\u9664\u5728\u5916\u3002\u901a\u8fc7\u6253\u5370 max_salary\uff0c\u6211\u4eec\u53ef\u4ee5\u67e5\u770b\u4fdd\u7559\u7684\u89c2\u6d4b\u884c\u7684\u5185\u5bb9\u3002 \u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4f7f\u7528 slice_max() \u51fd\u6570\u7b5b\u9009\u5177\u6709\u6700\u5927\u503c\u7684\u89c2\u6d4b\u884c\uff0c\u5e76\u6839\u636e\u60c5\u51b5\u8bbe\u7f6e\u53c2\u6570 n\u3001with_ties \u548c order_by\u3002\u67e5\u9605\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528 ?slice_max \u547d\u4ee4\u53ef\u4ee5\u83b7\u53d6\u66f4\u591a\u5173\u4e8e slice_max() \u51fd\u6570\u53c2\u6570\u7684\u8be6\u7ec6\u4fe1\u606f\u3002

"},{"location":"R/dplyr/slice_sample%28%29/","title":"Slice sample()","text":"

\u662f R \u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u5b83\u5c5e\u4e8e dplyr \u5305\u7684\u4e00\u90e8\u5206\u3002slice_sample() \u51fd\u6570\u7528\u4e8e\u4ece\u6570\u636e\u6846\u4e2d\u8fdb\u884c\u968f\u673a\u62bd\u6837\uff0c\u9009\u62e9\u6307\u5b9a\u6570\u91cf\u7684\u89c2\u6d4b\u503c\u3002 slice_sample() \u51fd\u6570\u4f1a\u968f\u673a\u9009\u62e9\u6307\u5b9a\u6570\u91cf\u7684\u89c2\u6d4b\u503c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\u3002\u62bd\u6837\u662f\u65e0\u653e\u56de\u7684\uff0c\u5373\u6bcf\u4e2a\u89c2\u6d4b\u503c\u53ea\u4f1a\u88ab\u9009\u62e9\u4e00\u6b21\u3002

slice_sample(.data, n)\n
\u53c2\u6570\u8bf4\u660e\uff1a - .data\uff1a\u8981\u8fdb\u884c\u62bd\u6837\u7684\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u3002

  • n\uff1a\u8981\u62bd\u53d6\u7684\u89c2\u6d4b\u503c\u6570\u91cf\u3002

  • set.seed()\uff1a\u968f\u673a\u6570\u79cd\u5b50\uff08random seed\uff09\u662f\u4e00\u4e2a\u7528\u6765\u521d\u59cb\u5316\u968f\u673a\u6570\u751f\u6210\u5668\u7684\u8d77\u70b9\u6570\u503c\u3002\u968f\u673a\u6570\u751f\u6210\u5668\u662f\u4e00\u4e2a\u7a0b\u5e8f\u6216\u7b97\u6cd5\uff0c\u7528\u4e8e\u751f\u6210\u4f2a\u968f\u673a\u6570\u5e8f\u5217\uff0c\u5373\u5728\u5916\u89c2\u4e0a\u770b\u8d77\u6765\u968f\u673a\u7684\u6570\u503c\u5e8f\u5217\u3002\u8bbe\u5b9a\u968f\u673a\u6570\u79cd\u5b50\uff08set.seed()\uff09\u662f\u4e3a\u4e86\u4f7f\u5f97\u6bcf\u6b21\u8fd0\u884c\u76f8\u540c\u7684\u968f\u673a\u6570\u751f\u6210\u5668\u5f97\u5230\u76f8\u540c\u7684\u968f\u673a\u6570\u5e8f\u5217\u3002

\u5982set.seed(1040)

library(dplyr)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(x = 1:10, y = letters[1:10])\n\n# \u4ece\u6570\u636e\u6846\u4e2d\u968f\u673a\u62bd\u68373\u4e2a\u89c2\u6d4b\u503c\nsampled_data <- slice_sample(data, 3)\n\n# \u6253\u5370\u62bd\u6837\u7ed3\u679c\nprint(sampled_data)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b x \u548c y \u4e24\u5217\u7684\u6570\u636e\u6846\u3002\u7136\u540e\uff0c\u4f7f\u7528 slice_sample() \u51fd\u6570\u4ece\u6570\u636e\u6846\u4e2d\u968f\u673a\u62bd\u6837\u4e863\u4e2a\u89c2\u6d4b\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728 sampled_data \u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u4e86\u62bd\u6837\u7ed3\u679c\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cslice_sample() \u51fd\u6570\u662f\u57fa\u4e8e dplyr \u5305\u7684\u6570\u636e\u64cd\u4f5c\u51fd\u6570\uff0c\u56e0\u6b64\u5728\u4f7f\u7528\u4e4b\u524d\u9700\u8981\u5148\u52a0\u8f7d dplyr \u5305\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 library(dplyr) \u6216\u8005 require(dplyr) \u6765\u52a0\u8f7d\u8be5\u5305\u3002

"},{"location":"R/dplyr/summarize%28%29%E3%80%81summarise%28%29/","title":"Summarize()\u3001summarise()","text":"

\u7ed3\u679c\u53ea\u4fdd\u7559\u5206\u7ec4\u5217\u6570\u636e\u548c\u6c47\u603b\u7edf\u8ba1\u7684\u6570\u636e\u5217\uff01

\u662f R \u8bed\u8a00\u4e2d dplyr \u5305\u63d0\u4f9b\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5bf9\u6570\u636e\u6846\uff08data frame\uff09\u4e2d\u7684\u5217\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\u64cd\u4f5c\uff0c\u751f\u6210\u6c47\u603b\u7ed3\u679c\u3002

summarize() \u51fd\u6570\u4f1a\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u6c47\u603b\u7edf\u8ba1\u7684\u7ed3\u679c\u3002\u6c47\u603b\u7ed3\u679c\u7684\u6bcf\u4e2a\u7edf\u8ba1\u6307\u6807\u90fd\u4f5c\u4e3a\u65b0\u5217\u5b58\u5728\uff0c\u5217\u540d\u7531\u7528\u6237\u6307\u5b9a\u3002\u539f\u59cb\u6570\u636e\u6846\u4e0d\u4f1a\u88ab\u4fee\u6539\u3002

summarize(.data, new_column = expression, ...)\n

.data \u8868\u793a\u8981\u8fdb\u884c\u64cd\u4f5c\u7684\u6570\u636e\u6846\uff1b

new_column \u662f\u8981\u521b\u5efa\u7684\u65b0\u5217\u7684\u540d\u79f0\uff1b

expression \u662f\u7528\u4e8e\u8ba1\u7b97\u65b0\u5217\u503c\u7684\u8868\u8fbe\u5f0f\uff1b \u9664\u4e86\u57fa\u672c\u7684\u7edf\u8ba1\u51fd\u6570\uff08\u4f8b\u5982 mean()\u3001max()\u3001min()\uff09\uff0c\u5728 summarize() \u51fd\u6570\u4e2d\u8fd8\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u5404\u79cd\u51fd\u6570\u6765\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\uff0c\u751a\u81f3\u8fdb\u884c\u66f4\u590d\u6742\u7684\u64cd\u4f5c\u3002\u7528\u6237\u53ef\u4ee5\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u8868\u8fbe\u5f0f\u6765\u751f\u6210\u65b0\u7684\u6c47\u603b\u5217\u3002 1. sum(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u603b\u548c\u3002 2. mean(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u5e73\u5747\u503c\u3002 3. median(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u4e2d\u4f4d\u6570\u3002 4. min(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u6700\u5c0f\u503c\u3002 5. max(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u6700\u5927\u503c\u3002 6. n()\u00a0\u6216\u00a0n_distinct(): \u8ba1\u7b97\u5206\u7ec4\u540e\u7684\u89c2\u6d4b\u6570\u91cf\u6216\u552f\u4e00\u503c\u7684\u6570\u91cf\u3002 7. first(): \u83b7\u53d6\u5206\u7ec4\u5185\u7684\u7b2c\u4e00\u4e2a\u89c2\u6d4b\u503c\u3002 8. last(): \u83b7\u53d6\u5206\u7ec4\u5185\u7684\u6700\u540e\u4e00\u4e2a\u89c2\u6d4b\u503c\u3002 9. sd(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u6807\u51c6\u5dee\u3002 10. var(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u65b9\u5dee\u3002 11. quantile(): \u8ba1\u7b97\u6570\u503c\u578b\u53d8\u91cf\u7684\u5206\u4f4d\u6570\u3002 12. summarise_all(): \u5bf9\u6240\u6709\u53d8\u91cf\u5e94\u7528\u76f8\u540c\u7684\u805a\u5408\u51fd\u6570\u3002 13. summarise_at(): \u5bf9\u6307\u5b9a\u7684\u53d8\u91cf\u5e94\u7528\u805a\u5408\u51fd\u6570\u3002

... \u8868\u793a\u5176\u4ed6\u8981\u8fdb\u884c\u6c47\u603b\u7edf\u8ba1\u7684\u5217\u3002

library(dplyr)\n\n# \u51c6\u5907\u6570\u636e\ndata <- data.frame(\n  group = c(\"A\", \"A\", \"B\", \"B\", \"B\"),\n  value = c(1, 2, 3, 4, 5)\n)\n\n# \u5bf9\u6570\u636e\u6846\u8fdb\u884c\u805a\u5408\u64cd\u4f5c\nsummary_data <- data %>% \n  group_by(group) %>% \n  summarise(mean_value = mean(value), \n            max_value = max(value))\n\n# \u67e5\u770b\u805a\u5408\u7ed3\u679c\nprint(summary_data)\n

\u8f93\u51fa\uff1a

# A tibble: 2 \u00d7 3\n  group mean_value max_value\n  <chr>      <dbl>     <dbl>\n1 A            1.5         2\n2 B            4           5\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e24\u5217\uff1agroup\u548cvalue\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528summarise()\u51fd\u6570\u5bf9\u6570\u636e\u6846\u8fdb\u884c\u805a\u5408\u64cd\u4f5c\u3002\u901a\u8fc7\u4f7f\u7528group_by()\u51fd\u6570\u6307\u5b9a\u6309\u7167group\u5217\u8fdb\u884c\u5206\u7ec4\uff0c\u7136\u540e\u4f7f\u7528summarise()\u51fd\u6570\u6307\u5b9a\u9700\u8981\u8ba1\u7b97\u7684\u6c47\u603b\u51fd\u6570\u548c\u53d8\u91cf\u3002\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u8ba1\u7b97\u4e86value\u5217\u5728\u6bcf\u4e2a\u7ec4\u4e2d\u7684\u5e73\u5747\u503c\u548c\u6700\u5927\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728summary_data\u53d8\u91cf\u4e2d\u3002

\u5728\u805a\u5408\u7ed3\u679c\u4e2d\uff0cgroup\u5217\u8868\u793a\u7ec4\u7684\u6807\u8bc6\uff0cmean_value\u5217\u8868\u793a\u6bcf\u4e2a\u7ec4\u4e2dvalue\u5217\u7684\u5e73\u5747\u503c\uff0cmax_value\u5217\u8868\u793a\u6bcf\u4e2a\u7ec4\u4e2dvalue\u5217\u7684\u6700\u5927\u503c\u3002

\u901a\u8fc7\u4f7f\u7528summarise()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5bf9\u6570\u636e\u6846\u8fdb\u884c\u5404\u79cd\u805a\u5408\u64cd\u4f5c\uff0c\u5982\u8ba1\u7b97\u5e73\u5747\u503c\u3001\u603b\u548c\u3001\u6700\u5927\u503c\u3001\u6700\u5c0f\u503c\u7b49\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u6307\u5b9a\u4e0d\u540c\u7684\u6c47\u603b\u51fd\u6570\u548c\u53d8\u91cf\u6765\u751f\u6210\u6240\u9700\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u3002

"},{"location":"R/dplyr/summarize%28%29%E3%80%81summarise%28%29/#_1","title":"...\u5177\u4f53\u53c2\u6570\u6269\u5c55","text":"
  1. \u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u8fdb\u884c\u6c42\u548c\uff1a

    summarize(total_sales = sum(sales))\n
    \u4e0a\u8ff0\u4ee3\u7801\u5c06\u8ba1\u7b97\u6570\u636e\u6846\u4e2dsales\u5217\u7684\u603b\u548c\uff0c\u5e76\u521b\u5efa\u4e00\u4e2a\u540d\u4e3atotal_sales\u7684\u65b0\u5217\uff0c\u5176\u4e2d\u5305\u542b\u7ed3\u679c\u3002

  2. \u4f7f\u7528\u591a\u4e2a\u6c47\u603b\u51fd\u6570\uff1a

    summarize(total_sales = sum(sales), average_price = mean(price), max_quantity = max(quantity))\n
    \u4e0a\u8ff0\u4ee3\u7801\u5c06\u540c\u65f6\u8ba1\u7b97\u603b\u9500\u552e\u989d\u3001\u5e73\u5747\u4ef7\u683c\u548c\u6700\u5927\u6570\u91cf\uff0c\u5e76\u521b\u5efa\u76f8\u5e94\u7684\u65b0\u5217\u3002

  3. \u4f7f\u7528\u6761\u4ef6\u51fd\u6570\u8fdb\u884c\u8ba1\u6570\uff1a

    summarize(high_sales = sum(ifelse(sales > 1000, 1, 0)))\n
    \u4e0a\u8ff0\u4ee3\u7801\u5c06\u8ba1\u7b97sales\u5217\u4e2d\u5927\u4e8e1000\u7684\u9500\u552e\u8bb0\u5f55\u6570\uff0c\u5e76\u521b\u5efa\u4e00\u4e2a\u540d\u4e3ahigh_sales\u7684\u65b0\u5217\u3002

  4. \u4f7f\u7528\u81ea\u5b9a\u4e49\u51fd\u6570\u8fdb\u884c\u8ba1\u7b97\uff1a

    summarize(custom_stat = my_function(column1, column2))\n
    \u4e0a\u8ff0\u4ee3\u7801\u4f7f\u7528\u81ea\u5b9a\u4e49\u51fd\u6570my_function()\u5bf9column1\u548ccolumn2\u8fdb\u884c\u8ba1\u7b97\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3acustom_stat\u7684\u65b0\u5217\u4e2d\u3002

  5. \u901a\u8fc7\u5206\u7ec4\u8fdb\u884c\u6c47\u603b\uff1a

    group_by(category) %>%\nsummarize(total_sales = sum(sales))\n
    \u4e0a\u8ff0\u4ee3\u7801\u9996\u5148\u4f7f\u7528group_by()\u51fd\u6570\u6309category\u5217\u5206\u7ec4\u6570\u636e\uff0c\u7136\u540e\u4f7f\u7528summarize()\u51fd\u6570\u8ba1\u7b97\u6bcf\u4e2a\u7ec4\u7684\u603b\u9500\u552e\u989d\u3002

\u8fd9\u4e9b\u793a\u4f8b\u5c55\u793a\u4e86summarize()\u51fd\u6570\u4e2d\u53c2\u6570\u7684\u7528\u6cd5\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u7ec4\u5408\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u3001\u6761\u4ef6\u51fd\u6570\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u548c\u5206\u7ec4\u6765\u5b9e\u73b0\u4e0d\u540c\u7684\u6c47\u603b\u64cd\u4f5c\u3002

"},{"location":"R/dplyr/summarize%28%29%E3%80%81summarise%28%29/#na","title":"NA\u7f3a\u5931\u503c\u5bfc\u81f4\u7684\u95ee\u9898","text":"

\u5982\u679c\u5728summarize()\u51fd\u6570\u4e2d\u4f7f\u7528mean()\u51fd\u6570\u8ba1\u7b97\u5217\u7684\u5e73\u5747\u503c\u65f6\uff0c\u6700\u7ec8\u7ed3\u679c\u663e\u793a\u4e3aNA\uff0c\u53ef\u80fd\u6709\u4ee5\u4e0b\u51e0\u79cd\u539f\u56e0\uff1a R\u8bed\u8a00\u5bf9\u7f3a\u5931\u503c\u7684\u5904\u7406\u7ed3\u679c\u4ecd\u4e3a\u7f3a\u5931\u503c\uff01 1. \u7f3a\u5931\u503c\uff08NA\uff09\u5b58\u5728\uff1a\u5982\u679c\u5728flights\u6570\u636e\u6846\u4e2d\u7684dep_delay\u5217\u4e2d\u5b58\u5728\u7f3a\u5931\u503c\uff08NA\uff09\uff0c\u90a3\u4e48\u8ba1\u7b97\u5e73\u5747\u503c\u65f6\u4f1a\u5ffd\u7565\u8fd9\u4e9b\u7f3a\u5931\u503c\uff0c\u5e76\u5c06\u7ed3\u679c\u8bbe\u4e3aNA\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528na.rm = TRUE\u53c2\u6570\u6765\u5ffd\u7565\u7f3a\u5931\u503c\u8fdb\u884c\u8ba1\u7b97\uff0c\u4f8b\u5982\uff1amean(dep_delay, na.rm = TRUE)\u3002 2. \u6574\u5217\u90fd\u662f\u7f3a\u5931\u503c\uff1a\u5982\u679cdep_delay\u5217\u4e2d\u7684\u6240\u6709\u503c\u90fd\u662f\u7f3a\u5931\u503c\uff08NA\uff09\uff0c\u90a3\u4e48\u8ba1\u7b97\u5e73\u5747\u503c\u65f6\u7ed3\u679c\u5c06\u662fNA\uff0c\u56e0\u4e3a\u6ca1\u6709\u53ef\u7528\u7684\u975e\u7f3a\u5931\u503c\u8fdb\u884c\u8ba1\u7b97\u3002 3. \u6570\u636e\u7c7b\u578b\u4e0d\u5339\u914d\uff1adep_delay\u5217\u7684\u6570\u636e\u7c7b\u578b\u53ef\u80fd\u4e0d\u662f\u6570\u503c\u578b\uff08numeric\uff09\uff0c\u800c\u662f\u5b57\u7b26\u578b\uff08character\uff09\u6216\u56e0\u5b50\u578b\uff08factor\uff09\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u65e0\u6cd5\u8ba1\u7b97\u5e73\u5747\u503c\uff0c\u5e76\u4e14\u7ed3\u679c\u5c06\u4e3aNA\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528as.numeric()\u51fd\u6570\u5c06\u5217\u8f6c\u6362\u4e3a\u6570\u503c\u578b\uff1amean(as.numeric(dep_delay))\u3002

"},{"location":"R/dplyr/top_n%28%29/","title":"Top n()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0ctop_n()\u51fd\u6570\u7528\u4e8e\u6309\u7167\u7279\u5b9a\u53d8\u91cf\u7684\u503c\uff0c\u9009\u62e9\u6570\u636e \u6846\uff08data frame\uff09\u4e2d\u524dn\u4e2a\u89c2\u6d4b\u503c\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

top_n(data, n, wt, ...)\n

\u53c2\u6570\uff1a \u4ee5\u4e0b\u662ftop_n()\u51fd\u6570\u4e2d\u5e38\u7528\u7684\u53c2\u6570\uff1a

  • data\uff1a\u8981\u9009\u62e9\u89c2\u6d4b\u503c\u7684\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u3002

  • n\uff1a\u8981\u9009\u62e9\u7684\u89c2\u6d4b\u503c\u7684\u6570\u91cf\uff0c\u53ef\u4ee5\u662f\u6b63\u6574\u6570\u3002

  • wt\uff1a\u7528\u4e8e\u6392\u5e8f\u7684\u6743\u91cd\u53d8\u91cf\uff0c\u53ef\u4ee5\u662f\u53d8\u91cf\u540d\u6216\u8868\u8fbe\u5f0f\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684\u6392\u5e8f\u51fd\u6570\u3002

\u8fd4\u56de\u503c\uff1a top_n()\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u6309\u7167\u6307\u5b9a\u53d8\u91cf\u8fdb\u884c\u6392\u5e8f\u540e\u7684\u524dn\u4e2a\u89c2\u6d4b\u503c\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528top_n()\u51fd\u6570\u9009\u62e9\u6570\u636e\u6846\u4e2d\u524dn\u4e2a\u89c2\u6d4b\u503c\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(Name = c(\"John\", \"Alice\", \"Bob\", \"David\"),\n                 Age = c(25, 30, 35, 40))\n\n# \u9009\u62e9\u5e74\u9f84\u6700\u5927\u7684\u4e24\u4e2a\u89c2\u6d4b\u503c\ntop_2 <- top_n(df, n = 2, wt = Age)\n\n# \u6253\u5370\u9009\u62e9\u7684\u89c2\u6d4b\u503c\nprint(top_2)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846df\uff0c\u5176\u4e2d\u5305\u542bName\u548cAge\u4e24\u5217\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528top_n()\u51fd\u6570\u4ece\u6570\u636e\u6846df\u4e2d\u9009\u62e9\u5e74\u9f84\u6700\u5927\u7684\u4e24\u4e2a\u89c2\u6d4b\u503c\u3002\u901a\u8fc7\u6307\u5b9an = 2\u548cwt = Age\u53c2\u6570\uff0c\u6211\u4eec\u544a\u8bc9\u51fd\u6570\u9009\u62e9Age\u5217\u4e2d\u6700\u5927\u7684\u4e24\u4e2a\u503c\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u9009\u62e9\u7684\u89c2\u6d4b\u503ctop_2\uff0c\u5b83\u662f\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5305\u542b\u4e86\u6309\u7167\u5e74\u9f84\u6392\u5e8f\u540e\u7684\u524d\u4e24\u4e2a\u89c2\u6d4b\u503c\u3002

\u8bf7\u6ce8\u610f\uff0c\u4e0a\u8ff0\u793a\u4f8b\u4ec5\u6f14\u793a\u4e86\u57fa\u672c\u7528\u6cd5\uff0c\u66f4\u591a\u8be6\u7ec6\u7684\u53c2\u6570\u548c\u9009\u9879\u53ef\u4ee5\u53c2\u8003R\u8bed\u8a00\u7684\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528?top_n\u547d\u4ee4\u67e5\u770b\u51fd\u6570\u7684\u5e2e\u52a9\u6587\u6863\u3002

"},{"location":"R/dplyr/transmute%28%29/","title":"Transmute()","text":"

\u51fd\u6570\u662fdplyr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5bf9\u6570\u636e\u6846\u8fdb\u884c\u53d8\u6362\u548c\u8ba1\u7b97\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u7279\u5b9a\u7684\u53d8\u6362\u7ed3\u679c\u5217\u3002

transmute(.data, ...)\n
- .data: \u8981\u8fdb\u884c\u53d8\u6362\u7684\u6570\u636e\u6846\u3002 - ...: \u8981\u8fdb\u884c\u7684\u53d8\u6362\u64cd\u4f5c\uff0c\u53ef\u4ee5\u662f\u5217\u7684\u8ba1\u7b97\u3001\u91cd\u547d\u540d\u6216\u5176\u4ed6\u53d8\u6362\u64cd\u4f5c\u3002 1. \u8ba1\u7b97\u65b0\u5217\uff1a \u5047\u8bbe\u6709\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542bcol1\u548ccol2\u4e24\u5217\uff0c\u6211\u4eec\u60f3\u8981\u8ba1\u7b97\u5b83\u4eec\u7684\u548c\u5e76\u751f\u6210\u4e00\u4e2a\u65b0\u7684\u5217sum
new_data <- transmute(data, sum = col1 + col2)\n
\u4e0a\u8ff0\u4ee3\u7801\u5c06\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846new_data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u8ba1\u7b97\u540e\u7684\u548c\u5b58\u50a8\u5728sum\u5217\u4e2d\u3002 2. \u91cd\u547d\u540d\uff1a \u5047\u8bbe\u6211\u4eec\u60f3\u8981\u5c06\u6570\u636e\u6846data\u4e2d\u7684col1\u5217\u91cd\u547d\u540d\u4e3anew_col\uff1a
new_data <- transmute(data, new_col = col1)\n
\u4e0a\u8ff0\u4ee3\u7801\u5c06\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846new_data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u91cd\u547d\u540d\u540e\u7684\u5217new_col\u3002 3. \u6df7\u5408\uff1a transmute()\u51fd\u6570\u8fd8\u53ef\u4ee5\u8fdb\u884c\u591a\u4e2a\u53d8\u6362\u64cd\u4f5c\uff0c\u4f8b\u5982\uff0c\u8ba1\u7b97\u5e73\u5747\u503c\u5e76\u5c06\u7ed3\u679c\u4e58\u4ee52\uff1a
new_data <- transmute(data, avg_col = mean(col1), doubled_avg = 2 * avg_col)\n

transmute()\u51fd\u6570\u5bf9\u4e8e\u5728\u6570\u636e\u6846\u4e2d\u8fdb\u884c\u53d8\u6362\u548c\u8ba1\u7b97\u975e\u5e38\u6709\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u751f\u6210\u65b0\u7684\u5217\u3002\u8bf7\u6ce8\u610f\uff0ctransmute()\u51fd\u6570\u5c06\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u6846\uff0c\u800c\u4e0d\u4f1a\u4fee\u6539\u539f\u59cb\u6570\u636e\u6846\u3002

"},{"location":"R/dplyr/tribble%28%29/","title":"Tribble()","text":"

\u5728\u51fd\u6570\u4e2d\uff0c\u901a\u8fc7\u6309\u5217\u6307\u5b9a\u6570\u636e\u6765\u521b\u5efa\u6570\u636e\u6846\u3002\u4ee5\u4e0b\u662ftribble()\u51fd\u6570\u4e2d\u53c2\u6570\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

tribble(\n  ~col1, ~col2,\n  \"a\"  , 2,\n  \"b\"  , 4,\n  \"c\"  , 6\n)\n
- ~\uff1a\u5217\u540d\u548c\u5217\u6570\u636e\u4e4b\u95f4\u7684\u5206\u9694\u7b26\u3002\u5b83\u8868\u793a\u5c06\u5217\u540d\u548c\u5217\u6570\u636e\u5173\u8054\u8d77\u6765\u3002 - \u5217\u540d\uff1a\u5728~col*\u4e2d\u6307\u5b9a\u7684\u5217\u540d\uff0c\u7528\u4e8e\u6807\u8bc6\u6570\u636e\u6846\u4e2d\u7684\u5217\u3002 - \u5217\u6570\u636e\uff1a\u5728~col*\u4e4b\u540e\u6307\u5b9a\u7684\u5217\u6570\u636e\uff0c\u7528\u4e8e\u586b\u5145\u6570\u636e\u6846\u4e2d\u7684\u76f8\u5e94\u5217\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u66f4\u8be6\u7ec6\u7684\u793a\u4f8b\uff0c\u5c55\u793a\u4e86tribble()\u51fd\u6570\u4e2d\u53c2\u6570\u7684\u4f7f\u7528\uff1a

library(dplyr)\n\ndf <- tribble(\n  ~name,       ~age,    ~city,\n  \"Alice\",     25,      \"New York\",\n  \"Bob\",       30,      \"Chicago\",\n  \"Charlie\",   35,      \"Los Angeles\"\n)\n\nprint(df)\n

\u8f93\u51fa\uff1a

# A tibble: 3 x 3\n  name    age city       \n  <chr> <dbl> <chr>      \n1 Alice    25 New York   \n2 Bob      30 Chicago    \n3 Charlie  35 Los Angeles\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3adf\u7684\u6570\u636e\u6846\u3002\u901a\u8fc7\u6309\u5217\u6307\u5b9a\u6570\u636e\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e09\u4e2a\u5217\uff1aname\u3001age\u548ccity\u3002\u6bcf\u4e2a\u5217\u540d\u4e4b\u524d\u90fd\u6709\u4e00\u4e2a~\u7b26\u53f7\uff0c\u5e76\u4e14\u5217\u6570\u636e\u4e0e\u5217\u540d\u4e4b\u95f4\u7528\u9017\u53f7\u5206\u9694\u3002\u6570\u636e\u6846\u4e2d\u7684\u6bcf\u4e00\u884c\u7531\u9017\u53f7\u5206\u9694\u3002 tribble()\u51fd\u6570\u662f\u4e00\u79cd\u65b9\u4fbf\u7684\u65b9\u6cd5\uff0c\u7279\u522b\u9002\u7528\u4e8e\u521b\u5efa\u5c0f\u89c4\u6a21\u7684\u793a\u4f8b\u6570\u636e\u6846\u3002\u901a\u8fc7\u6309\u5217\u6307\u5b9a\u6570\u636e\uff0c\u6211\u4eec\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9a\u4e49\u6570\u636e\u6846\u7684\u7ed3\u6784\u548c\u5185\u5bb9\u3002

"},{"location":"R/dplyr/ungroup%28%29/","title":"Ungroup()","text":"

\u5728R\u8bed\u8a00\u7684dplyr\u5305\u4e2d\uff0cungroup()\u51fd\u6570\u7528\u4e8e\u53d6\u6d88\u5bf9\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u8fdb\u884c\u7684\u5206\u7ec4\u64cd\u4f5c\uff0c\u5c06\u6570\u636e\u6062\u590d\u4e3a\u672a\u5206\u7ec4\u7684\u72b6\u6001\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

ungroup(.data, ...)\n
\u53c2\u6570\uff1a - .data\uff1a\u8981\u53d6\u6d88\u5206\u7ec4\u64cd\u4f5c\u7684\u6570\u636e\u6846\u6216\u6570\u636e\u8868\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\u3002 \u793a\u4f8b\uff1a
library(dplyr)\n\n# \u793a\u4f8b\uff1a\u53d6\u6d88\u5206\u7ec4\u64cd\u4f5c\ndf <- data.frame(\n  group = c(\"A\", \"A\", \"B\", \"B\"),\n  value = c(1, 2, 3, 4)\n)\n\n# \u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\ngrouped_df <- df %>% group_by(group)\n\n# \u53d6\u6d88\u5206\u7ec4\u64cd\u4f5c\nungrouped_df <- ungroup(grouped_df)\n\n# \u6253\u5370\u53d6\u6d88\u5206\u7ec4\u540e\u7684\u6570\u636e\nprint(ungrouped_df)\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7ddplyr\u5305\u4f7f\u7528library(dplyr)\u3002\u7136\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\"group\"\u548c\"value\"\u4e24\u5217\u7684\u6570\u636e\u6846df\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528group_by()\u51fd\u6570\u5bf9\u6570\u636e\u6846df\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u5c06\u7ed3\u679c\u8d4b\u503c\u7ed9grouped_df\u53d8\u91cf\u3002

\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528ungroup()\u51fd\u6570\u5bf9grouped_df\u53d6\u6d88\u5206\u7ec4\u64cd\u4f5c\uff0c\u5e76\u5c06\u7ed3\u679c\u8d4b\u503c\u7ed9ungrouped_df\u53d8\u91cf\u3002

\u901a\u8fc7\u6253\u5370ungrouped_df\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u53d6\u6d88\u5206\u7ec4\u64cd\u4f5c\u540e\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u6570\u636e\u6062\u590d\u4e3a\u672a\u5206\u7ec4\u7684\u72b6\u6001\u3002

\u4f7f\u7528ungroup()\u51fd\u6570\u53ef\u4ee5\u65b9\u4fbf\u5730\u5c06\u5df2\u7ecf\u5206\u7ec4\u7684\u6570\u636e\u6062\u590d\u4e3a\u672a\u5206\u7ec4\u7684\u5f62\u5f0f\uff0c\u9002\u7528\u4e8e\u9700\u8981\u53d6\u6d88\u5206\u7ec4\u64cd\u4f5c\u6216\u8005\u5728\u5904\u7406\u6570\u636e\u65f6\u9700\u8981\u6062\u590d\u539f\u59cb\u6570\u636e\u7ed3\u6784\u7684\u573a\u666f\u3002

"},{"location":"R/dplyr/vars%28%29/","title":"Vars()","text":"

1\uff0c\u5c06x/y\u8f74\u6570\u636e\u6839\u636e\u6307\u5b9a\u5b57\u6bb5\u5185\u5bb9\u8fdb\u884c\u5206\u7ec4\uff0c\u5feb\u901f\u5728\u591a\u4e2a\u56fe\u5f62\u4e2d\u5e76\u884c\u3001\u5e76\u5217\u5c55\u793a\uff0cfacet_grid(rows = vars(fields) )

\u5728 R \u8bed\u8a00\u7684 dplyr \u5305\u4e2d\uff0cvars() \u51fd\u6570\u7528\u4e8e\u6307\u5b9a\u4e00\u7ec4\u53d8\u91cf\u3002\u5b83\u901a\u5e38\u4e0e select()\u3001group_by() \u548c\u5176\u4ed6\u57fa\u4e8e\u53d8\u91cf\u64cd\u4f5c\u7684\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\u3002\u4e0b\u9762\u662f\u5bf9 vars() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a \u51fd\u6570\u8bed\u6cd5\uff1a

vars(...)\n\n# \u6216\u8005\u4f7f\u7528\u7ba1\u9053\u64cd\u4f5c\u7b26 %>%\n... %>% vars(...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - ...\uff1a\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u540d\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u9009\u62e9\u6216\u64cd\u4f5c\u7684\u53d8\u91cf\u3002\u53d8\u91cf\u540d\u53ef\u4ee5\u662f\u5b57\u7b26\u5411\u91cf\u3001\u6574\u6570\u5411\u91cf\u3001\u53d8\u91cf\u4f4d\u7f6e\u7684\u8303\u56f4\uff08\u4f8b\u5982 1:3\uff09\u6216\u4e00\u4e2a vars() \u5bf9\u8c61\u3002\u53ef\u4ee5\u4f7f\u7528\u9017\u53f7\u5c06\u591a\u4e2a\u53d8\u91cf\u540d\u5206\u9694\u5f00\u3002 \u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a vars() \u5bf9\u8c61\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5176\u4ed6 dplyr \u51fd\u6570\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u6570\u636e\u64cd\u4f5c\u3002 \u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 vars() \u51fd\u6570\u6307\u5b9a\u53d8\u91cf\u7684\u793a\u4f8b\uff1a
library(dplyr)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(\n  ID = c(1, 2, 3),\n  Name = c(\"Alice\", \"Bob\", \"Charlie\"),\n  Age = c(25, 30, 35),\n  Salary = c(50000, 60000, 70000)\n)\n\n# \u4f7f\u7528 vars() \u9009\u62e9\u53d8\u91cf\nselected_vars <- select(df, vars(Name, Age))\nprint(selected_vars)\n

    Name  Age\n1   Alice  25\n2     Bob  30\n3 Charlie  35\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86 dplyr \u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846 df\uff0c\u5305\u542b\u4e00\u4e9b\u5217\uff08\u4f8b\u5982 ID\u3001Name\u3001Age\u3001Salary\uff09\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 vars() \u51fd\u6570\u5c06\u8981\u9009\u62e9\u7684\u53d8\u91cf\u540d\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9 select() \u51fd\u6570\uff0c\u4ece\u800c\u9009\u62e9\u4e86 Name \u548c Age \u4e24\u5217\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u9009\u62e9\u7684\u7ed3\u679c selected_vars\u3002 \u901a\u8fc7\u4f7f\u7528 vars() \u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u6307\u5b9a\u8981\u9009\u62e9\u6216\u64cd\u4f5c\u7684\u53d8\u91cf\uff0c\u65e0\u8bba\u662f\u9009\u62e9\u7279\u5b9a\u5217\u8fd8\u662f\u6309\u7167\u4e00\u5b9a\u89c4\u5219\u8fdb\u884c\u9009\u62e9\u3002\u8be5\u51fd\u6570\u5728 dplyr \u5305\u4e2d\u7684\u8bb8\u591a\u51fd\u6570\u4e2d\u90fd\u6709\u5e7f\u6cdb\u7684\u5e94\u7528\uff0c\u4f8b\u5982 select()\u3001group_by()\u3001mutate() \u7b49\u3002\u67e5\u9605\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528 ?vars \u547d\u4ee4\u53ef\u4ee5\u83b7\u53d6\u66f4\u591a\u5173\u4e8e vars() \u51fd\u6570\u53c2\u6570\u7684\u8be6\u7ec6\u4fe1\u606f\u3002

"},{"location":"R/ggplot2/aes%28%29/","title":"Aes()","text":"

aesthetic\u7528\u4e8e\u5b9a\u4e49\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\u3002\u5b83\u7528\u4e8e\u5c06\u6570\u636e\u7684\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u89c6\u89c9\u5c5e\u6027\u4e4b\u95f4\u5efa\u7acb\u5bf9\u5e94\u5173\u7cfb\uff0c\u4f8b\u5982\u5c06\u6570\u636e\u7684\u67d0\u4e00\u5217\u6620\u5c04\u5230 x \u8f74\u4f4d\u7f6e\u3001\u5c06\u53e6\u4e00\u5217\u6620\u5c04\u5230 y \u8f74\u4f4d\u7f6e\u3001\u5c06\u7b2c\u4e09\u5217\u6620\u5c04\u5230\u989c\u8272\u7b49\u3002

\u901a\u8fc7\u5728 ggplot() \u51fd\u6570\u4e2d\u4f7f\u7528 aes() \u51fd\u6570\u6765\u5b9a\u4e49\u6620\u5c04\u5173\u7cfb\uff0c\u53ef\u4ee5\u5c06\u6570\u636e\u7684\u4e0d\u540c\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u4e0d\u540c\u89c6\u89c9\u5c5e\u6027\u5173\u8054\u8d77\u6765\u3002\u8fd9\u6837\uff0c\u5728\u540e\u7eed\u7684\u7ed8\u56fe\u8fc7\u7a0b\u4e2d\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u8fd9\u4e9b\u6620\u5c04\u5173\u7cfb\uff0c\u4f7f\u5f97\u56fe\u5f62\u80fd\u591f\u6839\u636e\u6570\u636e\u7684\u53d8\u5316\u800c\u81ea\u52a8\u8c03\u6574\u5c5e\u6027\uff0c\u5c55\u793a\u51fa\u66f4\u4e30\u5bcc\u7684\u4fe1\u606f\u3002

aes(x = NULL, y = NULL, ..., color = NULL, fill = NULL, shape = NULL, size = NULL, alpha = NULL)\n
  • x\u3001y\uff1a\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e x \u8f74\u548c y \u8f74\u7684\u6620\u5c04\u5173\u7cfb\u3002\u53ef\u4ee5\u662f\u6570\u636e\u6846\u4e2d\u7684\u5217\u540d\u3001\u5411\u91cf\u3001\u516c\u5f0f\u7b49\u3002

  • ...\uff1a\u5176\u4ed6\u6620\u5c04\u5173\u7cfb\u3002

\u90fd\u53ef\u4ee5\u6309\u7167\u53e6\u4e00\u4e2a\u53d8\u91cf\u5206\u7ec4\u6620\u5c04\uff0c\u4f46\u5fc5\u987b\u53e6\u4e00\u4e2a\u53d8\u91cf\u662f\u5b57\u7b26\u578b\uff01

  • color\uff1a\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u989c\u8272\u6620\u5c04\u5173\u7cfb\uff0c\uff08\u5982\"red\"\u3001\"blue\"\uff09\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5341\u516d\u8fdb\u5236\u989c\u8272\u7801\uff08\u5982\"#FF0000\"\u8868\u793a\u7ea2\u8272\uff09\u3002\u53e6\u4e00\u4e2a\u53d8\u91cf\u53ef\u4ee5\u662f\u6570\u503c\uff01

  • fill\uff1a\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u586b\u5145\u989c\u8272\u6620\u5c04\u5173\u7cfb\uff0c\u3002

  • shape\uff1a\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u5f62\u72b6\u6620\u5c04\u5173\u7cfb\u3002\u63a7\u5236\u70b9\u7684\u5f62\u72b6\uff0c\u5982\u5706\u5f62\u3001\u65b9\u5f62\u3001\u4e09\u89d2\u5f62\u7b49\u3002

  • size\uff1a\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u5927\u5c0f\u6620\u5c04\u5173\u7cfb\uff0c\u63a7\u5236\u56fe\u5f62\u5143\u7d20\u7684\u5927\u5c0f\uff0c\u5982\u70b9\u7684\u5927\u5c0f\u6216\u7ebf\u7684\u7c97\u7ec6\u3002

  • stroke\uff1a\u6307\u5b9a\u8fb9\u6846\u989c\u8272\u7684\u6570\u636e\u53d8\u91cf\u6216\u5e38\u91cf\u503c\u3002\u9002\u7528\u4e8e\u5177\u6709\u8fb9\u6846\u7684\u56fe\u5f62\uff0c\u5982\u70b9\u7684\u8fb9\u6846\u989c\u8272\u3002

  • width\uff1a\u6307\u5b9a\u5bbd\u5ea6\u7684\u6570\u636e\u53d8\u91cf\u6216\u5e38\u91cf\u503c\u3002\u7528\u4e8e\u8c03\u6574\u7ebf\u7684\u5bbd\u5ea6\u3002

  • alpha\uff1a\u6307\u5b9a\u900f\u660e\u5ea6\uff08alpha\uff09\u7684\u6570\u636e\u53d8\u91cf\u6216\u5e38\u91cf\u503c\u3002\u53d6\u503c\u8303\u56f4\u4e3a0\uff08\u5b8c\u5168\u900f\u660e\uff09\u52301\uff08\u5b8c\u5168\u4e0d\u900f\u660e\uff09\u4e4b\u95f4\u3002

  • linetype\uff1a\u6307\u5b9a\u7ebf\u578b\u7684\u6570\u636e\u53d8\u91cf\u6216\u5e38\u91cf\u503c\u3002\u63a7\u5236\u7ebf\u6761\u7684\u7c7b\u578b\uff0c\u5982\u5b9e\u7ebf\u3001\u865a\u7ebf\u3001\u70b9\u7ebf\u7b49\u3002

  • group\uff1a\u6307\u5b9a\u5206\u7ec4\u7684\u6570\u636e\u53d8\u91cf\u3002\u7528\u4e8e\u5728\u7ed8\u5236\u591a\u4e2a\u56fe\u5f62\u65f6\u5c06\u6570\u636e\u5206\u7ec4\uff0c\u5e76\u4e3a\u6bcf\u4e2a\u7ec4\u5206\u914d\u4e0d\u540c\u7684\u56fe\u5f62\u5c5e\u6027\u3002

  • label\uff1a\u6307\u5b9a\u6807\u7b7e\u7684\u6570\u636e\u53d8\u91cf\u3002\u7528\u4e8e\u5728\u56fe\u5f62\u4e2d\u663e\u793a\u6587\u672c\u6807\u7b7e\uff0c\u5982\u6563\u70b9\u56fe\u4e2d\u7684\u6570\u636e\u6807\u7b7e\u3002

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\u96c6\ndf <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))\n\n# \u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5b9a\u4e49\u6620\u5c04\u5173\u7cfb\np <- ggplot(data = df, mapping = aes(x = x, y = y))\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u96c6 df\uff0c\u5305\u542b\u4e24\u5217\uff08x \u548c y\uff09\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61 p\uff0c\u5e76\u5728 mapping \u53c2\u6570\u4e2d\u4f7f\u7528 aes() \u51fd\u6570\u5b9a\u4e49\u4e86 x \u548c y \u5217\u4e0e\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\u3002

\u5728\u8fdb\u4e00\u6b65\u7684\u7ed8\u56fe\u8fc7\u7a0b\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u51fd\u6570\uff08\u5982 geom_*()\uff09\u6765\u6dfb\u52a0\u5177\u4f53\u7684\u51e0\u4f55\u5bf9\u8c61\uff0c\u5e76\u5229\u7528\u4e4b\u524d\u5b9a\u4e49\u7684\u6620\u5c04\u5173\u7cfb\u81ea\u52a8\u6620\u5c04\u6570\u636e\u7684\u53d8\u91cf\u5230\u5bf9\u5e94\u7684\u56fe\u5f62\u5c5e\u6027\u3002\u4f8b\u5982\uff1a

# \u6dfb\u52a0\u70b9\u56fe\u5c42\np + geom_point()\n

\u8fd9\u5c06\u5728\u7ed8\u56fe\u5bf9\u8c61 p \u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u4e00\u4e2a\u70b9\u56fe\u5c42\uff0c\u5176\u4e2d x \u548c y \u5217\u7684\u6570\u636e\u5c06\u81ea\u52a8\u6620\u5c04\u5230\u70b9\u7684\u4f4d\u7f6e\u3002 \u901a\u8fc7 aes() \u51fd\u6570\u7684\u7075\u6d3b\u4f7f\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5c06\u66f4\u591a\u7684\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u89c6\u89c9\u5c5e\u6027\u8fdb\u884c\u6620\u5c04\uff0c\u4ee5\u5b9e\u73b0\u66f4\u591a\u6837\u5316\u3001\u5bcc\u6709\u4fe1\u606f\u7684\u6570\u636e\u53ef\u89c6\u5316\u3002

"},{"location":"R/ggplot2/aes%28%29/#ggplotaesx-a-y-bgeom_pointaesx-a-y-b","title":"\u5173\u4e8eggplot()\u4e2d\u8bf4\u660eaes(x = A, y = B)\u548c\u5728geom_point()\u8bf4\u660eaes(x = A, y = B)\u6709\u4ec0\u4e48\u533a\u522b?","text":"

\u5168\u5c40\u6620\u5c04\u5173\u7cfb\u548c\u5c40\u90e8\u6620\u5c04\u5173\u7cfb\u3002\u6ca1\u6709\u5c40\u90e8\u6620\u5c04\u4ee5\u5168\u5c40\u6620\u5c04\u4e3a\u51c6\uff0c\u6709\u5c40\u90e8\u6620\u5c04\uff0c\u53c2\u8003\u5c40\u90e8\u6620\u5c04\uff0c\u7f3a\u5c11\u5f97\u5185\u5bb9\u53c2\u8003\u5168\u5c40\u6620\u5c04\uff01

library(ggplot2)\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(A = c(1, 2, 3, 4, 5),\n                 B = c(2, 4, 1, 8, 10))\n# \u521b\u5efa\u6563\u70b9\u56fe\nggplot(data = df, aes(x = A, y = B)) +\n  geom_smooth() +\n  geom_line(aes(x = -A, y = B ,color=\"pink\")) +\n  geom_point(aes(x = A, y = B ,color=\"blue\")) +\n  geom_line() +\n  geom_smooth(aes(x = -A))\n

\u7ebf\u56fe\u5c42\u4e0e\u6563\u70b9\u56fe\u5c42\u7684\u6620\u5c04\u5173\u7cfb\u4e0d\u53d7\u5168\u5c40\u6620\u5c04\u5173\u7cfb\u7684\u5f71\u54cd\uff0c\u6211\u4eec\u5728geom_line()\u51fd\u6570\u4e2d\u91cd\u65b0\u5b9a\u4e49\u4e86\u5c40\u90e8\u6620\u5c04\u5173\u7cfb\u3002 \u8fd9\u6837\uff0c\u901a\u8fc7ggplot()\u51fd\u6570\u548cgeom_line()\u51fd\u6570\u7684\u4e0d\u540caes()\u5b9a\u4e49\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u56fe\u5f62\u4e2d\u540c\u65f6\u663e\u793a\u6563\u70b9\u56fe\u548c\u7ebf\u56fe\uff0c\u5e76\u4e3a\u5b83\u4eec\u6307\u5b9a\u4e0d\u540c\u7684\u6620\u5c04\u5173\u7cfb\u548c\u989c\u8272\u3002

"},{"location":"R/ggplot2/aes%28%29/#aescolor","title":"\u4e3a\u4ec0\u4e48\u5728aes()\u51fd\u6570\u4e2d\u5b9a\u4e49\u7684color\u663e\u793a\u5f97\u6709\u4e9b\u4e0d\u5bf9\uff1f","text":"

\u5728\u60a8\u7684\u4ee3\u7801\u4e2d\uff0ccolor\u53c2\u6570\u5728aes()\u51fd\u6570\u4e2d\u88ab\u8bbe\u7f6e\u4e3a\u5b57\u7b26\u5e38\u91cf\uff0c\u5373color = \"black\"\u548ccolor = \"pink\"\u3002\u8fd9\u6837\u505a\u4f1a\u5bfc\u81f4color\u88ab\u89c6\u4e3a\u56fa\u5b9a\u7684\u5e38\u91cf\uff0c\u800c\u4e0d\u662f\u6620\u5c04\u5230\u5177\u4f53\u7684\u6570\u636e\u53d8\u91cf\u3002

\u8981\u6b63\u786e\u4f7f\u7528aes()\u51fd\u6570\u4e2d\u7684color\u53c2\u6570\uff0c\u5e94\u5c06\u5b83\u4e0e\u5b9e\u9645\u7684\u6570\u636e\u53d8\u91cf\u76f8\u5173\u8054\uff0c\u4ee5\u4fbf\u6839\u636e\u6570\u636e\u7684\u4e0d\u540c\u503c\u6765\u786e\u5b9a\u989c\u8272\u3002\u5728\u60a8\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u5c06\u4fee\u6b63\u4ee3\u7801\u4ee5\u6b63\u786e\u6620\u5c04\u989c\u8272\u503c\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndf <- data.frame(A = c(1, 2, 3, 4, 5),\n                 B = c(2, 4, 6, 8, 10),\n                 C = c(22, 24, 26, 28, 30))\n\n# \u521b\u5efa\u6563\u70b9\u56fe\u548c\u7ebf\u56fe\nggplot(data = df) +\n  geom_point(aes(x = A, y = B), color = \"black\") +\n  geom_line(aes(x = A, y = C), color = \"pink\")\n

\u5728\u4fee\u6b63\u540e\u7684\u4ee3\u7801\u4e2d\uff0c\u6211\u4eec\u5c06color\u53c2\u6570\u76f4\u63a5\u653e\u5728geom_point()\u548cgeom_line()\u51fd\u6570\u4e2d\uff0c\u5e76\u5c06\u5176\u8bbe\u7f6e\u4e3a\u5b57\u7b26\u5e38\u91cf\uff0c\u5982color = \"black\"\u548ccolor = \"pink\"\u3002\u8fd9\u6837\uff0ccolor\u53c2\u6570\u88ab\u89c6\u4e3a\u9759\u6001\u7684\u989c\u8272\u503c\uff0c\u6240\u6709\u7684\u6563\u70b9\u548c\u7ebf\u90fd\u4f1a\u88ab\u6e32\u67d3\u4e3a\u76f8\u5e94\u7684\u989c\u8272\u3002

\u5982\u679c\u60a8\u5e0c\u671b\u6839\u636e\u6570\u636e\u53d8\u91cf\u7684\u4e0d\u540c\u503c\u6765\u786e\u5b9a\u989c\u8272\uff0c\u53ef\u4ee5\u5c06color\u53c2\u6570\u4e0e\u5b9e\u9645\u7684\u6570\u636e\u53d8\u91cf\u76f8\u5173\u8054\uff0c\u5982color = variable\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528scale_color_manual()\u51fd\u6570\u6765\u624b\u52a8\u6307\u5b9a\u989c\u8272\u6620\u5c04\u5173\u7cfb\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

ggplot(data = df) +\n  geom_point(aes(x = A, y = B, color = \"Variable 1\")) +\n  geom_line(aes(x = A, y = C, color = \"Variable 2\")) +\n  scale_color_manual(values = c(\"Variable 1\" = \"black\", \"Variable 2\" = \"pink\"))\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0ccolor\u53c2\u6570\u4e0e\u5b57\u7b26\u4e32\u53d8\u91cf\u76f8\u5173\u8054\uff0c\u5982color = \"Variable 1\"\u548ccolor = \"Variable 2\"\u3002\u7136\u540e\uff0c\u4f7f\u7528scale_color_manual()\u51fd\u6570\u624b\u52a8\u6307\u5b9a\u4e86\u8fd9\u4e9b\u53d8\u91cf\u7684\u989c\u8272\u6620\u5c04\u5173\u7cfb\uff0c\u5206\u522b\u4e3a\u9ed1\u8272\u548c\u7c89\u8272\u3002\u8fd9\u6837\uff0c\u6563\u70b9\u548c\u7ebf\u5c06\u6839\u636e\u6570\u636e\u53d8\u91cf\u7684\u4e0d\u540c\u503c\u663e\u793a\u76f8\u5e94\u7684\u989c\u8272\u3002

"},{"location":"R/ggplot2/color%E8%AF%A6%E6%83%85/","title":"Color\u8be6\u60c5","text":"

ggplot2 \u5305\u4e2d\u63d0\u4f9b\u4e86\u4e00\u4e9b\u9884\u5b9a\u4e49\u7684\u989c\u8272\uff0c\u53ef\u4ee5\u901a\u8fc7\u540d\u79f0\u76f4\u63a5\u4f7f\u7528\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u989c\u8272\u540d\u79f0\uff1a

  1. \u57fa\u672c\u989c\u8272\uff1a
  2. \"black\": \u9ed1\u8272
  3. \"red\": \u7ea2\u8272
  4. \"green\": \u7eff\u8272
  5. \"blue\": \u84dd\u8272
  6. \"purple\": \u7d2b\u8272
  7. \"orange\": \u6a59\u8272
  8. \"pink\": \u7c89\u8272
  9. \"brown\": \u68d5\u8272
  10. \"gray\": \u7070\u8272

  11. \u7070\u5ea6\u989c\u8272\uff1a

  12. \"grey20\", \"grey40\", ..., \"grey90\": \u4e0d\u540c\u7070\u5ea6\u7684\u989c\u8272\uff0c\u6570\u5b57\u8868\u793a\u7070\u5ea6\u7684\u767e\u5206\u6bd4\u3002

  13. \u5341\u516d\u8fdb\u5236\u989c\u8272\uff1a

  14. \u53ef\u4ee5\u4f7f\u7528\u5341\u516d\u8fdb\u5236\u8868\u793a\u7684\u989c\u8272\uff0c\u4f8b\u5982 \"#FF0000\" \u8868\u793a\u7ea2\u8272\uff0c\"#00FF00\" \u8868\u793a\u7eff\u8272\u3002

  15. \u989c\u8272\u540d\u79f0\uff1a

  16. \"skyblue\", \"seagreen\", \"firebrick\", \u7b49\u7b49\u3002\u8fd9\u4e9b\u662f\u4e00\u4e9b\u5e38\u89c1\u989c\u8272\u7684\u540d\u79f0\u3002

  17. \u8c03\u8272\u677f\uff1a

  18. scale_fill_brewer(), scale_color_brewer(): \u4f7f\u7528\u8c03\u8272\u677f\uff0c\u5982\"Blues\"\u3001\"Greens\"\u7b49\u3002

  19. \u5176\u4ed6\u989c\u8272\u51fd\u6570\uff1a

  20. scale_fill_manual(), scale_color_manual(): \u4f7f\u7528\u81ea\u5b9a\u4e49\u989c\u8272\uff0c\u53ef\u4ee5\u4f20\u9012\u4e00\u4e2a\u989c\u8272\u5411\u91cf\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u5728ggplot2\u4e2d\u4f7f\u7528\u989c\u8272\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3, 4),\n  y = c(10, 15, 13, 8)\n)\n\n# \u4f7f\u7528 ggplot2 \u521b\u5efa\u6563\u70b9\u56fe\uff0c\u5e76\u6307\u5b9a\u989c\u8272\u4e3a\u7ea2\u8272\nggplot(data, aes(x, y)) +\n  geom_point(color = \"red\") +\n  labs(title = \"Scatter Plot\", x = \"X-axis\", y = \"Y-axis\")\n

\u5728\u4e0a\u8ff0\u4ee3\u7801\u4e2d\uff0ccolor = \"red\" \u6307\u5b9a\u4e86\u6563\u70b9\u7684\u989c\u8272\u4e3a\u7ea2\u8272\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u66ff\u6362\u4e3a\u5176\u4ed6\u989c\u8272\u540d\u79f0\u6216\u5341\u516d\u8fdb\u5236\u8868\u793a\u3002

"},{"location":"R/ggplot2/coord_cartesian%28%29/","title":"Coord cartesian()","text":"

coord_cartesian()\u00a0\u51fd\u6570\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u8bbe\u7f6e\u5750\u6807\u7cfb\u8303\u56f4\u7684\u51fd\u6570\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u9650\u5236\u7ed8\u56fe\u7684\u53ef\u89c6\u5316\u8303\u56f4\uff0c\u800c\u4e0d\u6539\u53d8\u6570\u636e\u7684\u5b9e\u9645\u8303\u56f4\u3002

coord_cartesian(xlim = NULL, ylim = NULL, xlim_expand = c(0, 0), ylim_expand = c(0, 0))\n

\u53c2\u6570\u8bf4\u660e\uff1a - xlim: \u7528\u4e8e\u8bbe\u7f6e x \u8f74\u7684\u53ef\u89c6\u5316\u8303\u56f4\uff0c\u8f93\u5165\u4e00\u4e2a\u957f\u5ea6\u4e3a2\u7684\u5411\u91cf\uff0c\u5305\u542b\u6700\u5c0f\u503c\u548c\u6700\u5927\u503c\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u4e0d\u5bf9 x \u8f74\u8303\u56f4\u8fdb\u884c\u9650\u5236\u3002 - ylim: \u7528\u4e8e\u8bbe\u7f6e y \u8f74\u7684\u53ef\u89c6\u5316\u8303\u56f4\uff0c\u8f93\u5165\u4e00\u4e2a\u957f\u5ea6\u4e3a2\u7684\u5411\u91cf\uff0c\u5305\u542b\u6700\u5c0f\u503c\u548c\u6700\u5927\u503c\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u4e0d\u5bf9 y \u8f74\u8303\u56f4\u8fdb\u884c\u9650\u5236\u3002 - xlim_expand: \u7528\u4e8e\u8bbe\u7f6e\u5750\u6807\u8f74\u8303\u56f4\u7684\u6269\u5c55\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5750\u6807\u7cfb\u4f1a\u81ea\u52a8\u6269\u5c55\u4e00\u5b9a\u6bd4\u4f8b\u7684\u7a7a\u95f4\uff0c\u4ee5\u786e\u4fdd\u6570\u636e\u70b9\u4e0d\u4f1a\u7d27\u8d34\u8fb9\u754c\u3002\u53ef\u4ee5\u4f7f\u7528 xlim_expand \u8bbe\u7f6e\u4e3a c(0, 0) \u6765\u7981\u7528\u8fd9\u79cd\u6269\u5c55\u3002 - ylim_expand: \u7528\u4e8e\u8bbe\u7f6e\u5750\u6807\u8f74\u8303\u56f4\u7684\u6269\u5c55\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5750\u6807\u7cfb\u4f1a\u81ea\u52a8\u6269\u5c55\u4e00\u5b9a\u6bd4\u4f8b\u7684\u7a7a\u95f4\uff0c\u4ee5\u786e\u4fdd\u6570\u636e\u70b9\u4e0d\u4f1a\u7d27\u8d34\u8fb9\u754c\u3002\u53ef\u4ee5\u4f7f\u7528 ylim_expand \u8bbe\u7f6e\u4e3a c(0, 0) \u6765\u7981\u7528\u8fd9\u79cd\u6269\u5c55\u3002 \u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\u6846\ndf <- data.frame(x = 1:10, y = 1:10)\n\n# \u7ed8\u5236\u6563\u70b9\u56fe\nggplot(df, aes(x, y)) +\n  geom_point() +\n  coord_cartesian(xlim = c(2, 8), ylim = c(3, 9))\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846\u00a0df\uff0c\u5176\u4e2d\u5305\u542b\u4e24\u4e2a\u53d8\u91cf\u00a0x\u00a0\u548c\u00a0y\uff0c\u5206\u522b\u53d6\u503c\u4e3a 1 \u5230 10\u3002\u6211\u4eec\u4f7f\u7528\u00a0ggplot()\u00a0\u521b\u5efa\u4e00\u4e2a\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528\u00a0aes()\u00a0\u51fd\u6570\u6307\u5b9a\u00a0x\u00a0\u548c\u00a0y\u00a0\u4f5c\u4e3a\u6563\u70b9\u56fe\u7684 x \u8f74\u548c y \u8f74\u53d8\u91cf\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528\u00a0geom_point()\u00a0\u7ed8\u5236\u6563\u70b9\u56fe\u3002\u5728\u00a0coord_cartesian()\u00a0\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u00a0xlim\u00a0\u53c2\u6570\u5c06 x \u8f74\u7684\u53ef\u89c6\u5316\u8303\u56f4\u9650\u5236\u4e3a 2 \u5230 8\uff0c\u4f7f\u7528\u00a0ylim\u00a0\u53c2\u6570\u5c06 y \u8f74\u7684\u53ef\u89c6\u5316\u8303\u56f4\u9650\u5236\u4e3a 3 \u5230 9\u3002\u8fd9\u6837\uff0c\u7ed8\u56fe\u5c06\u53ea\u663e\u793a\u6307\u5b9a\u8303\u56f4\u5185\u7684\u6570\u636e\u70b9\uff0c\u800c\u4e0d\u6539\u53d8\u6570\u636e\u7684\u5b9e\u9645\u8303\u56f4\u3002

\u8fd9\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u793a\u4f8b\uff0c\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8c03\u6574\u00a0coord_cartesian()\u00a0\u51fd\u6570\u7684\u53c2\u6570\u6765\u63a7\u5236\u7ed8\u56fe\u7684\u5750\u6807\u7cfb\u8303\u56f4\u3002

"},{"location":"R/ggplot2/coord_flip%28%29/","title":"Coord flip()","text":"

coord_flip() \u662f ggplot2 \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u5236\u56fe\u8868\u65f6\u7ffb\u8f6c x \u548c y \u8f74\u7684\u65b9\u5411\u3002\u5b83\u53ef\u4ee5\u5728\u6563\u70b9\u56fe\u3001\u6761\u5f62\u56fe\u3001\u7bb1\u7ebf\u56fe\u7b49\u56fe\u5f62\u4e2d\u6539\u53d8\u5750\u6807\u8f74\u7684\u65b9\u5411\uff0c\u4f7f\u5f97\u539f\u672c\u5728 x \u8f74\u4e0a\u7684\u6570\u636e\u663e\u793a\u5728 y \u8f74\u4e0a\uff0c\u800c\u539f\u672c\u5728 y \u8f74\u4e0a\u7684\u6570\u636e\u663e\u793a\u5728 x \u8f74\u4e0a\u3002

coord_flip() \u51fd\u6570\u4e0d\u63a5\u53d7\u4efb\u4f55\u53c2\u6570\uff0c\u5b83\u53ea\u662f\u7b80\u5355\u5730\u7ffb\u8f6c x \u548c y \u8f74\u7684\u65b9\u5411\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 coord_flip() \u51fd\u6570\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u96c6\ndata <- data.frame(\n  Category = c(\"A\", \"B\", \"C\", \"D\"),\n  Value = c(10, 20, 15, 12)\n)\n\n# \u7ed8\u5236\u5782\u76f4\u6761\u5f62\u56fe\np <- ggplot(data, aes(x = Category, y = Value)) +\n  geom_bar(stat = \"identity\")\n\n# \u4f7f\u7528 coord_flip() \u7ffb\u8f6c\u5750\u6807\u8f74\u65b9\u5411\np_flipped <- p + coord_flip()\n\n# \u663e\u793a\u56fe\u5f62\nprint(p_flipped)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u5206\u7c7b\u53d8\u91cf\u548c\u6570\u503c\u53d8\u91cf\u7684\u6570\u636e\u6846 data\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u7840\u56fe\u8868\u5bf9\u8c61 p\uff0c\u5176\u4e2d x \u8f74\u6620\u5c04\u5230 Category \u53d8\u91cf\uff0cy \u8f74\u6620\u5c04\u5230 Value \u53d8\u91cf\uff0c\u5e76\u4f7f\u7528 geom_bar() \u51fd\u6570\u7ed8\u5236\u4e86\u5782\u76f4\u6761\u5f62\u56fe\u3002

\u63a5\u7740\uff0c\u901a\u8fc7\u5728\u57fa\u7840\u56fe\u8868\u5bf9\u8c61 p \u4e0a\u6dfb\u52a0 coord_flip() \u51fd\u6570\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u65b0\u7684\u56fe\u8868\u5bf9\u8c61 p_flipped\uff0c\u8be5\u5bf9\u8c61\u4f7f\u7528 coord_flip() \u7ffb\u8f6c\u4e86\u5750\u6807\u8f74\u7684\u65b9\u5411\u3002

\u6700\u540e\uff0c\u901a\u8fc7 print(p_flipped) \u5c06\u7ffb\u8f6c\u540e\u7684\u56fe\u8868\u663e\u793a\u51fa\u6765\u3002\u73b0\u5728\uff0c\u539f\u672c\u5728 x \u8f74\u4e0a\u7684\u5206\u7c7b\u53d8\u91cf\u663e\u793a\u5728 y \u8f74\u4e0a\uff0c\u800c\u539f\u672c\u5728 y \u8f74\u4e0a\u7684\u6570\u503c\u53d8\u91cf\u663e\u793a\u5728 x \u8f74\u4e0a\u3002

\u8bf7\u6ce8\u610f\uff0ccoord_flip() \u51fd\u6570\u901a\u5e38\u4e0e\u5176\u4ed6\u56fe\u5f62\u51fd\u6570\uff08\u5982 geom_bar()\u3001geom_boxplot() \u7b49\uff09\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u5728\u7ed8\u56fe\u65f6\u7ffb\u8f6c\u5750\u6807\u8f74\u7684\u65b9\u5411\u3002

"},{"location":"R/ggplot2/coord_polar%28%29/","title":"Coord polar()","text":"

coord_polar() \u662f ggplot2 \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u5236\u56fe\u8868\u65f6\u5c06\u5750\u6807\u7cfb\u8f6c\u6362\u4e3a\u6781\u5750\u6807\u7cfb\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u521b\u5efa\u6781\u5750\u6807\u4e0b\u7684\u997c\u56fe\u3001\u96f7\u8fbe\u56fe\u7b49\u56fe\u5f62\u3002 \u51fd\u6570\u5b9a\u4e49:

coord_polar(theta = \"x\", start = 0, direction = 1, clip = \"on\")\n

\u53c2\u6570\u8bf4\u660e: - theta: \u6307\u5b9a\u6781\u5750\u6807\u7cfb\u4e2d\u7684\u89d2\u5ea6\u53d8\u91cf\uff0c\u9ed8\u8ba4\u503c\u4e3a \"x\"\uff0c\u5373\u4f7f\u7528 x \u8f74\u7684\u53d8\u91cf\u4f5c\u4e3a\u89d2\u5ea6\u3002\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u5176\u4ed6\u53d8\u91cf\u540d\u6216\u8868\u8fbe\u5f0f\uff0c\u5982 theta = \"y\"\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a\u5e38\u91cf\u503c\uff0c\u5c06\u521b\u5efa\u4e00\u4e2a\u5e73\u5747\u89d2\u5ea6\u7684\u997c\u56fe\u3002 - start: \u89d2\u5ea6\u8d77\u59cb\u503c\uff0c\u9ed8\u8ba4\u4e3a 0\uff08\u6c34\u5e73\u65b9\u5411\uff09\u3002\u53ef\u4ee5\u8bbe\u7f6e\u5176\u4ed6\u89d2\u5ea6\u503c\uff0c\u5982 start = pi/2\uff08\u5782\u76f4\u65b9\u5411\uff09\u3002 - direction: \u89d2\u5ea6\u589e\u957f\u65b9\u5411\uff0c\u53d6\u503c\u4e3a 1\uff08\u987a\u65f6\u9488\uff09\u6216 -1\uff08\u9006\u65f6\u9488\uff09\uff0c\u9ed8\u8ba4\u4e3a 1\u3002 - clip: \u63a7\u5236\u56fe\u5f62\u662f\u5426\u88ab\u88c1\u526a\uff0c\u9ed8\u8ba4\u4e3a \"on\"\uff0c\u8868\u793a\u88c1\u526a\u56fe\u5f62\u8d85\u51fa\u7ed8\u56fe\u533a\u57df\u7684\u90e8\u5206\u3002\u53ef\u4ee5\u8bbe\u7f6e\u4e3a \"off\"\uff0c\u4ee5\u663e\u793a\u8d85\u51fa\u7ed8\u56fe\u533a\u57df\u7684\u5b8c\u6574\u56fe\u5f62\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528 coord_polar() \u51fd\u6570\u521b\u5efa\u6781\u5750\u6807\u56fe\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u96c6\ndata <- data.frame(\n  Category = c(\"A\", \"B\", \"C\", \"D\"),\n  Value = c(10, 20, 15, 12)\n)\n\n# \u7ed8\u5236\u997c\u56fe\np <- ggplot(data, aes(x = \"\", y = Value, fill = Category)) +\n  geom_bar(stat = \"identity\") +\n  coord_polar(theta = \"y\")\n\n# \u663e\u793a\u56fe\u5f62\nprint(p)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u5206\u7c7b\u53d8\u91cf\u548c\u6570\u503c\u53d8\u91cf\u7684\u6570\u636e\u6846 data\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u7840\u56fe\u8868\u5bf9\u8c61 p\uff0c\u5176\u4e2d x \u8f74\u6620\u5c04\u4e3a\u7a7a\u5b57\u7b26\u4e32\uff0cy \u8f74\u6620\u5c04\u5230 Value \u53d8\u91cf\uff0c\u5e76\u4f7f\u7528 geom_bar() \u51fd\u6570\u7ed8\u5236\u4e86\u997c\u56fe\u3002\u6ce8\u610f\uff0c\u8fd9\u91cc\u7684 fill \u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u997c\u56fe\u7684\u6247\u533a\u586b\u5145\u989c\u8272\u3002

\u63a5\u7740\uff0c\u901a\u8fc7\u5728\u57fa\u7840\u56fe\u8868\u5bf9\u8c61 p \u4e0a\u6dfb\u52a0 coord_polar(theta = \"y\")\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u65b0\u7684\u56fe\u8868\u5bf9\u8c61 p\uff0c\u8be5\u5bf9\u8c61\u4f7f\u7528 coord_polar() \u5c06\u5750\u6807\u7cfb\u8f6c\u6362\u4e3a\u6781\u5750\u6807\u7cfb\uff0c\u5176\u4e2d theta \u53c2\u6570\u8bbe\u7f6e\u4e3a \"y\"\uff0c\u8868\u793a\u4f7f\u7528 y \u8f74\u7684\u53d8\u91cf\u4f5c\u4e3a\u89d2\u5ea6\u3002

\u6700\u540e\uff0c\u901a\u8fc7 print(p) \u5c06\u6781\u5750\u6807\u997c\u56fe\u663e\u793a\u51fa\u6765\u3002

\u8bf7\u6ce8\u610f\uff0ccoord_polar() \u51fd\u6570\u901a\u5e38\u4e0e\u5176\u4ed6\u56fe\u5f62\u51fd\u6570\uff08\u5982 geom_bar()\u3001geom_point() \u7b49\uff09\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u5728\u6781\u5750\u6807\u4e0b\u7ed8\u5236\u5177\u4f53\u7684\u56fe\u5f62\u3002

"},{"location":"R/ggplot2/facet_%28%29/","title":"Facet ()","text":"

\u51fd\u6570\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u521b\u5efa\u5206\u9762\u56fe\uff08Facet Plot\uff09\u7684\u51fd\u6570\u3002\u5206\u9762\u56fe\u53ef\u4ee5\u5c06\u6570\u636e\u96c6\u6309\u7167\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u8fdb\u884c\u62c6\u5206\uff0c\u5e76\u5728\u6bcf\u4e2a\u5b50\u56fe\u4e2d\u663e\u793a\u5bf9\u5e94\u7684\u6570\u636e\u5b50\u96c6\u3002\u8fd9\u79cd\u53ef\u89c6\u5316\u65b9\u5f0f\u53ef\u4ee5\u65b9\u4fbf\u5730\u6bd4\u8f83\u4e0d\u540c\u5b50\u96c6\u4e4b\u95f4\u7684\u5dee\u5f02\uff0c\u540c\u65f6\u4fdd\u7559\u6574\u4f53\u6570\u636e\u7684\u4e0a\u4e0b\u6587\u3002

facet_*() \u51fd\u6570\u7684\u5177\u4f53\u540d\u79f0\u53d6\u51b3\u4e8e\u4f60\u60f3\u8981\u521b\u5efa\u7684\u5206\u9762\u56fe\u7684\u7c7b\u578b\uff0c\u5982 facet_wrap()\u3001facet_grid() \u7b49\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684 facet_*() \u51fd\u6570\u53ca\u5176\u529f\u80fd\uff1a

  • facet_wrap(): \u6839\u636e\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u521b\u5efa\u7f51\u683c\u5206\u9762\u56fe\u3002\u5b83\u4ee5\u53d8\u91cf\u7684\u7ec4\u5408\u4e3a\u57fa\u7840\uff0c\u5728\u6bcf\u4e2a\u5b50\u56fe\u4e2d\u663e\u793a\u5bf9\u5e94\u7684\u6570\u636e\u5b50\u96c6\u3002

\u793a\u4f8b\uff1a

# \u4f7f\u7528\"Species\"\u53d8\u91cf\u521b\u5efa\u7f51\u683c\u5206\u9762\u56fe\nfacet_wrap(~ Species)\n

  • facet_grid(): \u6839\u636e\u4e24\u4e2a\u53d8\u91cf\u521b\u5efa\u7f51\u683c\u5206\u9762\u56fe\u3002\u5b83\u4ee5\u4e24\u4e2a\u53d8\u91cf\u7684\u7ec4\u5408\u4e3a\u57fa\u7840\uff0c\u5728\u6bcf\u4e2a\u5b50\u56fe\u4e2d\u663e\u793a\u5bf9\u5e94\u7684\u6570\u636e\u5b50\u96c6\u3002

\u793a\u4f8b\uff1a

# \u4f7f\u7528\"Species\"\u548c\"Sex\"\u53d8\u91cf\u521b\u5efa\u7f51\u683c\u5206\u9762\u56fe\nfacet_grid(Species ~ Sex)\n

  • facet_grid() \u8fd8\u53ef\u4ee5\u4f7f\u7528 . \u6765\u8868\u793a\"\u6240\u6709\u53d8\u91cf\"\uff0c\u4f8b\u5982 facet_grid(. ~ Species) \u8868\u793a\u6839\u636e\u6240\u6709\u53d8\u91cf\u4e0e\"Species\"\u53d8\u91cf\u7684\u7ec4\u5408\u521b\u5efa\u7f51\u683c\u5206\u9762\u56fe\u3002

  • \u5176\u4ed6\u7279\u5b9a\u7684 facet_*() \u51fd\u6570\uff0c\u5982 facet_wrap_paginate()\u3001facet_nested() \u7b49\uff0c\u7528\u4e8e\u7279\u5b9a\u7684\u5206\u9762\u56fe\u9700\u6c42\u3002

\u901a\u8fc7\u4f7f\u7528\u9002\u5f53\u7684 facet_*() \u51fd\u6570\uff0c\u53ef\u4ee5\u6839\u636e\u53d8\u91cf\u7684\u7ec4\u5408\u521b\u5efa\u5206\u9762\u56fe\uff0c\u5e76\u5728\u6bcf\u4e2a\u5b50\u56fe\u4e2d\u5c55\u793a\u5bf9\u5e94\u7684\u6570\u636e\u5b50\u96c6\u3002\u53ef\u4ee5\u6839\u636e\u6570\u636e\u96c6\u7684\u7279\u5f81\u548c\u5206\u6790\u76ee\u7684\uff0c\u9009\u62e9\u5408\u9002\u7684\u5206\u9762\u56fe\u7c7b\u578b\u548c\u53d8\u91cf\u8bbe\u7f6e\u3002

"},{"location":"R/ggplot2/facet_grid%28%29/","title":"Facet grid()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cggplot2\u5305\u4e2d\u7684facet_grid()\u51fd\u6570\u7528\u4e8e\u5c06\u6570\u636e\u6309\u7167\u6307\u5b9a\u7684\u53d8\u91cf\u5728\u7f51\u683c\u4e2d\u5206\u7ec4\uff0c\u5e76\u5728\u6bcf\u4e2a\u5c0f\u9762\u677f\u4e2d\u7ed8\u5236\u5bf9\u5e94\u7684\u56fe\u5f62\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

facet_grid(rows = NULL, cols = NULL, scales = \"fixed\", space = \"fixed\", shrink = TRUE, labeller = \"label_value\", as.table = TRUE, switch = NULL, drop = TRUE, margins = FALSE, drop.unused.levels = TRUE)\n

\u53c2\u6570\uff1a - rows\uff1a\u7528\u4e8e\u5728\u884c\u65b9\u5411\u4e0a\u5206\u7ec4\u7684\u53d8\u91cf\u540d\u6216\u516c\u5f0f\u3002

  • cols\uff1a\u7528\u4e8e\u5728\u5217\u65b9\u5411\u4e0a\u5206\u7ec4\u7684\u53d8\u91cf\u540d\u6216\u516c\u5f0f\u3002

rows = vars(column) cols = vars(column) vars()\u6839\u636e\u6307\u5b9a\u5b57\u6bb5\u4e2d\u6570\u636e\u7684\u7c7b\u522b\u8fdb\u884c\u5206\u7ec4\uff01

  • scales\uff1a\u523b\u5ea6\u7684\u7c7b\u578b\uff0c\u7ea6\u675f\u5728\u540c\u4e00\u5c3a\u5ea6\u4e0a\u65b9\u4fbf\u6bd4\u8f83\u3002\u9ed8\u8ba4\u4e3a\"fixed\"\uff0c\u8868\u793a\u6bcf\u4e2a\u5b50\u56fe\u5177\u6709\u72ec\u7acb\u7684\u5750\u6807\u8f74\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3a\"free\"\uff0c\u5219\u5b50\u56fe\u4e4b\u95f4\u7684\u5750\u6807\u8f74\u53ef\u4ee5\u4e0d\u540c\u3002

  • space\uff1a\u8868\u793a\u5b50\u56fe\u4e4b\u95f4\u7684\u95f4\u8ddd\u3002\u9ed8\u8ba4\u4e3a\"fixed\"\uff0c\u8868\u793a\u5b50\u56fe\u4e4b\u95f4\u7684\u95f4\u8ddd\u56fa\u5b9a\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3a\"free\"\uff0c\u5219\u5b50\u56fe\u4e4b\u95f4\u7684\u95f4\u8ddd\u53ef\u4ee5\u4e0d\u540c\u3002

  • shrink\uff1a\u8868\u793a\u662f\u5426\u6839\u636e\u5b50\u56fe\u7684\u76f8\u5bf9\u5927\u5c0f\u81ea\u52a8\u8c03\u6574\u6bcf\u4e2a\u5b50\u56fe\u7684\u5927\u5c0f\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002

  • labeller\uff1a\u63a7\u5236\u5c0f\u9762\u677f\u6807\u7b7e\u7684\u663e\u793a\u65b9\u5f0f\uff0c\u53ef\u4ee5\u662f\u5b57\u7b26\u5411\u91cf\u3001\u51fd\u6570\u6216\u6807\u7b7e\u89c4\u8303\u3002

  • as.table\uff1a\u5e03\u5c14\u503c\uff0c\u6307\u793a\u662f\u5426\u4ee5\u8868\u683c\u5f62\u5f0f\u6392\u5217\u5c0f\u9762\u677f\u3002

  • switch\uff1a\u5728\u884c\u548c\u5217\u4e4b\u95f4\u5207\u6362\u53d8\u91cf\u7684\u987a\u5e8f\u3002

  • drop\uff1a\u5e03\u5c14\u503c\uff0c\u6307\u793a\u662f\u5426\u5220\u9664\u6ca1\u6709\u6570\u636e\u7684\u5c0f\u9762\u677f\u3002

  • margins\uff1a\u5e03\u5c14\u503c\uff0c\u6307\u793a\u662f\u5426\u6dfb\u52a0\u8fb9\u9645\u5c0f\u9762\u677f\u3002

  • drop.unused.levels\uff1a\u5e03\u5c14\u503c\uff0c\u6307\u793a\u662f\u5426\u5220\u9664\u672a\u4f7f\u7528\u7684\u6c34\u5e73\u3002

library(ggplot2)\n\n# \u521b\u5efa\u6570\u636e\u96c6\ndata <- data.frame(\n  x = rep(1:4, 3),\n  y = rep(c(\"A\", \"B\", \"C\"), each = 4),\n  value = rnorm(12)\n)\n\n# \u521b\u5efa\u57fa\u672c\u56fe\u5f62\np <- ggplot(data, aes(x, value)) +\n  geom_point() +\n  labs(title = \"My Plot\", x = \"X\", y = \"Value\")\n\n# \u6839\u636ey\u53d8\u91cf\u5206\u7ec4\u5e76\u7ed8\u5236\u7f51\u683c\u56fe,\u6216\u8005\u7b2c\u4e09\u4e2a\u53d8\u91cfz\np + facet_grid(rows = vars(y)) \n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7dggplot2\u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u96c6 data\uff0c\u5305\u542b\u4e86x\u548cy\u7684\u503c\u4ee5\u53ca\u4e00\u4e2a\u968f\u673a\u751f\u6210\u7684\u503c\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u56fe\u5f62 p\uff0c\u5e76\u4f7f\u7528geom_point()\u6dfb\u52a0\u4e86\u6563\u70b9\u56fe\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528labs()\u51fd\u6570\u8bbe\u7f6e\u56fe\u5f62\u7684\u6807\u9898\u548c\u8f74\u6807\u7b7e\u3002

\u6700\u540e\uff0c\u6211\u4eec\u8c03\u7528facet_grid()\u51fd\u6570\u6765\u8fdb\u884c\u6570\u636e\u5206\u7ec4\u5e76\u7ed8\u5236\u7f51\u683c\u56fe\u3002\u5728facet_grid()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86rows\u53c2\u6570\u6765\u6307\u5b9a\u6309\u7167y\u53d8\u91cf\u5728\u884c\u65b9\u5411\u4e0a\u8fdb\u884c\u5206\u7ec4\u3002\u8fd9\u5c06\u4e3a\u6bcf\u4e2a\u72ec\u7279\u7684y\u503c\u521b\u5efa\u4e00\u4e2a\u5c0f\u9762\u677f\uff0c\u5e76\u5728\u6bcf\u4e2a\u5c0f\u9762\u677f\u4e2d\u7ed8\u5236\u5bf9\u5e94\u7684\u56fe\u5f62\u3002

"},{"location":"R/ggplot2/facet_grid%28%29/#facet_gridvarsdrv-varscyl","title":"facet_grid(vars(drv), vars(cyl))","text":"

\u884c\u3001\u7eb5\u4e00\u8d77\u5206

\u76f8\u5173\u4e8e\u6309\u7167\u591a\u4e2a\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\uff0c\u4f46\u5bf9\u67d0\u4e2a\u53d8\u91cf\u5206\u7ec4\u540e\u6ca1\u6709\u5bf9\u5e94\u6570\u503c\uff0c\u6240\u4ee5\u4e3a\u7a7a\uff0c\u6ca1\u6709\u6563\u70b9

"},{"location":"R/ggplot2/facet_wrap%28%29/","title":"Facet wrap()","text":"

\u662fggplot2\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u5206\u5272\u6210\u591a\u4e2a\u5c0f\u56fe\uff0c\u5e76\u6839\u636e\u67d0\u4e2a\u53d8\u91cf\u7684\u6c34\u5e73\u503c\u521b\u5efa\u591a\u4e2a\u5b50\u56fe\u3002\u5b83\u53ef\u7528\u4e8e\u5c06\u6570\u636e\u6309\u7167\u67d0\u4e2a\u56e0\u5b50\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u5728\u6bcf\u4e2a\u5b50\u56fe\u4e2d\u7ed8\u5236\u76f8\u5e94\u7684\u56fe\u5f62\u3002

\u6709\u7a7a\u7814\u7a76\u4e0b R\u8bed\u8a00ggplot\u7b14\u8bb0\uff08\u4e09\uff09\uff1a\u57fa\u7840\u8bed\u6cd5\u7bc7\uff08\u4e0b\uff09 - \u67da\u5b50\u554a\u67da\u5b50\u7684\u6587\u7ae0 - \u77e5\u4e4e https://zhuanlan.zhihu.com/p/101877243

\u5982\u4f55\u4f7f\u7528 ggplot2 \uff1f - \u5fc3\u7406\u7edf\u8ba1\u8054\u76df\u7684\u56de\u7b54 - \u77e5\u4e4e https://www.zhihu.com/question/24779017/answer/3188530425

facet_wrap(facets, nrow = NULL, ncol = NULL, scales = \"fixed\", shrink = TRUE, labeller = \"label_value\", as.table = TRUE, switch = NULL, dir = \"h\", strip.position = \"top\")\n
  • facets\uff1a

    vars()\uff1avars(z1, z2)

    ~ variable\uff1a~ z1 + z2\uff0c\u7ecf\u5178\u8868\u8fbe\u5f0f\u3002\u8868\u793a\u7528\u4e8e\u5206\u7ec4\u7684\u56e0\u5b50\u53d8\u91cfz\u3002\u5b83\u53ef\u4ee5\u662f\u5355\u4e2a\u53d8\u91cf\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a\u53d8\u91cf\u7684\u7ec4\u5408\u3002

    c(z1, z2)\uff1a\u4e5f\u53ef\u7528\u5411\u91cf\u7684\u5f62\u5f0f

  • nrow\uff1a\u5b50\u56fe\u663e\u793a\u7684\u884c\u6570\u3002\u6839\u636e\u56fa\u5b9a\u884c\u6570\u5206\u5e03\u5b50\u56fe

  • ncol\uff1a\u5b50\u56fe\u663e\u793a\u7684\u5217\u6570\u3002\u6839\u636e\u56fa\u5b9a\u5217\u6570\u5206\u5e03\u5b50\u56fe

\u540c\u65f6\u6307\u5b9a\u5b50\u56fe\u7684\u884c\u3001\u5217\u4e0d\u53ef\u9760\uff01

  • scales\uff1a\u8868\u793a\u662f\u5426\u5728\u5b50\u56fe\u4e4b\u95f4\u5171\u4eab\u5750\u6807\u8f74\u3002\u9ed8\u8ba4\u4e3a\"fixed\"\uff0c\u8868\u793a\u6bcf\u4e2a\u5b50\u56fe\u5177\u6709\u72ec\u7acb\u7684\u5750\u6807\u8f74\uff1b\u5982\u679c\u8bbe\u7f6e\u4e3a\"free\"\uff0c\u5219\u5b50\u56fe\u4e4b\u95f4\u7684\u5750\u6807\u8f74\u53ef\u4ee5\u4e0d\u540c\u3002

  • shrink\uff1a\u8868\u793a\u662f\u5426\u6839\u636e\u5b50\u56fe\u7684\u76f8\u5bf9\u5927\u5c0f\u81ea\u52a8\u8c03\u6574\u6bcf\u4e2a\u5b50\u56fe\u7684\u5927\u5c0f\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002

  • labeller\uff1a\u7528\u4e8e\u8bbe\u7f6e\u5b50\u56fe\u6807\u7b7e\u7684\u6807\u7b7e\u5668\u3002\u9ed8\u8ba4\u4e3a\"label_value\"\uff0c\u8868\u793a\u4f7f\u7528\u56e0\u5b50\u53d8\u91cf\u7684\u503c\u4f5c\u4e3a\u6807\u7b7e\u3002

  • as.table\uff1a\u8868\u793a\u662f\u5426\u5c06\u5b50\u56fe\u6309\u7167\u8868\u683c\u65b9\u5f0f\u6392\u5217\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u6309\u7167\u8868\u683c\u65b9\u5f0f\u6392\u5217\u3002

  • switch\uff1a\u8868\u793a\u662f\u5426\u5728\u5b50\u56fe\u4e4b\u95f4\u8fdb\u884c\u4ea4\u6362\u4ee5\u83b7\u5f97\u66f4\u597d\u7684\u5e03\u5c40\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u4e0d\u8fdb\u884c\u4ea4\u6362\u3002
  • dir\uff1a\u8868\u793a\u5b50\u56fe\u7684\u6392\u5217\u65b9\u5411\u3002\u53ef\u4ee5\u662f\"h\"\uff08\u6c34\u5e73\uff09\u6216\"v\"\uff08\u5782\u76f4\uff09\u3002\u9ed8\u8ba4\u4e3a\"h\"\u3002
  • strip.position\uff1a\u8868\u793a\u5b50\u56fe\u6807\u7b7e\uff08strip\uff09\u7684\u4f4d\u7f6e\u3002\u53ef\u4ee5\u662f\"top\"\u3001\"bottom\"\u3001\"left\"\u6216\"right\"\u3002\u9ed8\u8ba4\u4e3a\"top\"\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528facet_wrap()\u51fd\u6570\u521b\u5efa\u5206\u7ec4\u7684\u5b50\u56fe\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(2, 4, 6, 8, 10),\n  group = c(\"A\", \"A\", \"B\", \"B\", \"C\")\n)\n\n# \u521b\u5efa\u6563\u70b9\u56fe\uff0c\u5e76\u4f7f\u7528facet_wrap()\u8fdb\u884c\u5206\u7ec4\nggplot(data, aes(x = x, y = y)) +\n  geom_point() +\n  facet_wrap(~ group, nrow = 2)\n
\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86x\u548cy\u5750\u6807\u7684\u503c\uff0c\u4ee5\u53ca\u4e00\u4e2a\u5206\u7ec4\u53d8\u91cfgroup\u3002\u7136\u540e\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_point()\u51fd\u6570\u6dfb\u52a0\u6563\u70b9\u56fe\u3002\u4f7f\u7528facet_wrap()\u51fd\u6570\u5c06\u6570\u636e\u6309\u7167group\u53d8\u91cf\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u5728\u6bcf\u4e2a\u5b50\u56fe\u4e2d\u7ed8\u5236\u76f8\u5e94\u7684\u56fe\u5f62\u3002

\u5728\u8f93\u51fa\u56fe\u4e2d\uff0c\u6570\u636e\u88ab\u5206\u4e3a\u4e09\u4e2a\u5b50\u56fe\uff0c\u6bcf\u4e2a\u5b50\u56fe\u5bf9\u5e94\u4e00\u4e2a\u4e0d\u540c\u7684group\u503c\u3002\u901a\u8fc7nrow\u53c2\u6570\uff0c\u6211\u4eec\u8bbe\u7f6e\u6bcf\u884c\u663e\u793a\u4e24\u4e2a\u5b50\u56fe\u3002

"},{"location":"R/ggplot2/facet_wrap%28%29/#_1","title":"\u591a\u56e0\u5b50","text":"
g + facet_wrap(~ year + season, nrow = 4, scales = \"free_x\")\n# free_x\u662f\u6307x\u8f74\u7684\u91cf\u5c3a\u53ef\u4ee5\u81ea\u7531\u53d8\u5316\uff0c\u800cy\u8f74\u4fdd\u6301\u4e0d\u53d8\n
"},{"location":"R/ggplot2/geom_%28%29/","title":"Geom ()","text":"

\u51fd\u6570\u662f ggplot2 \u5305\u4e2d\u7684\u4e00\u7ec4\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u56fe\u5bf9\u8c61\u4e0a\u6dfb\u52a0\u5177\u4f53\u7684\u51e0\u4f55\u5bf9\u8c61\uff0c\u5982\u70b9\u3001\u7ebf\u3001\u6761\u5f62\u3001\u9762\u79ef\u7b49\u3002\u8fd9\u4e9b\u51fd\u6570\u7528\u4e8e\u5b9a\u4e49\u56fe\u5f62\u7684\u51e0\u4f55\u5f62\u72b6\u548c\u5916\u89c2\u5c5e\u6027\uff0c\u901a\u8fc7\u5c06\u5b83\u4eec\u4e0e ggplot() \u51fd\u6570\u548c aes() \u51fd\u6570\u7ed3\u5408\u4f7f\u7528\uff0c\u53ef\u4ee5\u521b\u5efa\u5404\u79cd\u7c7b\u578b\u7684\u56fe\u5f62\u3002

geom_*()\n
geom_*() \u51fd\u6570\u7684\u547d\u540d\u89c4\u5219\u662f\u4ee5 \"geom_\" \u5f00\u5934\uff0c\u540e\u9762\u8ddf\u7740\u5177\u4f53\u7684\u51e0\u4f55\u5bf9\u8c61\u7c7b\u578b\uff0c\u5982 geom_point()\u3001geom_line()\u3001geom_bar()\u3001geom_area() \u7b49\u3002\u6bcf\u4e2a\u51fd\u6570\u90fd\u6709\u81ea\u5df1\u7279\u5b9a\u7684\u53c2\u6570\uff0c\u7528\u4e8e\u63a7\u5236\u51e0\u4f55\u5bf9\u8c61\u7684\u5916\u89c2\u3001\u4f4d\u7f6e\u548c\u6837\u5f0f\u7b49\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684 geom_*() \u51fd\u6570\u53ca\u5176\u529f\u80fd\uff1a - geom_point(): \u6dfb\u52a0\u6563\u70b9\u56fe\uff0c\u7528\u70b9\u8868\u793a\u6570\u636e\u7684\u4f4d\u7f6e\u3002 - geom_line(): \u6dfb\u52a0\u6298\u7ebf\u56fe\uff0c\u7528\u7ebf\u6761\u8fde\u63a5\u6570\u636e\u70b9\u3002 - geom_bar(): \u6dfb\u52a0\u6761\u5f62\u56fe\uff0c\u7528\u77e9\u5f62\u6761\u8868\u793a\u6570\u636e\u7684\u5927\u5c0f\u3002 - geom_area(): \u6dfb\u52a0\u9762\u79ef\u56fe\uff0c\u7528\u586b\u5145\u533a\u57df\u8868\u793a\u6570\u636e\u7684\u53d8\u5316\u3002 - geom_histogram(): \u6dfb\u52a0\u76f4\u65b9\u56fe\uff0c\u7528\u77e9\u5f62\u6761\u8868\u793a\u6570\u636e\u7684\u5206\u5e03\u3002 - geom_boxplot(): \u6dfb\u52a0\u7bb1\u7ebf\u56fe\uff0c\u7528\u7bb1\u4f53\u548c\u7ebf\u6761\u8868\u793a\u6570\u636e\u7684\u5206\u5e03\u548c\u79bb\u7fa4\u70b9\u3002 - geom_text(): \u6dfb\u52a0\u6587\u672c\u6807\u7b7e\uff0c\u7528\u4e8e\u5728\u56fe\u5f62\u4e0a\u663e\u793a\u6587\u5b57\u4fe1\u606f\u3002 - geom_smooth(): \u6dfb\u52a0\u5e73\u6ed1\u66f2\u7ebf\uff0c\u7528\u4e8e\u62df\u5408\u6570\u636e\u7684\u8d8b\u52bf\u3002 - geom_ribbon(): \u6dfb\u52a0\u5e26\u72b6\u56fe\uff0c\u7528\u4e8e\u663e\u793a\u533a\u95f4\u4f30\u8ba1\u6216\u7f6e\u4fe1\u533a\u95f4\u3002 \u8fd9\u4e9b\u51fd\u6570\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u7684\u9700\u6c42\u548c\u6570\u636e\u7c7b\u578b\uff0c\u9009\u62e9\u9002\u5f53\u7684\u51e0\u4f55\u5bf9\u8c61\u6765\u5c55\u793a\u6570\u636e\u3002\u5728\u51fd\u6570\u8c03\u7528\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u53c2\u6570\u6765\u63a7\u5236\u51e0\u4f55\u5bf9\u8c61\u7684\u5916\u89c2\u548c\u6837\u5f0f\uff0c\u5982\u989c\u8272\u3001\u7ebf\u578b\u3001\u70b9\u5f62\u72b6\u3001\u586b\u5145\u989c\u8272\u7b49\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 geom_*() \u51fd\u6570\u5728\u7ed8\u56fe\u5bf9\u8c61\u4e0a\u6dfb\u52a0\u51e0\u4f55\u5bf9\u8c61\uff1a

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\u96c6\ndf <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))\n\n# \u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5b9a\u4e49\u6620\u5c04\u5173\u7cfb\np <- ggplot(data = df, mapping = aes(x = x, y = y))\n\n# \u6dfb\u52a0\u70b9\u56fe\u5c42\np + geom_point()\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u96c6 df\uff0c\u5305\u542b\u4e24\u5217\uff08x \u548c y\uff09\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61 p\uff0c\u5e76\u5728 mapping \u53c2\u6570\u4e2d\u4f7f\u7528 aes() \u51fd\u6570\u5b9a\u4e49\u4e86 x \u548c y \u5217\u4e0e\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\u3002\u6700\u540e\uff0c\u901a\u8fc7 + \u8fd0\u7b97\u7b26\u548c geom_point() \u51fd\u6570\uff0c\u5728\u7ed8\u56fe\u5bf9\u8c61 p \u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u4e86\u4e00\u4e2a\u70b9\u56fe\u5c42\uff0c\u5c06\u6570\u636e\u7684 x \u548c y \u5217\u7684\u503c\u6620\u5c04\u5230\u70b9\u7684\u4f4d\u7f6e\u3002

\u901a\u8fc7\u7ed3\u5408\u4e0d\u540c\u7684 geom_*() \u51fd\u6570\uff0c\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u7ed8\u56fe\u5bf9\u8c61\u4e0a\u6dfb\u52a0\u591a\u4e2a\u51e0\u4f55\u5bf9\u8c61\uff0c\u4ee5\u5c55\u793a\u66f4\u590d\u6742\u7684\u56fe\u5f62\uff0c\u5e76\u6839\u636e\u9700\u8981\u8fdb\u884c\u6837\u5f0f\u548c\u5c5e\u6027\u7684\u8c03\u6574\uff0c\u4ee5\u5b9e\u73b0\u6240\u9700\u7684\u6570\u636e\u53ef\u89c6\u5316\u6548\u679c\u3002

"},{"location":"R/ggplot2/geom_bar%28%29/","title":"Geom bar()","text":"

\u5728ggplot2\u4e2d\uff0c\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u67f1\u72b6\u56fe\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u663e\u793a\u4e0d\u540c\u7c7b\u522b\u6216\u5206\u7ec4\u7684\u9891\u6570\u3001\u8ba1\u6570\u6216\u5176\u4ed6\u7edf\u8ba1\u6307\u6807\u7684\u6bd4\u8f83\u3002\u6570\u636e\u95f4\u6709\u95f4\u9699

geom_bar(\n  mapping = NULL,\n  data = NULL,\n  stat = \"count\",\n  position = \"stack\",\n  ...,\n  width = NULL,\n  fill = NA,\n  color = NA,\n  alpha = NA,\n  ...)\n

\u53c2\u6570\u8bf4\u660e\uff1a

  • mapping: \u7528\u4e8e\u5b9a\u4e49\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u5c5e\u6027\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u4f8b\u5982x\u8f74\u3001y\u8f74\u3001\u989c\u8272\u7b49\u3002

  • data: \u6570\u636e\u6846\uff0c\u5305\u542b\u8981\u7ed8\u5236\u7684\u53d8\u91cf\u3002

  • stat: \u7edf\u8ba1\u53d8\u91cf\u7684\u8ba1\u7b97\u65b9\u6cd5\uff0c\u5e38\u7528\u7684\u6709\"count\"\uff08\u8ba1\u6570\uff09\u548c\"identity\"\uff08\u76f4\u63a5\u4f7f\u7528\u539f\u59cb\u503c\uff0c\u4f7f\u7528\u53d8\u91cf\u7684\u5b9e\u9645\u503c\u4f5c\u4e3a\u67f1\u72b6\u56fe\u7684\u9ad8\u5ea6\u3002 stat = \"identity\"

  • position: \u67f1\u72b6\u56fe\u7684\u6446\u653e\u65b9\u5f0f\uff0c\u5e38\u7528\u7684\u6709\"stack\"\uff08\u9ed8\u8ba4\uff0c\u5806\u53e0\uff09\u3001\"dodge\"\uff08\u5e76\u5217\uff0c\u5bf9x\u8f74\u8fdb\u884c\u5206\u7ec4\uff09\u548c\"fill\"\uff08\u586b\u5145\uff09\u3002

  • width: \u67f1\u72b6\u56fe\u7684\u5bbd\u5ea6\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5e38\u91cf\u503c\u6216\u4e00\u4e2a\u8868\u793a\u5bbd\u5ea6\u7684\u8868\u8fbe\u5f0f\u3002

  • fill: \u67f1\u72b6\u56fe\u7684\u586b\u5145\u989c\u8272\u3002

  • color: \u67f1\u72b6\u56fe\u7684\u8fb9\u6846\u989c\u8272\u3002

  • alpha: \u67f1\u72b6\u56fe\u7684\u900f\u660e\u5ea6\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528geom_bar()\u51fd\u6570\u521b\u5efa\u67f1\u72b6\u56fe\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"A\", \"B\", \"C\"),\n  value = c(10, 15, 8, 12, 9, 6)\n)\n\n# \u521b\u5efa\u67f1\u72b6\u56fe\nggplot(data, aes(x = category, y = value)) +\n  geom_bar(stat = \"identity\", fill = \"blue\", color = \"black\")\n
\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u7c7b\u522b\u53d8\u91cfcategory\u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cfvalue\u3002\u7136\u540e\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_bar()\u51fd\u6570\u6dfb\u52a0\u67f1\u72b6\u56fe\u3002\u5728aes()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u5c06x\u8f74\u6620\u5c04\u5230\u6570\u636e\u53d8\u91cfcategory\uff0cy\u8f74\u6620\u5c04\u5230\u6570\u636e\u53d8\u91cfvalue\u3002\u901a\u8fc7\u8bbe\u7f6estat\u53c2\u6570\u4e3a\"identity\"\uff0c\u6211\u4eec\u76f4\u63a5\u4f7f\u7528value\u53d8\u91cf\u7684\u539f\u59cb\u503c\u3002\u901a\u8fc7\u8bbe\u7f6efill\u53c2\u6570\u4e3a\"blue\"\u548ccolor\u53c2\u6570\u4e3a\"black\"\uff0c\u6211\u4eec\u4e3a\u67f1\u72b6\u56fe\u6307\u5b9a\u4e86\u586b\u5145\u989c\u8272\u548c\u8fb9\u6846\u989c\u8272\u3002

\u8fd9\u4e2a\u793a\u4f8b\u5c06\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u67f1\u72b6\u56fe\uff0c\u5176\u4e2dx\u8f74\u8868\u793a\u7c7b\u522b\uff0cy\u8f74\u8868\u793a\u6570\u503c\u3002\u6bcf\u4e2a\u7c7b\u522b\u5bf9\u5e94\u4e00\u4e2a\u67f1\u5b50\uff0c\u5176\u9ad8\u5ea6\u8868\u793a\u5bf9\u5e94\u7684\u6570\u503c\u5927\u5c0f\u3002

\u5e0c\u671b\u8fd9\u4e2a\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3geom_bar()\u51fd\u6570\u7684\u57fa\u672c\u7528\u6cd5\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/ggplot2/geom_bar%28%29/#position","title":"position\u53c2\u6570","text":"

\u5728ggplot2\u7684geom_bar()\u51fd\u6570\u4e2d\uff0cposition\u53c2\u6570\u7528\u4e8e\u63a7\u5236\u67f1\u72b6\u56fe\u7684\u6446\u653e\u65b9\u5f0f\u3002\u8be5\u53c2\u6570\u63a5\u53d7\u4ee5\u4e0b\u51e0\u4e2a\u5e38\u7528\u7684\u53d6\u503c\uff1a

  • \"stack\"\uff1a\u9ed8\u8ba4\u503c\uff0c\u8868\u793a\u5c06\u67f1\u72b6\u56fe\u5806\u53e0\u5728\u4e00\u8d77\uff0c\u6bcf\u4e2a\u7c7b\u522b\u7684\u67f1\u72b6\u56fe\u53e0\u52a0\u5728\u524d\u4e00\u4e2a\u7c7b\u522b\u7684\u67f1\u72b6\u56fe\u4e0a\u65b9\u3002
  • \"dodge\"\uff1a\u5c06\u4e0d\u540c\u7c7b\u522b\u7684\u67f1\u72b6\u56fe\u5e76\u5217\u663e\u793a\uff0c\u67f1\u72b6\u56fe\u4e4b\u95f4\u4e0d\u91cd\u53e0\u3002
  • \"fill\"\uff1a\u5c06\u4e0d\u540c\u7c7b\u522b\u7684\u67f1\u72b6\u56fe\u5806\u53e0\u5728\u4e00\u8d77\uff0c\u4f46\u6bcf\u4e2a\u67f1\u72b6\u56fe\u7684\u9ad8\u5ea6\u5f52\u4e00\u5316\u4e3a1\uff0c\u5f62\u6210\u5806\u53e0\u7684\u767e\u5206\u6bd4\u56fe\u3002
  • \"identity\"\uff1a\u5728x\u8f74\u4e0a\u6839\u636e\u6570\u636e\u7684\u5b9e\u9645\u503c\u8fdb\u884c\u5bf9\u9f50\uff0c\u4e0d\u8fdb\u884c\u6446\u653e\u8c03\u6574\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u5728geom_bar()\u4e2d\u4f7f\u7528\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\"),\n  value = c(10, 15, 8)\n)\n\n# \u521b\u5efa\u67f1\u72b6\u56fe\uff0c\u5e76\u4f7f\u7528\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\nggplot(data, aes(x = category, y = value)) +\n  geom_bar(position = \"stack\", fill = \"blue\", color = \"black\") +\n  geom_bar(position = \"dodge\", fill = \"red\", color = \"black\") +\n  geom_bar(position = \"fill\", fill = \"green\", color = \"black\") +\n  geom_bar(position = \"identity\", fill = \"orange\", color = \"black\")\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u7c7b\u522b\u53d8\u91cfcategory\u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cfvalue\u3002\u7136\u540e\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_bar()\u51fd\u6570\u6dfb\u52a0\u67f1\u72b6\u56fe\u3002\u5728\u6bcf\u4e2ageom_bar()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u8bbe\u7f6e\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\uff0c\u5e76\u4e3a\u6bcf\u4e2a\u67f1\u72b6\u56fe\u6307\u5b9a\u4e86\u4e0d\u540c\u7684\u586b\u5145\u989c\u8272\u548c\u8fb9\u6846\u989c\u8272\u3002

\u8fd0\u884c\u8fd9\u6bb5\u4ee3\u7801\u4f1a\u751f\u6210\u4e00\u4e2a\u5305\u542b\u4e86\u56db\u4e2a\u67f1\u72b6\u56fe\u7684\u56fe\u5f62\u3002\u6bcf\u4e2a\u67f1\u72b6\u56fe\u90fd\u4f7f\u7528\u76f8\u540c\u7684\u6570\u636e\uff0c\u4f46\u6839\u636e\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\uff0c\u67f1\u72b6\u56fe\u7684\u6446\u653e\u65b9\u5f0f\u548c\u663e\u793a\u6548\u679c\u4f1a\u6709\u6240\u4e0d\u540c\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u89c2\u5bdf\u56fe\u4e2d\u67f1\u72b6\u56fe\u7684\u53e0\u52a0\u3001\u5e76\u5217\u3001\u767e\u5206\u6bd4\u5806\u53e0\u4ee5\u53ca\u4e0ex\u8f74\u7684\u5bf9\u9f50\u6765\u66f4\u597d\u5730\u7406\u89e3\u6bcf\u4e2aposition\u53c2\u6570\u53d6\u503c\u7684\u6548\u679c\u3002

\u5e0c\u671b\u8fd9\u4e2a\u793a\u4f8b\u80fd\u591f\u5e2e\u52a9\u60a8\u7406\u89e3\u5728geom_bar()\u4e2d\u4f7f\u7528\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\u7684\u542b\u4e49\u548c\u6548\u679c\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u5176\u4ed6\u95ee\u9898\uff0c\u8bf7\u968f\u65f6\u63d0\u95ee\u3002

"},{"location":"R/ggplot2/geom_bar%28%29/#reorder","title":"reorder()","text":"

\u6839\u636e\u9891\u6570\u5b9e\u73b0\u4ece\u5927\u5230\u5c0f\u6216\u4ece\u5c0f\u5230\u5927\u7684\u6392\u5e03

"},{"location":"R/ggplot2/geom_bar%28%29/#coord_flip-xy","title":"coord_flip() \u5b9e\u73b0x\u3001y\u8f74\u4e92\u6362","text":"
coord_flip() \n
"},{"location":"R/ggplot2/geom_bar%28%29/#_1","title":"\u8c03\u6574\u67f1\u95f4\u8ddd","text":"

\u6709\u65f6\u95f4\u7814\u7a76\u4e0b\uff01

R\u53ef\u89c6\u5316\u2014\u2014ggplot2\u8c03\u6574\u67f1\u72b6\u56fe\u67f1\u5b50\u5bbd\u5ea6\u53ca\u95f4\u8ddd - \u79d1\u7814\u90a3\u70b9\u4e8b\u513f\u7684\u6587\u7ae0 - \u77e5\u4e4e https://zhuanlan.zhihu.com/p/548155437

"},{"location":"R/ggplot2/geom_bar%28%29/#_2","title":"\u5728\u7ec4\u4e0a\u52a0\u6587\u672c","text":"

\u7528\u5230geom_text()\u51fd\u6570

"},{"location":"R/ggplot2/geom_boxplot%28%29/","title":"Geom boxplot()","text":"

\u51fd\u6570\u7528\u4e8e\u5728 ggplot2 \u5305\u4e2d\u7ed8\u5236\u7bb1\u7ebf\u56fe\u3002\u7bb1\u7ebf\u56fe\u662f\u4e00\u79cd\u5e38\u7528\u7684\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u7528\u4e8e\u5c55\u793a\u8fde\u7eed\u53d8\u91cf\u7684\u5206\u5e03\u60c5\u51b5\u3001\u4e2d\u4f4d\u6570\u3001\u56db\u5206\u4f4d\u6570\u548c\u5f02\u5e38\u503c\u3002

geom_boxplot(mapping = NULL, data = NULL, ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)\n
- mapping\uff1a\u6307\u5b9a\u53d8\u91cf\u4e0e\u56fe\u5f62\u5c5e\u6027\u4e4b\u95f4\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u4f7f\u7528 aes() \u51fd\u6570\u8bbe\u7f6e\u3002\u5e38\u7528\u7684\u6620\u5c04\u5c5e\u6027\u5305\u62ec x\uff08x \u8f74\u53d8\u91cf\uff09\u3001y\uff08y \u8f74\u53d8\u91cf\uff09\u3001fill\uff08\u586b\u5145\u989c\u8272\uff09\u3001color\uff08\u8fb9\u6846\u989c\u8272\uff09\u7b49\u3002 - data\uff1a\u4e00\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\uff0c\u5305\u542b\u8981\u7528\u4e8e\u7ed8\u56fe\u7684\u53d8\u91cf\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4fee\u6539\u7bb1\u7ebf\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002 - na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5ffd\u7565\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u89c2\u6d4b\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5220\u9664\u7f3a\u5931\u503c\u3002 - show.legend\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002\u9ed8\u8ba4\u4e3aNA\uff0c\u8868\u793a\u81ea\u52a8\u786e\u5b9a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002 - inherit.aes\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684aes()\u6620\u5c04\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u7ee7\u627f\u3002

  • notch\uff1a\u6307\u5b9a\u662f\u5426\u7ed8\u5236\u7bb1\u7ebf\u56fe\u7684\u7f3a\u53e3\uff08notch\uff09\u3002\u7f3a\u53e3\u53ef\u4ee5\u7528\u4e8e\u6bd4\u8f83\u4e24\u4e2a\u6216\u591a\u4e2a\u7bb1\u7ebf\u56fe\u7684\u4e2d\u4f4d\u6570\u7684\u5dee\u5f02\u3002\u9ed8\u8ba4\u503c\u4e3a FALSE\uff0c\u8868\u793a\u4e0d\u7ed8\u5236\u7f3a\u53e3\u3002
  • varwidth\uff1a\u6307\u5b9a\u662f\u5426\u6839\u636e\u6837\u672c\u5927\u5c0f\u8c03\u6574\u7bb1\u7ebf\u56fe\u7684\u5bbd\u5ea6\u3002\u9ed8\u8ba4\u503c\u4e3a FALSE\uff0c\u8868\u793a\u6240\u6709\u7bb1\u7ebf\u56fe\u5177\u6709\u76f8\u540c\u7684\u5bbd\u5ea6\u3002
  • outlier.shape\uff1a\u6307\u5b9a\u5f02\u5e38\u503c\u7684\u5f62\u72b6\u3002\u9ed8\u8ba4\u4e3a\u5706\u5708\uff08\"o\"\uff09\u3002
  • outlier.colour\uff1a\u6307\u5b9a\u5f02\u5e38\u503c\u7684\u8fb9\u6846\u989c\u8272\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 geom_boxplot() \u51fd\u6570\u7ed8\u5236\u7bb1\u7ebf\u56fe\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u6846\ndata <- data.frame(group = rep(c(\"A\", \"B\", \"C\"), each = 50),value = c(rnorm(50, mean = 5), rnorm(50, mean = 10), rnorm(50, mean = 15)))\n\n# \u7ed8\u5236\u7bb1\u7ebf\u56fe\nggplot(data, aes(x = group, y = value)) +\n  geom_boxplot() +\n  labs(title = \"Boxplot\", x = \"Group\", y = \"Value\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a data \u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e24\u4e2a\u53d8\u91cf group \u548c value\u3002\u7136\u540e\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528 aes() \u51fd\u6570\u5c06 group \u53d8\u91cf\u6620\u5c04\u5230 x \u8f74\uff0c\u5c06 value \u53d8\u91cf\u6620\u5c04\u5230 y \u8f74\u3002

\u901a\u8fc7 geom_boxplot() \u51fd\u6570\u7ed8\u5236\u7bb1\u7ebf\u56fe\u3002\u6b64\u5904\u7701\u7565\u4e86\u53c2\u6570\uff0c\u4f7f\u7528\u51fd\u6570\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u3002\u7bb1\u7ebf\u56fe\u5c06\u6839\u636e group \u53d8\u91cf\u7684\u4e0d\u540c\u7ed8\u5236\u4e0d\u540c\u7684\u7bb1\u7ebf\u56fe\u3002

\u901a\u8fc7\u8c03\u6574\u53c2\u6570\u548c\u6dfb\u52a0\u5176\u4ed6\u56fe\u5c42\u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u7ed8\u5236\u4e0d\u540c\u6837\u5f0f\u7684\u7bb1\u7ebf\u56fe\uff0c\u5e76\u6839\u636e\u9700\u8981\u8bbe\u7f6e\u586b\u5145\u989c\u8272\u3001\u8fb9\u6846\u989c\u8272\u3001\u5f02\u5e38\u503c\u5f62\u72b6\u7b49\u3002

"},{"location":"R/ggplot2/geom_boxplot%28%29/#_1","title":"\u6ce8\u610f\u7684\u5185\u5bb9\uff01\uff01\uff01","text":"

\u76f4\u7ebf\u5ef6\u4f38\u5230\u53bb\u6389\u79bb\u7fa4\u70b9\u4ee5\u540e\u663e\u793a\u7684\u6700\u5927\u3001\u6700\u5c0f\u503c\uff01 \u4e0a\u8fb9\u754c\uff1aQ3+1.5IQR \u4e0b\u8fb9\u754c\uff1aQ1-1.5IQR \u6700\u5c0f\u503c\u4e0d\u8d85\u8fc7\u4e0b\u8fb9\u754c\uff0c\u7ebf\u6bb5\u6b63\u5ef6\u4f38\u5230\u6700\u5c0f\u503c\u70b9\uff1b\u6700\u5927\u503c\u8d85\u8fc7\u4e0a\u8fb9\u754c\uff0c\u7ebf\u6bb5\u7ebf\u5ef6\u4f38\u5230\u8fb9\u754c\u5185\u7684\u6700\u5927\u503c\uff0c\u8d85\u8fc7\u8fb9\u754c\u7684\u503c\u6563\u70b9\u753b\u4e0b

"},{"location":"R/ggplot2/geom_boxplot%28%29/#_2","title":"\u53ef\u4ee5\u4e0d\u5206\u7ec4","text":"

\u901a\u5e38\u4e0d\u9700\u8981\u624b\u52a8\u5bf9\u6570\u636e\u6846\u8fdb\u884c\u5206\u7ec4\u3002geom_boxplot()\u00a0\u51fd\u6570\u4f1a\u81ea\u52a8\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7ec4\uff0c\u5e76\u6839\u636e\u5206\u7ec4\u7ed8\u5236\u7bb1\u7ebf\u56fe\u3002

group_by(lj_top30, property_region) %>% \n  ggplot() +\n    geom_boxplot(aes(x = property_region, y = price_ttl)) +\n    labs(title = \"\u524dtop30\u533a\u57df\u623f\u5c4b\u603b\u4ef7\u5206\u5e03\u60c5\u51b5\",  x = \"\u6240\u5c5e\u533a\u57df\",  y = \"\u623f\u5c4b\u603b\u4ef7\",  caption = \"DataSource: lj\") +\n    theme(axis.text.x = element_text(family = \"songti sc\", face = \"bold\", color = \"black\", size = 10, angle = 90), \n          plot.title = element_text(family = \"songti sc\", face = \"bold\", color = \"black\", size = 10, hjust = 0.5, vjust = 0,5))\nungroup(lj_top30)\n

"},{"location":"R/ggplot2/geom_col%28%29/","title":"Geom col()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cgeom_col()\u51fd\u6570\u662fggplot2\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u67f1\u72b6\u56fe\u3002\u5b83\u5c06\u6570\u636e\u4e2d\u7684\u503c\u6620\u5c04\u5230\u67f1\u72b6\u56fe\u7684\u9ad8\u5ea6\uff0c\u53ef\u7528\u4e8e\u53ef\u89c6\u5316\u5206\u7c7b\u53d8\u91cf\u4e0e\u6570\u503c\u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u7cfb\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

geom_col(mapping = NULL, data = NULL, ..., width = NULL, position = \"identity\", stat = \"identity\", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)\n

\u53c2\u6570\uff1a - mapping\uff1a\u4e00\u4e2aaes()\u51fd\u6570\u4e2d\u6307\u5b9a\u7684\u6620\u5c04\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u53d8\u91cf\u6620\u5c04\u5230\u56fe\u5f62\u5c5e\u6027\u3002\u901a\u5e38\u4f7f\u7528aes()\u51fd\u6570\u6765\u8bbe\u7f6e\u6620\u5c04\u5173\u7cfb\u3002 - data\uff1a\u4e00\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\uff0c\u5305\u542b\u8981\u7528\u4e8e\u7ed8\u56fe\u7684\u53d8\u91cf\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4fee\u6539\u67f1\u72b6\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002 - width\uff1a\u4e00\u4e2a\u6570\u503c\u6216\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u67f1\u72b6\u56fe\u7684\u5bbd\u5ea6\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u81ea\u52a8\u786e\u5b9a\u5bbd\u5ea6\u3002 - position\uff1a\u4e00\u4e2a\u5b57\u7b26\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u67f1\u72b6\u56fe\u7684\u4f4d\u7f6e\u8c03\u6574\u65b9\u5f0f\u3002\u5e38\u7528\u7684\u9009\u9879\u5305\u62ec\"identity\"\uff08\u9ed8\u8ba4\uff09\u8868\u793a\u4e0d\u8c03\u6574\u4f4d\u7f6e\uff0c\"fill\"\u8868\u793a\u5806\u53e0\u67f1\u72b6\u56fe\uff0c\"dodge\"\u8868\u793a\u5e76\u5217\u67f1\u72b6\u56fe\u3002 - stat\uff1a\u4e00\u4e2a\u5b57\u7b26\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u5728\u7ed8\u5236\u67f1\u72b6\u56fe\u65f6\u8981\u5e94\u7528\u7684\u7edf\u8ba1\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a\"identity\"\uff0c\u8868\u793a\u76f4\u63a5\u4f7f\u7528\u539f\u59cb\u6570\u636e\u503c\u3002 - na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5ffd\u7565\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u89c2\u6d4b\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5220\u9664\u7f3a\u5931\u503c\u3002 - show.legend\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002\u9ed8\u8ba4\u4e3aNA\uff0c\u8868\u793a\u81ea\u52a8\u786e\u5b9a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002 - inherit.aes\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684aes()\u6620\u5c04\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u7ee7\u627f\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"D\"),\n  value = c(10, 20, 15, 25)\n)\n\n# \u521b\u5efa\u67f1\u72b6\u56fe\nggplot(data, aes(x = category, y = value)) +\n  geom_col()\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86ggplot2\u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u5206\u7c7b\u53d8\u91cfcategory\u548c\u6570\u503c\u53d8\u91cfvalue\u7684\u6570\u636e\u6846\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u6307\u5b9adata\u53c2\u6570\u4e3a\u6570\u636e\u6846\uff0c\u4f7f\u7528aes()\u51fd\u6570\u5c06category\u6620\u5c04\u5230x\u8f74\uff0c\u5c06value\u6620\u5c04\u5230y\u8f74\u3002

\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528geom_col()\u51fd\u6570\u6dfb\u52a0\u4e86\u67f1\u72b6\u56fe\u5c42\uff0c\u5176\u4e2d\u6570\u636e\u7684\u503c\u88ab\u6620\u5c04\u5230\u67f1\u72b6\u56fe\u7684\u9ad8\u5ea6\u3002

\u8fd9\u5c06\u751f\u6210\u4e00\u4e2a\u7b80\u5355\u7684\u67f1\u72b6\u56fe\uff0c\u5176\u4e2dx\u8f74\u4e3a\u5206\u7c7b\u53d8\u91cf\uff0cy\u8f74\u4e3a\u5bf9\u5e94\u7684\u6570\u503c\u53d8\u91cf\u3002

"},{"location":"R/ggplot2/geom_col%28%29/#geom_bargeom_col","title":"geom_bar()\u548cgeom_col()\u7684\u533a\u522b","text":"

geom_bar()\u548cgeom_col()\u662fggplot2\u5305\u4e2d\u7528\u4e8e\u7ed8\u5236\u6761\u5f62\u56fe\u7684\u4e24\u4e2a\u51fd\u6570\u3002\u5b83\u4eec\u4e4b\u95f4\u7684\u533a\u522b\u5728\u4e8e\u6570\u636e\u5904\u7406\u548c\u9ad8\u5ea6\u8ba1\u7b97\u7684\u65b9\u5f0f\u3002

  1. geom_bar()\u51fd\u6570\uff1a\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cgeom_bar()\u51fd\u6570\u4f1a\u5bf9\u6570\u636e\u8fdb\u884c\u7edf\u8ba1\uff0c\u7136\u540e\u7ed8\u5236\u67f1\u72b6\u56fe\u3002\u5b83\u4f1a\u6839\u636e\u6570\u636e\u4e2d\u7684\u9891\u6570\u6216\u8ba1\u6570\u6765\u786e\u5b9a\u67f1\u5b50\u7684\u9ad8\u5ea6\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u53c2\u6570stat\u6765\u63a7\u5236\u7edf\u8ba1\u7684\u65b9\u5f0f\uff0c\u4f8b\u5982\u4f7f\u7528\"count\"\u8868\u793a\u6309\u7167\u9891\u6570\u7edf\u8ba1\uff0c\u4f7f\u7528\"identity\"\u8868\u793a\u4f7f\u7528\u6570\u636e\u4e2d\u51c6\u786e\u7684\u6570\u503c\u4f5c\u4e3a\u67f1\u5b50\u7684\u9ad8\u5ea6\u3002

  2. geom_col()\u51fd\u6570\uff1ageom_col()\u51fd\u6570\u5219\u76f4\u63a5\u4f7f\u7528\u6570\u636e\u4e2d\u7684\u6570\u503c\u4f5c\u4e3a\u67f1\u5b50\u7684\u9ad8\u5ea6\uff0c\u800c\u4e0d\u8fdb\u884c\u989d\u5916\u7684\u7edf\u8ba1\u3002\u5b83\u9002\u7528\u4e8e\u5df2\u7ecf\u8fdb\u884c\u4e86\u6570\u636e\u805a\u5408\u6216\u8ba1\u7b97\u7684\u60c5\u51b5\uff0c\u4f8b\u5982\u4f7f\u7528\u4e86dplyr\u5305\u7684group_by()\u548csummarize()\u51fd\u6570\u8fdb\u884c\u6570\u636e\u5904\u7406\u540e\u7684\u7ed3\u679c\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u4e86geom_bar()\u548cgeom_col()\u7684\u533a\u522b\uff1a

# \u52a0\u8f7dggplot2\u5305\nlibrary(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\uff08\u793a\u4f8b\u6570\u636e\uff09\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\"),\n  count = c(10, 20, 15)\n)\n\n# \u4f7f\u7528geom_bar()\u7ed8\u5236\u6761\u5f62\u56fe\np1 <- ggplot(data, aes(x = category, y = count)) +\n  geom_bar(stat = \"identity\")\n\n# \u4f7f\u7528geom_col()\u7ed8\u5236\u6761\u5f62\u56fe\np2 <- ggplot(data, aes(x = category, y = count)) +\n  geom_col()\n\n# \u663e\u793a\u4e24\u4e2a\u6761\u5f62\u56fe\nprint(p1)\nprint(p2)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86ggplot2\u5305\u3002\u7136\u540e\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542bcategory\u548ccount\u4e24\u4e2a\u53d8\u91cf\u3002\u63a5\u4e0b\u6765\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e86\u4e24\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u5728aes()\u51fd\u6570\u4e2d\u6307\u5b9a\u4e86x\u548cy\u8f74\u7684\u53d8\u91cf\u540d\u3002\u7136\u540e\uff0c\u5206\u522b\u4f7f\u7528geom_bar(stat = \"identity\")\u548cgeom_col()\u51fd\u6570\u7ed8\u5236\u4e86\u4e24\u4e2a\u6761\u5f62\u56fe\u3002

p1\u4f7f\u7528\u4e86geom_bar()\u51fd\u6570\uff0c\u5e76\u6307\u5b9a\u4e86stat = \"identity\"\uff0c\u4ee5\u4f7f\u7528\u6570\u636e\u4e2d\u7684\u51c6\u786e\u6570\u503c\u4f5c\u4e3a\u67f1\u5b50\u7684\u9ad8\u5ea6\u3002\u800cp2\u4f7f\u7528\u4e86geom_col()\u51fd\u6570\uff0c\u76f4\u63a5\u4f7f\u7528\u6570\u636e\u4e2d\u7684\u6570\u503c\u4f5c\u4e3a\u67f1\u5b50\u7684\u9ad8\u5ea6\u3002

\u6839\u636e\u4f60\u7684\u9700\u6c42\u548c\u6570\u636e\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528geom_bar()\u6216geom_col()\u6765\u7ed8\u5236\u6761\u5f62\u56fe\u3002

"},{"location":"R/ggplot2/geom_density%28%29/","title":"Geom density()","text":"

\u5728R\u8bed\u8a00\u7684ggplot2\u5305\u4e2d\uff0cgeom_density()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u3002\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u662f\u4e00\u79cd\u5e38\u7528\u7684\u7edf\u8ba1\u56fe\u8868\uff0c\u7528\u4e8e\u53ef\u89c6\u5316\u6570\u503c\u53d8\u91cf\u7684\u6982\u7387\u5bc6\u5ea6\u5206\u5e03\u3002 \u6709\u79cd\u6839\u636e\u9891\u7387\u81ea\u52a8\u8ba1\u7b97\u5bc6\u5ea6\u7684\u611f\u89c9\uff01 \u51fd\u6570\u5b9a\u4e49\uff1a

geom_density(mapping = NULL, data = NULL, ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)\n
\u53c2\u6570\uff1a - mapping\uff1a\u4e00\u4e2aaes()\u51fd\u6570\u4e2d\u6307\u5b9a\u7684\u6620\u5c04\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u53d8\u91cf\u6620\u5c04\u5230\u56fe\u5f62\u5c5e\u6027\u3002\u901a\u5e38\u4f7f\u7528aes()\u51fd\u6570\u6765\u8bbe\u7f6e\u6620\u5c04\u5173\u7cfb\u3002 - data\uff1a\u4e00\u4e2a\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\uff0c\u5305\u542b\u8981\u7528\u4e8e\u7ed8\u56fe\u7684\u53d8\u91cf\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4fee\u6539\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002 - na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5ffd\u7565\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u89c2\u6d4b\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5220\u9664\u7f3a\u5931\u503c\u3002 - show.legend\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002\u9ed8\u8ba4\u4e3aNA\uff0c\u8868\u793a\u81ea\u52a8\u786e\u5b9a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002 - inherit.aes\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684aes()\u6620\u5c04\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u7ee7\u627f\u3002 - bw\uff1a\u6307\u5b9a\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7684\u5e26\u5bbd\uff0c\u53ef\u4ee5\u8ba9\u6982\u7387\u5bc6\u5ea6\u66f2\u7ebf\u66f4\u8d34\u8fd1\u5206\u5e03 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a
library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  value = rnorm(1000)\n)\n\n# \u521b\u5efa\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\nggplot(data, aes(x = value)) +\n  geom_density()\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86ggplot2\u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e00\u4e2a\u6570\u503c\u53d8\u91cfvalue\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u6307\u5b9adata\u53c2\u6570\u4e3a\u6570\u636e\u6846\uff0c\u4f7f\u7528aes()\u51fd\u6570\u5c06value\u6620\u5c04\u5230x\u8f74\u3002

\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528geom_density()\u51fd\u6570\u6dfb\u52a0\u4e86\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u5c42\uff0c\u5c06\u6570\u636e\u7684\u6982\u7387\u5bc6\u5ea6\u5206\u5e03\u53ef\u89c6\u5316\u3002

\u8fd9\u5c06\u751f\u6210\u4e00\u4e2a\u57fa\u672c\u7684\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\uff0c\u5176\u4e2dx\u8f74\u4e3a\u6570\u503c\u53d8\u91cf\uff0cy\u8f74\u8868\u793a\u5bf9\u5e94\u7684\u6982\u7387\u5bc6\u5ea6\u3002

\u60a8\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u53c2\u6570\u6765\u4fee\u6539\u6838\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u7684\u5916\u89c2\uff0c\u5982\u8bbe\u7f6e\u66f2\u7ebf\u7684\u989c\u8272\u3001\u8c03\u6574\u66f2\u7ebf\u7684\u5e73\u6ed1\u5ea6\u3001\u6dfb\u52a0\u586b\u5145\u989c\u8272\u7b49\u3002

"},{"location":"R/ggplot2/geom_density%28%29/#bw","title":"bw\u53c2\u6570","text":"

\u5728R\u4e2d\uff0cgeom_density()\u51fd\u6570\u662fggplot2\u5305\u4e2d\u7684\u4e00\u79cd\u51e0\u4f55\u5bf9\u8c61\u7c7b\u578b\uff0c\u7528\u4e8e\u521b\u5efa\u6838\u5bc6\u5ea6\u56fe\u3002\u8be5\u51fd\u6570\u4f7f\u7528\u6838\u5bc6\u5ea6\u4f30\u8ba1\u65b9\u6cd5\u6765\u8ba1\u7b97\u548c\u7ed8\u5236\u6570\u636e\u7684\u5e73\u6ed1\u6982\u7387\u5bc6\u5ea6\u66f2\u7ebf\u3002 geom_density()\u51fd\u6570\u6709\u4e00\u4e2a\u53ef\u9009\u7684\u53c2\u6570bw\uff0c\u7528\u4e8e\u6307\u5b9a\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7684\u5e26\u5bbd\u3002\u5e26\u5bbd\u662f\u6838\u5bc6\u5ea6\u4f30\u8ba1\u4e2d\u7684\u4e00\u4e2a\u91cd\u8981\u53c2\u6570\uff0c\u5b83\u51b3\u5b9a\u4e86\u5e73\u6ed1\u66f2\u7ebf\u7684\u5bbd\u5ea6\u3002\u8f83\u5c0f\u7684\u5e26\u5bbd\u4f1a\u5bfc\u81f4\u66f2\u7ebf\u66f4\u52a0\u7ec6\u81f4\u548c\u5177\u4f53\uff0c\u4f46\u53ef\u80fd\u4f1a\u5bfc\u81f4\u8fc7\u62df\u5408\uff1b\u8f83\u5927\u7684\u5e26\u5bbd\u4f1a\u5bfc\u81f4\u66f2\u7ebf\u66f4\u52a0\u5e73\u6ed1\uff0c\u4f46\u53ef\u80fd\u4f1a\u9020\u6210\u4fe1\u606f\u4e22\u5931\u3002 bw\u53c2\u6570\u53ef\u4ee5\u63a5\u53d7\u4ee5\u4e0b\u51e0\u79cd\u53d6\u503c\uff1a 1. \"nrd0\"\uff1a\u4f7f\u7528\u57fa\u4e8e\u6837\u672c\u6807\u51c6\u5dee\u7684\u5e26\u5bbd\u4f30\u8ba1\u65b9\u6cd5\uff0c\u5373Silverman's\u89c4\u5219\u3002\u8fd9\u662f\u9ed8\u8ba4\u503c\u3002 2. \"nrd\"\uff1a\u4f7f\u7528\u57fa\u4e8e\u6837\u672c\u6807\u51c6\u5dee\u548c\u6837\u672c\u5927\u5c0f\u7684\u5e26\u5bbd\u4f30\u8ba1\u65b9\u6cd5\u3002 3. \"ucv\"\uff1a\u4f7f\u7528\u57fa\u4e8e\u6837\u672c\u6807\u51c6\u5dee\u548c\u6837\u672c\u5927\u5c0f\u7684\u5e26\u5bbd\u4f30\u8ba1\u65b9\u6cd5\uff0c\u4f46\u5728\u6837\u672c\u5927\u5c0f\u8f83\u5c0f\u65f6\u6709\u66f4\u597d\u7684\u6027\u80fd\u3002 4. \u6570\u503c\uff1a\u76f4\u63a5\u6307\u5b9a\u5e26\u5bbd\u7684\u6570\u503c\u3002\u8f83\u5c0f\u7684\u6570\u503c\u4f1a\u4ea7\u751f\u66f4\u5c16\u9510\u7684\u66f2\u7ebf\uff0c\u8f83\u5927\u7684\u6570\u503c\u4f1a\u4ea7\u751f\u66f4\u5e73\u6ed1\u7684\u66f2\u7ebf\u3002 \u5728\u9009\u62e9\u5e26\u5bbd\u65f6\uff0c\u9700\u8981\u6839\u636e\u6570\u636e\u7684\u7279\u70b9\u548c\u5206\u5e03\u6765\u8fdb\u884c\u8c03\u6574\u3002\u5982\u679c\u5e26\u5bbd\u9009\u62e9\u4e0d\u5408\u9002\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u66f2\u7ebf\u8fc7\u4e8e\u5c16\u9510\u6216\u8fc7\u4e8e\u5e73\u6ed1\uff0c\u4ece\u800c\u5931\u53bb\u4e86\u5bf9\u6570\u636e\u5206\u5e03\u7684\u51c6\u786e\u63cf\u8ff0\u3002 \u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\u4ee3\u7801\uff0c\u6f14\u793a\u5982\u4f55\u5728ggplot2\u4e2d\u4f7f\u7528geom_density()\u51fd\u6570\u5e76\u6307\u5b9abw\u53c2\u6570\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u96c6\ndata <- data.frame(x = rnorm(1000))\n\n# \u4f7f\u7528geom_density()\u51fd\u6570\u7ed8\u5236\u6838\u5bc6\u5ea6\u56fe\uff0c\u6307\u5b9a\u5e26\u5bbd\u4e3a0.2\nggplot(data, aes(x = x)) +\n  geom_density(bw = 0.2)\n
\u8fd9\u5c06\u7ed8\u5236\u4e00\u4e2a\u6838\u5bc6\u5ea6\u56fe\uff0c\u5e26\u5bbd\u4e3a0.2\u3002\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u5e26\u5bbd\u503c\u6765\u89c2\u5bdf\u66f2\u7ebf\u7684\u53d8\u5316\u3002

"},{"location":"R/ggplot2/geom_freqpoly%28%29/","title":"Geom freqpoly()","text":"

\u662fggplot2\u5305\u4e2d\u7684\u4e00\u4e2a\u51e0\u4f55\u56fe\u5c42\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u9891\u6570\u591a\u8fb9\u5f62\u56fe\u3002\u9891\u6570\u591a\u8fb9\u5f62\u56fe\u662f\u4e00\u79cd\u7528\u4e8e\u663e\u793a\u6570\u503c\u53d8\u91cf\u7684\u5206\u5e03\u60c5\u51b5\u7684\u56fe\u8868\uff0c\u5b83\u901a\u8fc7\u5c06\u6570\u636e\u5206\u6210\u591a\u4e2a\u533a\u95f4\uff0c\u5e76\u7ed8\u5236\u6bcf\u4e2a\u533a\u95f4\u4e2d\u6570\u503c\u7684\u9891\u6570\u6216\u9891\u7387\u6765\u5c55\u793a\u6570\u636e\u7684\u5206\u5e03\u60c5\u51b5\u3002

geom_freqpoly(mapping = NULL, data = NULL, stat = \"bin\", position = \"identity\", bins = 30, pad = FALSE, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, ...)\n

\u53c2\u6570\u8bf4\u660e\uff1a - mapping: \u6620\u5c04\u53d8\u91cf\u5230\u56fe\u5f62\u5c5e\u6027\u7684\u53c2\u6570\uff0c\u6bd4\u5982x\u3001y\u3001color\u7b49\u3002 - data: \u5305\u542b\u6570\u636e\u7684\u6570\u636e\u6846\u3002 - stat: \u7edf\u8ba1\u53d8\u6362\u7684\u65b9\u6cd5\uff0c\u9ed8\u8ba4\u4e3a\"bin\"\uff0c\u8868\u793a\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u7bb1\u7edf\u8ba1\u3002 - position: \u70b9\u7684\u4f4d\u7f6e\u8c03\u6574\u65b9\u6cd5\uff0c\u9ed8\u8ba4\u4e3a\"identity\"\uff0c\u4e0d\u8fdb\u884c\u4f4d\u7f6e\u8c03\u6574\u3002 - bins: \u6307\u5b9a\u5206\u7bb1\u7684\u6570\u91cf\u3002 - pad: \u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5728\u6700\u540e\u4e00\u4e2a\u7bb1\u5b50\u4e4b\u540e\u6dfb\u52a0\u4e00\u4e2a\u989d\u5916\u7684\u7bb1\u5b50\u3002 - na.rm: \u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5220\u9664\u5305\u542b\u7f3a\u5931\u503c\u7684\u89c2\u6d4b\u3002 - show.legend: \u63a7\u5236\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002 - inherit.aes: \u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684aes\u53c2\u6570\u8bbe\u7f6e\u3002 - ...: \u5176\u4ed6\u4f20\u9012\u7ed9layer()\u7684\u53c2\u6570\u3002

\u793a\u4f8b\u7528\u6cd5\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u5305\u542b\u6570\u503c\u53d8\u91cf\u7684\u6570\u636e\u6846\ndf <- data.frame(value = rnorm(100))\n\n# \u521b\u5efa\u9891\u6570\u591a\u8fb9\u5f62\u56fe\nggplot(df, aes(x = value)) +\n  geom_freqpoly()\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u968f\u673a\u6570\u503c\u53d8\u91cf\u7684\u6570\u636e\u6846df\u3002\u7136\u540e\uff0c\u901a\u8fc7\u8c03\u7528ggplot()\u51fd\u6570\uff0c\u5e76\u6307\u5b9avalue\u53d8\u91cf\u4f5c\u4e3ax\u8f74\u7684\u503c\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684ggplot\u5bf9\u8c61\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528geom_freqpoly()\u51fd\u6570\u6dfb\u52a0\u4e86\u4e00\u4e2a\u9891\u6570\u591a\u8fb9\u5f62\u56fe\u5c42\uff0c\u7528\u4e8e\u5c55\u793avalue\u53d8\u91cf\u7684\u5206\u5e03\u60c5\u51b5\u3002

geom_freqpoly()\u51fd\u6570\u57fa\u4e8e\u6570\u636e\u7684\u5206\u5e03\u521b\u5efa\u4e86\u591a\u8fb9\u5f62\u7ebf\u6761\uff0c\u5176\u4e2dx\u8f74\u8868\u793a\u6570\u503c\u7684\u533a\u95f4\uff0cy\u8f74\u8868\u793a\u6bcf\u4e2a\u533a\u95f4\u4e2d\u6570\u503c\u7684\u9891\u6570\u3002\u901a\u8fc7\u8c03\u6574bins\u53c2\u6570\u7684\u503c\uff0c\u53ef\u4ee5\u63a7\u5236\u5206\u7bb1\u7684\u6570\u91cf\uff0c\u4ece\u800c\u5f71\u54cd\u9891\u6570\u591a\u8fb9\u5f62\u56fe\u7684\u5e73\u6ed1\u7a0b\u5ea6\u3002

"},{"location":"R/ggplot2/geom_function%28%29/","title":"Geom function()","text":"

\u5728R\u8bed\u8a00\u7684ggplot2\u5305\u4e2d\uff0c\u786e\u5b9e\u5b58\u5728geom_function()\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u56fe\u4e2d\u6dfb\u52a0\u81ea\u5b9a\u4e49\u51fd\u6570\u7684\u66f2\u7ebf\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

geom_function(fun, ..., n = 101, inherit.aes = TRUE)\n
\u53c2\u6570\uff1a - fun\uff1a\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u7528\u4e8e\u5b9a\u4e49\u66f2\u7ebf\u7684\u5f62\u72b6\u3002\u51fd\u6570\u5e94\u63a5\u53d7\u4e00\u4e2a\u8f93\u5165\u5411\u91cf\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u8f93\u51fa\u5411\u91cf\u3002\u5728\u51fd\u6570\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528R\u8bed\u8a00\u4e2d\u7684\u4efb\u4f55\u64cd\u4f5c\u548c\u51fd\u6570\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9fun\u51fd\u6570\u3002 - n\uff1a\u6307\u5b9a\u5728\u7ed8\u56fe\u4e2d\u4f7f\u7528\u591a\u5c11\u4e2a\u70b9\u6765\u7ed8\u5236\u66f2\u7ebf\u3002\u9ed8\u8ba4\u503c\u4e3a101\uff0c\u5373\u7ed8\u5236101\u4e2a\u70b9\u3002 - inherit.aes\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u7ee7\u627f\u7ed8\u56fe\u4e2d\u7684\u7f8e\u5b66\u53c2\u6570\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u8868\u793a\u7ee7\u627f\u3002
library(ggplot2)\n\n# \u81ea\u5b9a\u4e49\u51fd\u6570\nmy_function <- function(x) {\n  exp(-x) * sin(2 * pi * x)\n}\n\n# \u521b\u5efa\u6570\u636e\u6846\ndata <- data.frame(x = seq(0, 5, length.out = 100))\n\n# \u7ed8\u5236\u56fe\u5f62\nggplot(data, aes(x = x)) +\n  geom_function(fun = my_function, color = \"blue\", size = 1) +\n  labs(title = \"Custom Function Curve\")\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5b9a\u4e49\u4e86\u4e00\u4e2a\u81ea\u5b9a\u4e49\u51fd\u6570my_function()\uff0c\u8be5\u51fd\u6570\u63a5\u53d7\u4e00\u4e2a\u8f93\u5165\u5411\u91cfx\u5e76\u8fd4\u56de\u4e00\u4e2a\u8f93\u51fa\u5411\u91cf\u3002\u7136\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542bx\u503c\u7684\u6570\u636e\u6846\u3002\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528ggplot2\u5305\u4e2d\u7684ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_function()\u51fd\u6570\u6dfb\u52a0\u81ea\u5b9a\u4e49\u51fd\u6570\u7684\u66f2\u7ebf\u3002\u6211\u4eec\u901a\u8fc7color\u548csize\u53c2\u6570\u8bbe\u7f6e\u66f2\u7ebf\u7684\u989c\u8272\u548c\u7ebf\u6761\u7c97\u7ec6\uff0c\u5e76\u4f7f\u7528labs()\u51fd\u6570\u8bbe\u7f6e\u56fe\u5f62\u7684\u6807\u9898\u3002

\u8bf7\u6ce8\u610f\uff0cgeom_function()\u51fd\u6570\u5141\u8bb8\u60a8\u7ed8\u5236\u4efb\u610f\u81ea\u5b9a\u4e49\u51fd\u6570\u7684\u66f2\u7ebf\uff0c\u53ea\u9700\u5c06\u81ea\u5b9a\u4e49\u51fd\u6570\u4f20\u9012\u7ed9fun\u53c2\u6570\u5373\u53ef\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u5176\u4ed6\u53c2\u6570\u6765\u81ea\u5b9a\u4e49\u66f2\u7ebf\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002

"},{"location":"R/ggplot2/geom_function%28%29/#stat_functiongeom_function","title":"stat_function()\u548cgeom_function()\u7684\u533a\u522b","text":"

stat_function()\u548cgeom_function()\u662fggplot2\u5305\u4e2d\u7528\u4e8e\u7ed8\u5236\u51fd\u6570\u66f2\u7ebf\u7684\u4e24\u4e2a\u51fd\u6570\uff0c\u5b83\u4eec\u4e4b\u95f4\u6709\u4e00\u4e9b\u533a\u522b\u3002

  1. stat_function()\uff1a\u8fd9\u4e2a\u51fd\u6570\u7528\u4e8e\u5728\u56fe\u5f62\u4e0a\u6dfb\u52a0\u4e00\u4e2a\u51fd\u6570\u66f2\u7ebf\u3002\u5b83\u901a\u8fc7\u6307\u5b9a\u4e00\u4e2a\u51fd\u6570\u6765\u521b\u5efa\u4e00\u4e2a\u66f2\u7ebf\uff0c\u5e76\u5c06\u5176\u7ed8\u5236\u5728\u5df2\u6709\u7684\u56fe\u5f62\u4e0a\u3002\u901a\u5e38\u4e0e\u5176\u4ed6\u56fe\u5c42\u51fd\u6570\uff08\u5982geom_point()\u3001geom_line()\u7b49\uff09\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u4fbf\u5728\u540c\u4e00\u56fe\u5f62\u4e2d\u663e\u793a\u6570\u636e\u70b9\u548c\u51fd\u6570\u66f2\u7ebf\u3002

`stat_function()\u7684\u7528\u6cd5\u793a\u4f8b\uff1a

ggplot(data, aes(x = x)) +\n  geom_point(aes(y = y)) +\n  stat_function(fun = my_function, aes(colour = \"Function\"))\n

  1. geom_function()\uff1a\u8fd9\u4e2a\u51fd\u6570\u7528\u4e8e\u7ed8\u5236\u4e00\u4e2a\u51fd\u6570\u66f2\u7ebf\uff0c\u5e76\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u56fe\u5f62\u3002\u5b83\u53ef\u4ee5\u76f4\u63a5\u7ed8\u5236\u51fd\u6570\u66f2\u7ebf\uff0c\u800c\u4e0d\u9700\u8981\u5176\u4ed6\u6570\u636e\u70b9\u7684\u5b58\u5728\u3002\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a\u51fd\u6570\u548c\u7ed8\u5236\u8303\u56f4\u6765\u81ea\u5b9a\u4e49\u66f2\u7ebf\u7684\u5f62\u72b6\u548c\u4f4d\u7f6e\u3002

`geom_function()\u7684\u7528\u6cd5\u793a\u4f8b\uff1a

ggplot() +\n  geom_function(fun = my_function, aes(x = x), col = \"blue\")\n

\u603b\u7ed3\u8d77\u6765\uff0cstat_function()\u7528\u4e8e\u5728\u73b0\u6709\u7684\u56fe\u5f62\u4e0a\u6dfb\u52a0\u51fd\u6570\u66f2\u7ebf\uff0c\u901a\u5e38\u4e0e\u5176\u4ed6\u56fe\u5c42\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u800cgeom_function()\u7528\u4e8e\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u56fe\u5f62\uff0c\u5e76\u76f4\u63a5\u7ed8\u5236\u51fd\u6570\u66f2\u7ebf\u3002\u5b83\u4eec\u7684\u4f7f\u7528\u53d6\u51b3\u4e8e\u4f60\u7684\u9700\u6c42\u548c\u6240\u9700\u7684\u56fe\u5f62\u6548\u679c\u3002

"},{"location":"R/ggplot2/geom_histogram%28%29/","title":"Geom histogram()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cggplot2\u5305\u4e2d\u7684geom_histogram()\u51fd\u6570\u7528\u4e8e\u7ed8\u5236\u76f4\u65b9\u56fe\uff0c\u663e\u793a\u5b9a\u91cf\u53d8\u91cf\u7684\u5206\u5e03\u60c5\u51b5\u3002

\u5bf9\u8fde\u7eed\u578b\u53d8\u91cf\u5206\u7ec4\u7edf\u8ba1\u9891\u6570\u3002\u5343\u4e07\u522b\u8ddf\u67f1\u72b6\u56fe\uff08\u79bb\u6563\u53d8\u91cf\u7edf\u8ba1\u9891\u6570\uff09\u6df7\u6dc6

\u51fd\u6570\u5b9a\u4e49\uff1a

geom_histogram(mapping = NULL, data = NULL, stat = \"bin\", position = \"stack\", ..., binwidth = NULL, bins = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)\n

\u53c2\u6570\uff1a - mapping\uff1a\u4e00\u4e2a\u6620\u5c04\uff08aesthetic mapping\uff09\u5bf9\u8c61\uff0c\u7528\u4e8e\u6620\u5c04\u6570\u636e\u53d8\u91cf\u5230\u56fe\u5f62\u5c5e\u6027\u7684aes()\u51fd\u6570\u6216aes()\u51fd\u6570\u7684\u53c2\u6570\u3002

  • data\uff1a\u6570\u636e\u6846\u3002

  • stat\uff1a\u7edf\u8ba1\u53d8\u6362\u7684\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3a\"bin\"\uff0c\u8868\u793a\u5c06\u6570\u636e\u5206\u7ec4\u4e3a\u67f1\u72b6\u56fe\u3002

  • color\uff1a\u76f4\u65b9\u56fe\u8fb9\u6846\u989c\u8272\uff01

  • fill\uff1a\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u586b\u5145\u989c\u8272\u6620\u5c04\u5173\u7cfb\uff0c\u3002

  • position\uff1a\u67f1\u72b6\u56fe\u7684\u653e\u7f6e\u65b9\u5f0f\u3002\u53ef\u4ee5\u662f\"stack\"\uff08\u9ed8\u8ba4\uff0c\u5806\u53e0\u663e\u793a\uff09\u6216\"dodge\"\uff08\u5e76\u5217\u663e\u793a\uff09\u3002

  • binwidth\uff1a\u6307\u5b9a\u67f1\u72b6\u56fe\u7684\u5bbd\u5ea6\uff0c\u5c31\u662f\u7ec4\u8ddd\uff0c\u7528\u4e8e\u63a7\u5236\u5206\u7ec4\u7684\u7c92\u5ea6\u3002

  • bins\uff1a\u6307\u5b9a\u67f1\u72b6\u56fe\u7684\u6570\u91cf\uff0c\u7528\u4e8e\u63a7\u5236\u5206\u7ec4\u7684\u4e2a\u6570\u3002

  • na.rm\uff1a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5ffd\u7565\u7f3a\u5931\u503c\u3002

  • show.legend\uff1a\u7528\u4e8e\u63a7\u5236\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002

  • inherit.aes\uff1a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684aes()\u6620\u5c04\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528geom_histogram()\u51fd\u6570\u7ed8\u5236\u76f4\u65b9\u56fe\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u6570\u636e\u96c6\ndata <- data.frame(\n  value = rnorm(1000)\n)\n\n# \u7ed8\u5236\u76f4\u65b9\u56fe\nggplot(data, aes(x = value)) +\n  geom_histogram(binwidth = 0.2, fill = \"blue\", col = \"black\") +\n  labs(title = \"Histogram\", x = \"Value\", y = \"Frequency\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7dggplot2\u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u96c6 data\uff0c\u5305\u542b\u4e86\u4e00\u4e2a\u968f\u673a\u751f\u6210\u7684\u503c\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u56fe\u5f62\uff0c\u5e76\u4f7f\u7528aes()\u51fd\u6570\u5c06\u6570\u636e\u7684value\u53d8\u91cf\u6620\u5c04\u5230x\u8f74\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528geom_histogram()\u51fd\u6570\u7ed8\u5236\u76f4\u65b9\u56fe\u3002\u5728geom_histogram()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u53c2\u6570\u5982binwidth\u6765\u6307\u5b9a\u67f1\u72b6\u56fe\u7684\u5bbd\u5ea6\uff0c\u901a\u8fc7\u63a7\u5236\u5206\u7ec4\u7684\u7c92\u5ea6\u6765\u8c03\u6574\u76f4\u65b9\u56fe\u7684\u6837\u5f0f\u3002

\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528labs()\u51fd\u6570\u8bbe\u7f6e\u56fe\u5f62\u7684\u6807\u9898\u548c\u8f74\u6807\u7b7e\u3002

\u901a\u8fc7\u4f7f\u7528geom_histogram()\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u8f7b\u677e\u7ed8\u5236\u76f4\u65b9\u56fe\u4ee5\u53ef\u89c6\u5316\u5b9a\u91cf\u53d8\u91cf\u7684\u5206\u5e03\u60c5\u51b5\u3002\u6839\u636e\u9700\u8981\uff0c\u53ef\u4ee5\u8c03\u6574\u53c2\u6570\u6765\u63a7\u5236\u76f4\u65b9\u56fe\u7684\u6837\u5f0f\u548c\u7c92\u5ea6\u3002

"},{"location":"R/ggplot2/geom_histogram%28%29/#_1","title":"\u67f1\u72b6\u56fe\u548c\u76f4\u65b9\u56fe\u7684\u533a\u522b","text":"

bar chart\u67f1\u72b6\u56fe\uff1a\u6570\u636e\u4e0d\u8fde\u7eed\uff0c\u6709\u95f4\u9694\uff1b

Histogram\u76f4\u65b9\u56fe\uff1a\u6570\u636e\u8fde\u7eed\uff0c\u65e0\u95f4\u9694\u3002

"},{"location":"R/ggplot2/geom_histogram%28%29/#_2","title":"\u8bbe\u7f6e\u76f4\u65b9\u56fe\u76f8\u5173\u53c2\u6570","text":"

scale_x_continuous() \u9650\u5236\u4e86\u5750\u6807\u8f74\u7684\u8303\u56f4\uff0c\u4f46\u5206\u7ec4\u8fd8\u662f\u9ed8\u8ba4\u5206\u7ec4

# input data\ndf_ppg <- read.csv(\"./data/NBAPlayerPts.csv\")\n\n# \nggplot(df_ppg) +\n  geom_histogram(aes(x=PPG)) +\n  scale_x_continuous(limits = c(10, 30))\n

\u628ax\u8f74\u7684\u5750\u6807\u548cgeom_histogram()\u4e2d\u7684\u7ec4\u8ddd\u3001\u7ec4\u6570\u9650\u5236\u4e0b\uff0c\u53d1\u73b0\u9ed8\u8ba4\u5206\u7ec4\u8d77\u59cb\u7ec4\u662f11-13\uff0c\u800c\u975e10-12\uff01\u60f3\u8981\u5904\u7406\u4e3a10-12\u8fd8\u662f\u5f97\u8f6c\u6362\u4e3a\u56e0\u5b50\u578b\u3002

# input data\ndf_ppg <- read.csv(\"./data/NBAPlayerPts.csv\")\n\n# \nggplot(df_ppg) +\n  geom_histogram(aes(x = PPG), binwidth = 2, bins = 15) +\n  scale_x_continuous(breaks = seq(10,30,2), limits = c(10, 30)) +\n  scale_y_continuous(breaks = seq(1,18))\n

"},{"location":"R/ggplot2/geom_histogram%28%29/#_3","title":"\u5c06\u8fde\u7eed\u578b\u53d8\u91cf\u79bb\u6563\u5316\uff0c\u6c42\u9891\u7387","text":"

\u4e2a\u4eba\u7684\u65b9\u6cd5\uff0c\u8001\u5e08\u7684\u65b9\u6cd5\u8be6\u770btable()\u4e2d\u7684\u5b50\u6807\u9898\u5185\u5bb9\u3002

# create a factor\nbreaks <- seq(10, 30, by = 2)\ndf_ppg_fre <- df_ppg %>%\n  mutate(PPG_Group = cut(PPG, breaks = breaks,include.lowest = TRUE)) %>% \n  group_by(PPG_Group) %>% \n  summarise(PPG_Group_count = n(), .groups = \"drop\")\n\n# plot a bar gram\ndf_ppg_fre %>% \n  ggplot() +\n  geom_bar(aes(x = PPG_Group, y = PPG_Group_count), stat = \"identity\") +\n  scale_y_continuous(breaks = seq(0,20))\n

"},{"location":"R/ggplot2/geom_line%28%29/","title":"Geom line()","text":"

geom_line() \u662f ggplot2 \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u56fe\u4e2d\u6dfb\u52a0\u7ebf\u6761\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u663e\u793a\u6570\u636e\u70b9\u4e4b\u95f4\u7684\u8d8b\u52bf\u3001\u8fde\u7eed\u53d8\u91cf\u7684\u6f14\u53d8\u3001\u65f6\u95f4\u5e8f\u5217\u7b49\u3002

geom_line(x, y, ...)\n

\u4e0b\u9762\u662f geom_line() \u51fd\u6570\u4e2d\u5e38\u7528\u7684\u53c2\u6570\u7684\u8be6\u7ec6\u8bb2\u89e3\u548c\u4e3e\u4f8b\uff1a - x: \u6307\u5b9a x \u8f74\u4e0a\u7684\u53d8\u91cf\u6216\u6570\u636e\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\u3001\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u4e2d\u7684\u5217\u540d\u3002\u8fd9\u662f\u5fc5\u9700\u7684\u53c2\u6570\u3002

  • y: \u6307\u5b9a y \u8f74\u4e0a\u7684\u53d8\u91cf\u6216\u6570\u636e\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\u3001\u6570\u636e\u6846\u6216\u6570\u636e\u96c6\u4e2d\u7684\u5217\u540d\u3002\u8fd9\u662f\u5fc5\u9700\u7684\u53c2\u6570\u3002

  • group: \u6307\u5b9a\u7528\u4e8e\u5206\u7ec4\u7684\u53d8\u91cf\u6216\u6570\u636e\u3002\u5f53\u4f60\u6709\u591a\u4e2a\u7ec4\uff0c\u5e76\u5e0c\u671b\u4e3a\u6bcf\u4e2a\u7ec4\u7ed8\u5236\u72ec\u7acb\u7684\u7ebf\u6761\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u8be5\u53c2\u6570\u3002

  • color \u6216 colour: \u6307\u5b9a\u7ebf\u6761\u7684\u989c\u8272\u3002\u53ef\u4ee5\u4f7f\u7528\u989c\u8272\u540d\u79f0\uff08\u5982 \"red\"\uff09\u3001\u5341\u516d\u8fdb\u5236\u4ee3\u7801\uff08\u5982 \"#FF0000\"\uff09\u6216\u5176\u4ed6\u53ef\u8bc6\u522b\u7684\u989c\u8272\u8868\u793a\u65b9\u6cd5\u3002

  • linetype: \u6307\u5b9a\u7ebf\u6761\u7684\u7c7b\u578b\u3002\u53ef\u4ee5\u662f \"solid\"\uff08\u5b9e\u7ebf\uff0c\u9ed8\u8ba4\u503c\uff09\u3001\"dashed\"\uff08\u865a\u7ebf\uff09\u3001\"dotted\"\uff08\u70b9\u7ebf\uff09\u7b49\u3002

  • size: \u6307\u5b9a\u7ebf\u6761\u7684\u7c97\u7ec6\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u6570\u503c\uff0c\u8868\u793a\u7ebf\u6761\u7684\u5bbd\u5ea6\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 geom_line() \u7ed8\u5236\u4e00\u6761\u7ebf\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\ndf <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(2, 4, 6, 8, 10)\n)\n\n# \u7ed8\u5236\u7ebf\u6761\u56fe\nggplot(df, aes(x, y)) +\n  geom_line()\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b x \u548c y \u503c\u7684\u6570\u636e\u6846 df\uff0c\u7136\u540e\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528 geom_line() \u6dfb\u52a0\u4e86\u4e00\u6761\u7ebf\uff0c\u5176\u4e2d x \u503c\u5bf9\u5e94\u6570\u636e\u6846\u4e2d\u7684 x \u5217\uff0cy \u503c\u5bf9\u5e94\u6570\u636e\u6846\u4e2d\u7684 y \u5217\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u6570\u636e\u548c\u9700\u6c42\uff0c\u901a\u8fc7\u8c03\u6574\u8fd9\u4e9b\u53c2\u6570\u6765\u5b9a\u5236\u548c\u7f8e\u5316\u7ebf\u6761\u56fe\u3002\u6b64\u5916\uff0cgeom_line() \u8fd8\u6709\u5176\u4ed6\u53c2\u6570\u53ef\u4ee5\u4f7f\u7528\uff0c\u4f8b\u5982 alpha\uff08\u900f\u660e\u5ea6\uff09\u548c linetype\uff08\u7ebf\u6761\u7c7b\u578b\uff09\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u67e5\u9605 ggplot2 \u7684\u6587\u6863\u6765\u8fdb\u4e00\u6b65\u4e86\u89e3\u3002

"},{"location":"R/ggplot2/geom_point%28%29/","title":"Geom point()","text":"

\u662fggplot2\u5305\u4e2d\u7684\u4e00\u4e2a\u51e0\u4f55\u5bf9\u8c61\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u56fe\u4e2d\u6dfb\u52a0\u6563\u70b9\u56fe\u3002\u5b83\u53ef\u7528\u4e8e\u521b\u5efa\u6563\u70b9\u56fe\uff0c\u5e76\u5c06\u6570\u636e\u70b9\u8868\u793a\u4e3a\u79bb\u6563\u7684\u70b9\u3002

geom_point(mapping = NULL, data = NULL, ..., inherit.aes = TRUE)\n
- mapping\uff1a\u4e00\u4e2a[[aes()]]\u6620\u5c04\uff0c\u7528\u4e8e\u6307\u5b9a\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u5c5e\u6027\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u4f8b\u5982x\u8f74\u5750\u6807\u3001y\u8f74\u5750\u6807\u3001\u989c\u8272\u3001\u5f62\u72b6\u7b49\u3002 - data\uff1a\u5305\u542b\u8981\u7ed8\u5236\u7684\u6570\u636e\u7684\u6570\u636e\u6846\u3002 ggplot()\u4e2d\u6307\u5b9a\u4e86\u6570\u636e\u96c6\u548c\u7f8e\u5b66\uff0c\u8fd9\u91cc\u5c31\u53ef\u4ee5\u4e0d\u6307\u5b9a\uff0c\u8fd9\u91cc\u5236\u5b9a\u4e86\uff0c\u5c31\u4f1a\u66ff\u4ee3ggplot()\u4e2d\u7684\u5168\u5c40\u6620\u5c04\u3002 - \u5176\u4ed6\u5173\u952e\u53c2\u6570 1. color\uff1a\u6307\u5b9a\u70b9\u7684\u989c\u8272\u3002\u53ef\u4ee5\u662f\u9884\u5b9a\u4e49\u7684\u989c\u8272\u540d\u79f0\u3001\u989c\u8272\u7684\u5341\u516d\u8fdb\u5236\u8868\u793a\u6216\u8868\u793a\u6570\u636e\u6846\u5217\u540d\u7684\u5b57\u7b26\u5411\u91cf\uff0c\"blue\"\uff0c\"red\"\u7b49\u3002 2. shape\uff1a\u6307\u5b9a\u70b9\u7684\u5f62\u72b6\u3002\u53ef\u4ee5\u662f\u9884\u5b9a\u4e49\u7684\u5f62\u72b6\u4ee3\u7801\uff081-25\uff09\u6216\u8868\u793a\u6570\u636e\u6846\u5217\u540d\u7684\u5b57\u7b26\u5411\u91cf\u3002 3. size\uff1a\u6307\u5b9a\u70b9\u7684\u5927\u5c0f\u3002\u53ef\u4ee5\u662f\u56fa\u5b9a\u7684\u6570\u503c\u6216\u8868\u793a\u6570\u636e\u6846\u5217\u540d\u7684\u5b57\u7b26\u5411\u91cf\u3002 4. alpha\uff1a\u6307\u5b9a\u70b9\u7684\u900f\u660e\u5ea6\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u4ecb\u4e8e0\u548c1\u4e4b\u95f4\u7684\u6570\u503c\uff0c\u8868\u793a\u4e0d\u900f\u660e\u5ea6\u7684\u7a0b\u5ea6\u3002 5. stroke\uff1a\u6307\u5b9a\u70b9\u7684\u63cf\u8fb9\u989c\u8272\u3002\u53ef\u4ee5\u662f\u9884\u5b9a\u4e49\u7684\u989c\u8272\u540d\u79f0\u3001\u989c\u8272\u7684\u5341\u516d\u8fdb\u5236\u8868\u793a\u6216\u8868\u793a\u6570\u636e\u6846\u5217\u540d\u7684\u5b57\u7b26\u5411\u91cf\u3002 6. stroke_width\uff1a\u6307\u5b9a\u70b9\u7684\u63cf\u8fb9\u5bbd\u5ea6\u3002\u53ef\u4ee5\u662f\u56fa\u5b9a\u7684\u6570\u503c\u6216\u8868\u793a\u6570\u636e\u6846\u5217\u540d\u7684\u5b57\u7b26\u5411\u91cf\u3002 - na.rm\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5ffd\u7565\u5305\u542b\u7f3a\u5931\u503c\uff08NA\uff09\u7684\u89c2\u6d4b\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5220\u9664\u7f3a\u5931\u503c\u3002 - inherit.aes\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u4ece\u7236\u56fe\u5c42\u7ee7\u627f\u7f8e\u5b66\u5c5e\u6027\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528geom_point()\u51fd\u6570\u521b\u5efa\u6563\u70b9\u56fe\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(2, 4, 6, 8, 10)\n)\n\n# \u521b\u5efa\u6563\u70b9\u56fe\nggplot(data, aes(x = x, y = y)) +\n  geom_point()\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86x\u548cy\u5750\u6807\u7684\u503c\u3002\u7136\u540e\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_point()\u51fd\u6570\u6dfb\u52a0\u6563\u70b9\u56fe\u3002\u901a\u8fc7aes()\u51fd\u6570\uff0c\u6211\u4eec\u5c06x\u548cy\u53d8\u91cf\u4e0e\u56fe\u5f62\u5c5e\u6027\u8fdb\u884c\u6620\u5c04\u3002

geom_point()\u51fd\u6570\u4f1a\u6839\u636e\u6570\u636e\u6846\u4e2d\u7684x\u548cy\u503c\u5728\u56fe\u4e0a\u7ed8\u5236\u76f8\u5e94\u7684\u70b9\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u70b9\u7684\u5916\u89c2\u7531ggplot2\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u786e\u5b9a\uff0c\u4f46\u60a8\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u53c2\u6570\u6765\u81ea\u5b9a\u4e49\u70b9\u7684\u5f62\u72b6\u3001\u5927\u5c0f\u3001\u989c\u8272\u7b49\u3002

\u8fd9\u4e2a\u793a\u4f8b\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528geom_point()\u51fd\u6570\u521b\u5efa\u6563\u70b9\u56fe\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u6620\u5c04\u5173\u7cfb\u548c\u5176\u4ed6\u53c2\u6570\u6765\u5b9a\u5236\u6563\u70b9\u56fe\u7684\u5916\u89c2\u3002

"},{"location":"R/ggplot2/geom_point%28%29/#position","title":"position\u53c2\u6570","text":"

\u5728ggplot2\u7684geom_point()\u51fd\u6570\u4e2d\uff0cposition\u53c2\u6570\u7528\u4e8e\u63a7\u5236\u70b9\u7684\u4f4d\u7f6e\u3002\u8be5\u53c2\u6570\u63a5\u53d7\u4ee5\u4e0b\u51e0\u4e2a\u5e38\u7528\u7684\u53d6\u503c\uff1a - \"identity\"\uff1a\u70b9\u7684\u4f4d\u7f6e\u4e0e\u6570\u636e\u4e2d\u7684\u539f\u59cb\u5750\u6807\u4e00\u81f4\uff0c\u5373\u4e0d\u8fdb\u884c\u4efb\u4f55\u4f4d\u7f6e\u8c03\u6574\u3002 - \"jitter\"\uff1a\u5bf9\u4e8e\u5177\u6709\u76f8\u540cx\u503c\u7684\u70b9\uff0c\u901a\u8fc7\u6dfb\u52a0\u968f\u673a\u7684\u5fae\u5c0f\u504f\u79fb\u6765\u5206\u6563\u5b83\u4eec\u7684\u4f4d\u7f6e\uff0c\u4ee5\u907f\u514d\u70b9\u5b8c\u5168\u91cd\u53e0\u5728\u4e00\u8d77\u3002 - \"nudge\"\uff1a\u5728x\u8f74\u6216y\u8f74\u4e0a\u5bf9\u70b9\u8fdb\u884c\u5fae\u5c0f\u7684\u504f\u79fb\uff0c\u4f7f\u5b83\u4eec\u5728\u5750\u6807\u8f74\u4e0a\u7a0d\u5fae\u5206\u5f00\u3002 - \"stack\"\uff1a\u5bf9\u4e8e\u5177\u6709\u76f8\u540cx\u503c\u7684\u70b9\uff0c\u5c06\u5b83\u4eec\u5806\u53e0\u5728\u4e00\u8d77\uff0c\u4f7f\u5f97\u53ea\u6709\u4e00\u4e2a\u70b9\u53ef\u89c1\uff0c\u4f46\u70b9\u7684\u5927\u5c0f\u4f1a\u6839\u636e\u5806\u53e0\u7684\u6570\u91cf\u8fdb\u884c\u7f29\u653e\u3002 - \"fill\"\uff1a\u5bf9\u4e8e\u5177\u6709\u76f8\u540cx\u503c\u7684\u70b9\uff0c\u5c06\u5b83\u4eec\u5806\u53e0\u5728\u4e00\u8d77\uff0c\u4f7f\u5f97\u53ea\u6709\u4e00\u4e2a\u70b9\u53ef\u89c1\uff0c\u5e76\u4e14\u70b9\u7684\u5927\u5c0f\u548c\u5f62\u72b6\u4fdd\u6301\u4e0d\u53d8\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u5728geom_point()\u4e2d\u4f7f\u7528\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 1, 2, 2, 3, 3),\n  y = c(1, 1, 2, 2, 3, 3)\n)\n\n# \u521b\u5efa\u6563\u70b9\u56fe\uff0c\u5e76\u4f7f\u7528\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\nggplot(data, aes(x = x, y = y)) +\n  geom_point(position = \"identity\", color = \"blue\") +\n  geom_point(position = \"jitter\", color = \"red\") +\n  geom_point(position = \"nudge\", color = \"green\") +\n  geom_point(position = \"stack\", color = \"purple\") +\n  geom_point(position = \"fill\", color = \"orange\")\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86x\u548cy\u5750\u6807\u7684\u503c\u3002\u7136\u540e\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_point()\u51fd\u6570\u6dfb\u52a0\u6563\u70b9\u56fe\u3002\u5728\u6bcf\u4e2ageom_point()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u8bbe\u7f6e\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\uff0c\u5e76\u4e3a\u6bcf\u4e2a\u6563\u70b9\u56fe\u6307\u5b9a\u4e86\u4e0d\u540c\u7684\u989c\u8272\u3002

\u8fd0\u884c\u8fd9\u6bb5\u4ee3\u7801\u4f1a\u751f\u6210\u4e00\u4e2a\u5305\u542b\u4e86\u4e94\u4e2a\u6563\u70b9\u56fe\u7684\u56fe\u5f62\u3002\u6bcf\u4e2a\u6563\u70b9\u56fe\u90fd\u4f7f\u7528\u76f8\u540c\u7684\u6570\u636e\uff0c\u4f46\u6839\u636e\u4e0d\u540c\u7684position\u53c2\u6570\u53d6\u503c\uff0c\u70b9\u7684\u4f4d\u7f6e\u548c\u663e\u793a\u65b9\u5f0f\u4f1a\u6709\u6240\u4e0d\u540c\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u89c2\u5bdf\u56fe\u4e2d\u7684\u70b9\u7684\u4f4d\u7f6e\u548c\u5206\u5e03\u60c5\u51b5\u6765\u66f4\u597d\u5730\u7406\u89e3\u6bcf\u4e2aposition\u53c2\u6570\u53d6\u503c\u7684\u6548\u679c\u3002

"},{"location":"R/ggplot2/geom_smooth%28%29/","title":"Geom smooth()","text":"

\u51fd\u6570\u662fR\u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u7ed8\u56fe\u4e2d\u6dfb\u52a0\u5e73\u6ed1\u66f2\u7ebf\u3002\u89c4\u907f\u4e00\u4e9b\u79bb\u7fa4\u6781\u7aef\u70b9

geom_smooth()\n
  • method\uff1a\u7528\u4e8e\u6307\u5b9a\u5e73\u6ed1\u66f2\u7ebf\u7684\u65b9\u6cd5\u3002\u5e38\u7528\u7684\u65b9\u6cd5\u5305\u62ec\"lm\"\uff08\u7ebf\u6027\u56de\u5f52\uff09\uff0c\"loess\"\uff08\u5c40\u90e8\u591a\u9879\u5f0f\u56de\u5f52\uff09\uff0c\"gam\"\uff08\u5e7f\u4e49\u53ef\u52a0\u6a21\u578b\uff09\u7b49\u3002\u4f8b\u5982\uff0cmethod = \"lm\"\u5c06\u4f7f\u7528\u7ebf\u6027\u56de\u5f52\u65b9\u6cd5\u6dfb\u52a0\u5e73\u6ed1\u66f2\u7ebf\u3002

  • formula\uff1a\u7528\u4e8e\u6307\u5b9a\u5e73\u6ed1\u66f2\u7ebf\u7684\u516c\u5f0f\u3002\u516c\u5f0f\u53ef\u4ee5\u5305\u542b\u81ea\u53d8\u91cf\u548c\u56e0\u53d8\u91cf\uff0c\u4f8b\u5982formula = y ~ x\uff0c\u5176\u4e2dy\u662f\u56e0\u53d8\u91cf\uff0cx\u662f\u81ea\u53d8\u91cf\u3002

  • se\uff1a\u6307\u5b9a\u662f\u5426\u663e\u793a\u5e73\u6ed1\u66f2\u7ebf\u7684\u7f6e\u4fe1\u533a\u95f4\u3002\u9ed8\u8ba4\u503c\u4e3aTRUE\uff0c\u8868\u793a\u663e\u793a\u7f6e\u4fe1\u533a\u95f4\u3002

  • span\uff1a\u7528\u4e8e\u6307\u5b9a\u5c40\u90e8\u591a\u9879\u5f0f\u56de\u5f52\u7684\u5e73\u6ed1\u5ea6\u3002\u53d6\u503c\u8303\u56f4\u4e3a0\u52301\uff0c\u8d8a\u63a5\u8fd1\u4e8e1\u8868\u793a\u5e73\u6ed1\u5ea6\u8d8a\u9ad8\u3002

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6563\u70b9\u56fe\uff0c\u5e76\u6dfb\u52a0\u5e73\u6ed1\u66f2\u7ebf\nggplot(data = mtcars, aes(x = wt, y = mpg)) +\n  geom_point() +\n  geom_smooth(method = \"lm\", se = FALSE) +\n  labs(title = \"Weight vs. MPG\",\n       x = \"Weight\",\n       y = \"MPG\")\n

\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86mtcars\u6570\u636e\u96c6\u7684wt\uff08\u8f66\u91cd\uff09\u548cmpg\uff08\u6bcf\u52a0\u4ed1\u82f1\u91cc\u6570\uff09\u5217\u7ed8\u5236\u4e86\u4e00\u4e2a\u6563\u70b9\u56fe\uff0c\u5e76\u901a\u8fc7geom_smooth()\u51fd\u6570\u4f7f\u7528\u7ebf\u6027\u56de\u5f52\u65b9\u6cd5\u6dfb\u52a0\u4e86\u5e73\u6ed1\u66f2\u7ebf\u3002

"},{"location":"R/ggplot2/geom_text%28%29/","title":"Geom text()","text":"

ggplot2 \u662f\u4e00\u4e2a\u7528\u4e8e\u6570\u636e\u53ef\u89c6\u5316\u7684\u5f3a\u5927 R \u5305\u3002geom_text() \u51fd\u6570\u662f ggplot2 \u4e2d\u7684\u4e00\u4e2a\u51e0\u4f55\u5bf9\u8c61\uff0c\u7528\u4e8e\u5728\u56fe\u8868\u4e2d\u6dfb\u52a0\u6587\u672c\u6807\u7b7e\u3002 \u51fd\u6570\u5b9a\u4e49:

geom_text(\n  mapping = NULL,\n  data = NULL,\n  stat = \"identity\",\n  position = \"identity\",\n  ...,\n  parse = FALSE,\n  nudge_x = 0,\n  nudge_y = 0,\n  check_overlap = FALSE,\n  na.rm = FALSE,\n  show.legend = NA,\n  inherit.aes = TRUE\n)\n

\u8be6\u7ec6\u53c2\u6570: - mapping: \u7528\u4e8e\u6307\u5b9a\u6587\u672c\u6807\u7b7e\u7684\u6620\u5c04\uff08mapping\uff09\u53c2\u6570\uff0c\u5305\u62ec x\u3001y \u548c label\u3002\u4f8b\u5982\uff0cmapping = aes(x = x_var, y = y_var, label = label_var)\u3002 - data: \u5305\u542b\u6570\u636e\u7684\u6570\u636e\u6846\uff08data frame\uff09\u6216\u5176\u4ed6\u53ef\u4f9b\u8f6c\u6362\u4e3a\u6570\u636e\u6846\u7684\u5bf9\u8c61\u3002 - stat: \u6307\u5b9a\u7528\u4e8e\u8ba1\u7b97\u7edf\u8ba1\u53d8\u91cf\u7684\u7edf\u8ba1\u65b9\u6cd5\u3002\u9ed8\u8ba4\u503c\u4e3a \"identity\", \u6309\u6307\u5b9a\u6570\u503c\u8ba1\u7b97\uff0c\u800c\u975e\u9891\u6b21\u3002 - position: \u6307\u5b9a\u6587\u672c\u6807\u7b7e\u7684\u4f4d\u7f6e\u8c03\u6574\u65b9\u6cd5\u3002\u5e38\u89c1\u7684\u503c\u5305\u62ec \"identity\"\uff08\u4e0d\u8c03\u6574\uff09\u3001\"stack\"\uff08\u5806\u53e0\uff09\u548c \"dodge\"\uff08\u5e76\u5217\uff09\u3002\u9ed8\u8ba4\u503c\u4e3a \"identity\"\u3002 - ...: \u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4fee\u6539\u6587\u672c\u6807\u7b7e\u7684\u5916\u89c2\u548c\u6837\u5f0f\uff0c\u4f8b\u5982\u5b57\u4f53\u5927\u5c0f\u3001\u989c\u8272\u7b49\u3002 - parse: \u7528\u4e8e\u6307\u5b9a\u662f\u5426\u89e3\u6790\u6587\u672c\u6807\u7b7e\u4e2d\u7684 R \u8868\u8fbe\u5f0f\u3002\u9ed8\u8ba4\u503c\u4e3a FALSE\u3002 - nudge_x \u548c nudge_y: \u7528\u4e8e\u5fae\u8c03\u6587\u672c\u6807\u7b7e\u7684\u4f4d\u7f6e\u3002\u53ef\u4ee5\u4f7f\u7528\u6b63\u8d1f\u503c\u8fdb\u884c\u5fae\u8c03\u3002 - check_overlap: \u6307\u5b9a\u662f\u5426\u68c0\u67e5\u6587\u672c\u6807\u7b7e\u4e4b\u95f4\u7684\u91cd\u53e0\u3002\u9ed8\u8ba4\u503c\u4e3a FALSE\u3002 - na.rm: \u6307\u5b9a\u662f\u5426\u5220\u9664\u5305\u542b NA \u503c\u7684\u89c2\u6d4b\u3002\u9ed8\u8ba4\u503c\u4e3a FALSE\u3002 - show.legend: \u6307\u5b9a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002\u9ed8\u8ba4\u503c\u4e3a NA\uff0c\u8868\u793a\u6839\u636e\u56fe\u5c42\u4e0a\u7684\u6620\u5c04\u53c2\u6570\u81ea\u52a8\u786e\u5b9a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002 - inherit.aes: \u6307\u5b9a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684\u7f8e\u5b66\u5c5e\u6027\u3002\u9ed8\u8ba4\u503c\u4e3a TRUE\u3002

\u4e3e\u4f8b:

library(ggplot2)\n\n# \u521b\u5efa\u6570\u636e\u6846\ndata <- data.frame(x = c(1, 2, 3, 4, 5),\n                   y = c(10, 8, 6, 4, 2),\n                   label = c(\"A\", \"B\", \"C\", \"D\", \"E\"))\n\n# \u521b\u5efa\u6563\u70b9\u56fe\u5e76\u6dfb\u52a0\u6587\u672c\u6807\u7b7e\nggplot(data, aes(x, y)) +\n  geom_point() +\n  geom_text(aes(label = label), color = \"red\", size = 12, nudge_x = 0.2, nudge_y = 0.2)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b x\u3001y \u548c label \u53d8\u91cf\u7684\u6570\u636e\u6846\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u6563\u70b9\u56fe\uff0c\u5e76\u4f7f\u7528 geom_point() \u51fd\u6570\u6dfb\u52a0\u4e86\u6563\u70b9\u3002\u6700\u540e\uff0c\u4f7f\u7528 geom_text() \u51fd\u6570\u5728\u6bcf\u4e2a\u6563\u70b9\u4e0a\u6dfb\u52a0\u4e86\u6587\u672c\u6807\u7b7e\u3002\u901a\u8fc7 aes(label = label) \u6307\u5b9a\u4e86\u6807\u7b7e\u7684\u6620\u5c04\u5173\u7cfb\uff0ccolor \u53c2\u6570\u8bbe\u7f6e\u6807\u7b7e\u989c\u8272\u4e3a\u7ea2\u8272\uff0csize \u53c2\u6570\u8bbe\u7f6e\u6807\u7b7e\u5927\u5c0f\u4e3a 12\uff0cnudge_x \u548c nudge_y \u53c2\u6570\u5fae\u8c03\u6807\u7b7e\u7684\u4f4d\u7f6e\u3002

"},{"location":"R/ggplot2/geom_vline%28%29/","title":"Geom vline()","text":"

\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u5728\u56fe\u5f62\u4e2d\u6dfb\u52a0\u5782\u76f4\u7ebf\u7684\u51fd\u6570\u3002\u5b83\u5141\u8bb8\u4f60\u5728\u6307\u5b9a\u7684 x \u5750\u6807\u4f4d\u7f6e\u4e0a\u6dfb\u52a0\u5782\u76f4\u7ebf\uff0c\u5e76\u53ef\u4ee5\u5bf9\u5176\u8fdb\u884c\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u3002

\u4e0b\u9762\u662f geom_vline() \u51fd\u6570\u7684\u8bed\u6cd5\u548c\u5e38\u7528\u53c2\u6570\u7684\u8be6\u7ec6\u8bf4\u660e\uff1a

geom_vline(\n  mapping = NULL,\n  data = NULL,\n  xintercept = NULL,\n  linetype = \"solid\",\n  color = \"black\",\n  size = 0.5,\n  alpha = 1,\n  ...\n)\n

\u5e38\u7528\u53c2\u6570\u7684\u89e3\u91ca\u5982\u4e0b\uff1a

  • mapping\uff1a\u6307\u5b9a\u53d8\u91cf\u4e0e\u56fe\u5f62\u5c5e\u6027\u4e4b\u95f4\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u4f7f\u7528 aes() \u51fd\u6570\u8bbe\u7f6e\u3002\u53ef\u4ee5\u7528\u4e8e\u5bf9\u4e0d\u540c\u7684\u5782\u76f4\u7ebf\u8fdb\u884c\u5206\u7ec4\u6216\u6620\u5c04\u4e0d\u540c\u7684\u5c5e\u6027\u3002

  • data\uff1a\u6307\u5b9a\u5305\u542b\u6570\u636e\u7684\u6570\u636e\u6846\u3002\u5982\u679c\u4e0d\u63d0\u4f9b\u6b64\u53c2\u6570\uff0c\u5c06\u4f7f\u7528\u5168\u5c40\u6570\u636e\u6846\u3002

  • xintercept\uff1a\u6307\u5b9a\u5782\u76f4\u7ebf\u7684 x \u5750\u6807\u4f4d\u7f6e\u3002\u53ef\u4ee5\u662f\u5355\u4e2a\u503c\u3001\u5411\u91cf\u6216\u4e00\u4e2a\u51fd\u6570\u3002

  • linetype\uff1a\u6307\u5b9a\u7ebf\u578b\u7684\u7c7b\u578b\u3002\u9ed8\u8ba4\u503c\u4e3a \"solid\"\u3002

  • color\uff1a\u6307\u5b9a\u7ebf\u7684\u989c\u8272\u3002\u9ed8\u8ba4\u503c\u4e3a \"black\"\u3002

  • size\uff1a\u6307\u5b9a\u7ebf\u7684\u7c97\u7ec6\u3002\u9ed8\u8ba4\u503c\u4e3a 0.5\u3002

  • alpha\uff1a\u6307\u5b9a\u7ebf\u7684\u900f\u660e\u5ea6\u3002\u53d6\u503c\u8303\u56f4\u4e3a 0\uff08\u5b8c\u5168\u900f\u660e\uff09\u5230 1\uff08\u5b8c\u5168\u4e0d\u900f\u660e\uff09\u3002\u9ed8\u8ba4\u503c\u4e3a 1\u3002

\u9664\u4e86\u4e0a\u8ff0\u53c2\u6570\u5916\uff0cgeom_vline() \u8fd8\u63a5\u53d7\u5176\u4ed6\u53c2\u6570\uff0c\u8fd9\u4e9b\u53c2\u6570\u4f1a\u4f20\u9012\u7ed9 geom_segment() \u51fd\u6570\uff0c\u7528\u4e8e\u7ed8\u5236\u7ebf\u6bb5\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 geom_vline() \u51fd\u6570\u6dfb\u52a0\u5782\u76f4\u7ebf\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u6846\ndata <- data.frame(x = 1:10, y = rnorm(10))\n\n# \u521b\u5efa\u6563\u70b9\u56fe\u5e76\u6dfb\u52a0\u5782\u76f4\u7ebf\nggplot(data, aes(x = x, y = y)) +\n  geom_point() +\n  geom_vline(xintercept = 5, color = \"red\", linetype = \"dashed\") +\n  labs(title = \"Scatter Plot with Vertical Line\", x = \"X-axis\", y = \"Y-axis\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a data \u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e24\u4e2a\u53d8\u91cf x \u548c y\u3002\u7136\u540e\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528 aes() \u51fd\u6570\u5c06 x \u53d8\u91cf\u6620\u5c04\u5230 x \u8f74\uff0c\u5c06 y \u53d8\u91cf\u6620\u5c04\u5230 y \u8f74\u3002

\u901a\u8fc7 geom_point() \u51fd\u6570\u6dfb\u52a0\u6563\u70b9\u56fe\u7684\u56fe\u5c42\u3002\u7136\u540e\u4f7f\u7528 geom_vline() \u51fd\u6570\u6dfb\u52a0\u5782\u76f4\u7ebf\uff0c\u901a\u8fc7 xintercept \u53c2\u6570\u6307\u5b9a\u7ebf\u7684 x \u5750\u6807\u4f4d\u7f6e\u4e3a 5\uff0c\u901a\u8fc7 color \u53c2\u6570\u8bbe\u7f6e\u7ebf\u7684\u989c\u8272\u4e3a \"red\"\uff0c\u901a\u8fc7 linetype \u53c2\u6570\u8bbe\u7f6e\u7ebf\u7684\u7c7b\u578b\u4e3a \"dashed\"\u3002

\u901a\u8fc7\u8c03\u6574\u53c2\u6570\u548c\u6dfb\u52a0\u5176\u4ed6\u56fe\u5c42\u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u5728\u56fe\u5f62\u4e2d\u6dfb\u52a0\u591a\u4e2a\u5782\u76f4\u7ebf\uff0c\u8bbe\u7f6e\u4e0d\u540c\u7684\u989c\u8272\u3001\u7ebf\u578b\u548c\u4f4d\u7f6e\u3002

"},{"location":"R/ggplot2/ggplot%28%29/","title":"Ggplot()","text":"

\u662f ggplot2 \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61(\u521b\u5efa\u753b\u5e03\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3aPPT\u4e2d\u65b0\u5efa\u7684\u4e00\u9875)\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6846\u67b6\uff0c\u7528\u4e8e\u6307\u5b9a\u6570\u636e\u548c\u56fe\u5f62\u7684\u6574\u4f53\u5c5e\u6027\uff0c\u5e76\u53ef\u4ee5\u4e0e\u5176\u4ed6\u51fd\u6570\uff08\u5982 geom_*()\u3001scale_*()\u3001theme() \u7b49\uff09\u7ed3\u5408\u4f7f\u7528\u6765\u6784\u5efa\u5177\u4f53\u7684\u56fe\u5f62\u3002 \u5355\u72ec\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u7684\u7ed8\u56fe\u5bf9\u8c61\u662f\u4e00\u4e2a\u7a7a\u7684\u753b\u5e03\uff0c\u6ca1\u6709\u5177\u4f53\u7684\u56fe\u5f62\u663e\u793a\u3002\u8981\u5728\u753b\u5e03\u4e0a\u6dfb\u52a0\u5177\u4f53\u7684\u56fe\u5f62\u5143\u7d20\uff0c\u9700\u8981\u4f7f\u7528\u5176\u4ed6\u51fd\u6570\uff08\u5982 geom_*()\uff09\u6765\u6307\u5b9a\u7ed8\u56fe\u5bf9\u8c61\u4e2d\u7684\u51e0\u4f55\u5bf9\u8c61\uff08\u5728PPT\u90a3\u9875\u4e2d\u63d2\u5165\u6587\u5b57\u3001\u56fe\u5f62\u7b49\u5177\u4f53\u4fe1\u606f\uff0c\u8fd8\u53ef\u4ee5\u6539\u6837\u5f0f\uff09\u3002

ggplot(data = NULL, mapping = aes(), ...)\n
- data: \u6307\u5b9a\u8981\u7528\u4e8e\u7ed8\u56fe\u7684\u6570\u636e\u96c6\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u6570\u636e\u6846\u3001\u6570\u636e\u96c6\u540d\u79f0\u3001\u6216\u8005\u5176\u4ed6\u6570\u636e\u7ed3\u6784\u3002 - mapping: \u5b9a\u4e49\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u5373\u6307\u5b9a\u54ea\u4e9b\u53d8\u91cf\u5c06\u6620\u5c04\u5230\u56fe\u5f62\u7684\u89c6\u89c9\u5c5e\u6027\uff0c\u5982 x \u8f74\u4f4d\u7f6e\u3001y \u8f74\u4f4d\u7f6e\u3001\u989c\u8272\u3001\u5f62\u72b6\u7b49\u3002\u53ef\u901a\u8fc7 aes() \u51fd\u6570\u6765\u5b9a\u4e49\u6620\u5c04\u5173\u7cfb\u3002 \u5c06\u6570\u636e\u96c6\u4e2d\u7684\u53d8\u91cf\u6570\u636e\u6620\u5c04\uff08\u5173\u8054\uff09\u5230\u76f8\u5e94\u7684\u56fe\u5f62\u5c5e\u6027\uff0c\u4e5f\u79f0\u4e3a \"\u7f8e\u5b66\u6620\u5c04\" \u6216 \"\u7f8e\u5b66\"\u3002 \u544a\u8bc9\u8f6f\u4ef6\u4ec0\u4e48\u662fx\u7684\u6570\u636e\uff0c\u4ec0\u4e48\u662fy\u7684\u6570\u636e\uff0cx\u548cy\u7684\u5bf9\u5e94\u5173\u7cfb\u3002\u4ee5\u53ca\u5176\u4ed6\u56fe\u5f62\u5c5e\u6027\uff0c\u653e\u5165gemo_*\u4e2d\u4e5f\u53ef\u4ee5 R\u8bed\u8a00\u5165\u95e8-aes\u51fd\u6570-\u4e00\u53e5\u8bdd\u5b66\u4f1a - Naozhewan\u7684\u6587\u7ae0 - \u77e5\u4e4e https://zhuanlan.zhihu.com/p/433287471 - main \u6216 title: \u8bbe\u7f6e\u56fe\u5f62\u7684\u4e3b\u6807\u9898\u3002 - xlab \u6216 ylab: \u8bbe\u7f6e x \u8f74\u6216 y \u8f74\u7684\u6807\u7b7e\u3002 - xlim \u6216 ylim: \u8bbe\u7f6e x \u8f74\u6216 y \u8f74\u7684\u53d6\u503c\u8303\u56f4\u3002 - facet: \u8bbe\u7f6e\u5206\u9762\u7ed8\u56fe\u7684\u65b9\u5f0f\uff0c\u7528\u4e8e\u6839\u636e\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u91cf\u7684\u4e0d\u540c\u6c34\u5e73\u62c6\u5206\u6210\u591a\u4e2a\u5b50\u56fe\u3002 - theme: \u8bbe\u7f6e\u56fe\u5f62\u7684\u4e3b\u9898\uff0c\u5305\u62ec\u80cc\u666f\u3001\u6807\u9898\u3001\u8f74\u6807\u7b7e\u3001\u56fe\u4f8b\u7b49\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002 - ... \u5176\u4ed6\u53c2\u6570\uff1a\u53ef\u4ee5\u662f\u5404\u79cd\u56fe\u5f62\u5c5e\u6027\u548c\u9009\u9879\uff0c\u5982\u5750\u6807\u8f74\u523b\u5ea6\u3001\u56fe\u4f8b\u8bbe\u7f6e\u3001\u989c\u8272\u3001\u7ebf\u578b\u3001\u70b9\u5f62\u72b6\u7b49\u3002

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\u96c6\ndf <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))\n\n# \u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\np <- ggplot(data = df, mapping = aes(x = x, y = y))\n\n# \u8f93\u51fa\u7ed8\u56fe\u5bf9\u8c61\nprint(p)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u96c6 df\uff0c\u5305\u542b\u4e24\u5217\uff08x \u548c y\uff09\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61 p\uff0c\u5e76\u6307\u5b9a\u6570\u636e\u96c6\u4e3a df\uff0c\u540c\u65f6\u4f7f\u7528 aes() \u51fd\u6570\u5b9a\u4e49\u4e86 x \u548c y \u5217\u4e0e\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\u3002\u6700\u540e\uff0c\u901a\u8fc7\u6253\u5370\u8bed\u53e5\u8f93\u51fa\u7ed8\u56fe\u5bf9\u8c61\u3002

\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\u7684\u63cf\u8ff0\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u6570\u636e\u96c6\u3001\u6620\u5c04\u5173\u7cfb\u548c\u5176\u4ed6\u5168\u5c40\u5c5e\u6027\u7684\u8bbe\u7f6e\u3002\u8fd9\u4e2a\u7ed8\u56fe\u5bf9\u8c61\u53ef\u4ee5\u8fdb\u4e00\u6b65\u4e0e\u5176\u4ed6\u51fd\u6570\uff08\u5982 geom_*()\u3001scale_*()\u3001theme() \u7b49\uff09\u7ed3\u5408\u4f7f\u7528\uff0c\u6765\u6dfb\u52a0\u5177\u4f53\u7684\u56fe\u5f62\u5143\u7d20\u548c\u8c03\u6574\u56fe\u5f62\u7684\u5404\u4e2a\u65b9\u9762\u3002

"},{"location":"R/ggplot2/labs%28%29/","title":"Labs()","text":"

\u51fd\u6570\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u4fee\u6539\u56fe\u5f62\u6807\u7b7e\u7684\u51fd\u6570\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u4fee\u6539\u56fe\u5f62\u7684\u6807\u9898\u3001\u5750\u6807\u8f74\u6807\u7b7e\u548c\u56fe\u4f8b\u6807\u7b7e\u7b49\u3002

labs()\n
- title\uff1a\u7528\u4e8e\u4fee\u6539\u56fe\u5f62\u7684\u6807\u9898\u3002 - subtitle\uff1a\u7528\u4e8e\u4fee\u6539\u56fe\u5f62\u7684\u526f\u6807\u9898\u3002 - x\uff1a\u7528\u4e8e\u4fee\u6539 x \u8f74\u7684\u6807\u7b7e\u3002 - y\uff1a\u7528\u4e8e\u4fee\u6539 y \u8f74\u7684\u6807\u7b7e\u3002 - caption\uff1a\u7528\u4e8e\u4fee\u6539\u56fe\u5f62\u7684\u6ce8\u91ca\u3002

\u901a\u8fc7\u6307\u5b9a\u5bf9\u5e94\u53c2\u6570\u7684\u503c\uff0c\u53ef\u4ee5\u5bf9\u56fe\u5f62\u7684\u6807\u7b7e\u8fdb\u884c\u4fee\u6539\u3002\u53ef\u4ee5\u4f7f\u7528\u5b57\u7b26\u5411\u91cf\u6216\u8868\u8fbe\u5f0f\u6765\u8bbe\u7f6e\u6807\u7b7e\u7684\u5185\u5bb9\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5176\u4ed6\u51fd\u6570\uff08\u5982 expression()\u3001bquote() \u7b49\uff09\u6765\u5b9e\u73b0\u66f4\u9ad8\u7ea7\u7684\u6807\u7b7e\u8868\u8fbe\u5f0f\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 labs() \u51fd\u6570\u4fee\u6539\u56fe\u5f62\u7684\u6807\u7b7e\uff1a

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\u96c6\ndf <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))\n\n# \u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5b9a\u4e49\u6620\u5c04\u5173\u7cfb\np <- ggplot(data = df, mapping = aes(x = x, y = y))\n\n# \u6dfb\u52a0\u70b9\u56fe\u5c42\np <- p + geom_point()\n\n# \u4fee\u6539\u56fe\u5f62\u6807\u7b7e\np <- p + labs(\n  title = \"Scatter Plot\",\n  subtitle = \"Example\",\n  x = \"X Axis\",\n  y = \"Y Axis\",\n  caption = \"DataSource: lj\"\n)\n\n# \u663e\u793a\u56fe\u5f62\nprint(p)\n
\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u96c6 df\uff0c\u7136\u540e\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61 p\uff0c\u5e76\u5728 aes() \u51fd\u6570\u4e2d\u5b9a\u4e49\u4e86 x \u548c y \u5217\u4e0e\u56fe\u5f62\u7684\u6620\u5c04\u5173\u7cfb\u3002\u63a5\u7740\uff0c\u901a\u8fc7 + \u8fd0\u7b97\u7b26\u548c geom_point() \u51fd\u6570\uff0c\u6dfb\u52a0\u4e86\u4e00\u4e2a\u70b9\u56fe\u5c42\u3002\u6700\u540e\uff0c\u4f7f\u7528 labs() \u51fd\u6570\u4fee\u6539\u4e86\u56fe\u5f62\u7684\u6807\u7b7e\uff0c\u5305\u62ec\u6807\u9898\u3001\u526f\u6807\u9898\u3001\u5750\u6807\u8f74\u6807\u7b7e\u548c\u56fe\u5f62\u6ce8\u91ca\u3002

\u901a\u8fc7\u8c03\u6574 labs() \u51fd\u6570\u7684\u53c2\u6570\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u56fe\u5f62\u7684\u6807\u7b7e\u5185\u5bb9\uff0c\u4ee5\u9002\u5e94\u7279\u5b9a\u7684\u9700\u6c42\u3002\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u7684\u5b57\u7b26\u3001\u8868\u8fbe\u5f0f\u6216\u5176\u4ed6\u51fd\u6570\u6765\u5b9e\u73b0\u4e30\u5bcc\u7684\u6807\u7b7e\u8868\u8fbe\u5f0f\u3002

"},{"location":"R/ggplot2/scale_%28%29/","title":"Scale ()","text":"

\u53c2\u8003 \u51fd\u6570\u662fR\u8bed\u8a00\u4e2d\u7528\u4e8e\u8c03\u6574\u56fe\u5f62\u6bd4\u4f8b\u5c3a\u7684\u4e00\u7ec4\u51fd\u6570\u3002\u8fd9\u4e9b\u51fd\u6570\u7528\u4e8e\u6539\u53d8\u7ed8\u56fe\u4e2d\u7684\u8f74\u3001\u989c\u8272\u3001\u5927\u5c0f\u7b49\u6bd4\u4f8b\u5c3a\u7684\u8bbe\u7f6e\u3002 - scale_x_continuous()\u548cscale_y_continuous()\uff1a\u7528\u4e8e\u8c03\u6574x\u8f74\u548cy\u8f74\u7684\u8fde\u7eed\u578b\u53d8\u91cf\u7684\u6bd4\u4f8b\u5c3a\u3002 - limits\uff1a\u6307\u5b9a\u8f74\u7684\u53d6\u503c\u8303\u56f4\u3002 - breaks\uff1a\u7528\u4e8e\u6307\u5b9a\u523b\u5ea6\u7ebf\u7684\u4f4d\u7f6e\u3002 - labels\uff1a\u7528\u4e8e\u6307\u5b9a\u523b\u5ea6\u7ebf\u7684\u6807\u7b7e\u3002

  • scale_x_discrete()\u548cscale_y_discrete()\uff1a\u7528\u4e8e\u8c03\u6574x\u8f74\u548cy\u8f74\u7684\u79bb\u6563\u578b\u53d8\u91cf\u7684\u6bd4\u4f8b\u5c3a\u3002
  • limits\uff1a\u6307\u5b9a\u8f74\u7684\u53d6\u503c\u8303\u56f4\u3002
  • breaks\uff1a\u7528\u4e8e\u6307\u5b9a\u523b\u5ea6\u7ebf\u7684\u4f4d\u7f6e\u3002
  • labels\uff1a\u7528\u4e8e\u6307\u5b9a\u523b\u5ea6\u7ebf\u7684\u6807\u7b7e\u3002

  • scale_color_*()\u548cscale_fill_*()\uff1a\u7528\u4e8e\u8c03\u6574\u989c\u8272\u53d8\u91cf\u7684\u6bd4\u4f8b\u5c3a\u3002

  • values\uff1a\u7528\u4e8e\u6307\u5b9a\u989c\u8272\u7684\u53d6\u503c\u8303\u56f4\u6216\u81ea\u5b9a\u4e49\u989c\u8272\u3002
  • guide\uff1a\u7528\u4e8e\u6307\u5b9a\u989c\u8272\u56fe\u4f8b\u7684\u7c7b\u578b\u548c\u4f4d\u7f6e\u3002

  • scale_size_*()\uff1a\u7528\u4e8e\u8c03\u6574\u70b9\u5927\u5c0f\u6216\u7ebf\u6761\u5bbd\u5ea6\u7684\u6bd4\u4f8b\u5c3a\u3002

  • range\uff1a\u6307\u5b9a\u70b9\u5927\u5c0f\u6216\u7ebf\u6761\u5bbd\u5ea6\u7684\u53d6\u503c\u8303\u56f4\u3002
  • guide\uff1a\u7528\u4e8e\u6307\u5b9a\u5927\u5c0f\u56fe\u4f8b\u7684\u7c7b\u578b\u548c\u4f4d\u7f6e\u3002

\u8fd9\u662f\u4e00\u4e2a\u4f7f\u7528scale_*()\u51fd\u6570\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6563\u70b9\u56fe\uff0c\u5e76\u8c03\u6574\u6bd4\u4f8b\u5c3a\nggplot(data = mtcars, aes(x = wt, y = mpg, color = cyl, size = hp)) +\n  geom_point() +\n  scale_x_continuous(limits = c(0, 6), breaks = seq(0, 6, 1), labels = c(\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\")) +\n  scale_y_continuous(limits = c(0, 40), breaks = seq(0, 40, 10), labels = c(\"0\", \"10\", \"20\", \"30\", \"40\")) +\n  scale_color_manual(values = c(\"blue\", \"red\", \"green\"), guide = guide_legend(title = \"Cylinders\")) +\n  scale_size(range = c(2, 10), guide = guide_legend(title = \"Horsepower\")) +\n  labs(title = \"Weight vs. MPG\",\n       x = \"Weight\",\n       y = \"MPG\")\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86mtcars\u6570\u636e\u96c6\u7684wt\uff08\u8f66\u91cd\uff09\u548cmpg\uff08\u6bcf\u52a0\u4ed1\u82f1\u91cc\u6570\uff09\u5217\u7ed8\u5236\u4e86\u4e00\u4e2a\u6563\u70b9\u56fe\uff0c\u5e76\u4f7f\u7528scale_x_continuous()\u548cscale_y_continuous()\u51fd\u6570\u8c03\u6574\u4e86x\u8f74\u548cy\u8f74\u7684\u6bd4\u4f8b\u5c3a\u3002\u6211\u4eec\u4f7f\u7528scale_color_manual()\u51fd\u6570\u6307\u5b9a\u4e86\u989c\u8272\u7684\u53d6\u503c\u8303\u56f4\u548c\u56fe\u4f8b\u7684\u6807\u9898\uff0c\u4f7f\u7528scale_size()\u51fd\u6570\u6307\u5b9a\u4e86\u70b9\u5927\u5c0f\u7684\u53d6\u503c\u8303\u56f4\u548c\u56fe\u4f8b\u7684\u6807\u9898\u3002

"},{"location":"R/ggplot2/scale_color_manual%28%29/","title":"Scale color manual()","text":"

\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u624b\u52a8\u8bbe\u7f6e\u989c\u8272\u6620\u5c04\u7684\u51fd\u6570\u3002\u5b83\u5141\u8bb8\u4f60\u81ea\u5b9a\u4e49\u56fe\u5f62\u4e2d\u7684\u989c\u8272\uff0c\u4e3a\u79bb\u6563\u53d8\u91cf\u6216\u5206\u7ec4\u53d8\u91cf\u6307\u5b9a\u7279\u5b9a\u7684\u989c\u8272\u503c\u3002

scale_color_manual(values, guide = \"legend\", aesthetics = \"colour\")\n
  • values\uff1a\u4e00\u4e2a\u5305\u542b\u989c\u8272\u7684\u5411\u91cf\uff0c\u7528\u4e8e\u624b\u52a8\u8bbe\u7f6e\u989c\u8272\u6620\u5c04\u3002\u53ef\u4ee5\u662f\u5177\u4f53\u7684\u989c\u8272\u540d\u79f0\u3001\u5341\u516d\u8fdb\u5236\u989c\u8272\u4ee3\u7801\u6216 R \u4e2d\u5df2\u5b9a\u4e49\u7684\u989c\u8272\u5411\u91cf\u3002

  • labels\uff1a\u6307\u5b9a\u6bcf\u4e2a\u989c\u8272\u5bf9\u5e94\u7684\u6807\u7b7e\u540d\uff0c\u7528\u4e8e\u5728\u56fe\u4f8b\u4e2d\u663e\u793a\u3002\u8fd9\u4e2a\u5bf9\u5e94\u987a\u5e8f\u5e94\u8be5\u53ef\u4ee5\u6307\u5b9a

  • breaks\uff1a\u6307\u5b9a\u8981\u663e\u793a\u7684\u989c\u8272\u523b\u5ea6\u7684\u4f4d\u7f6e\u3002

  • guide\uff1a\u6307\u5b9a\u56fe\u4f8b\u7684\u663e\u793a\u65b9\u5f0f\u3002\u5e38\u7528\u7684\u9009\u9879\u5305\u62ec \"legend\"\uff08\u9ed8\u8ba4\uff0c\u663e\u793a\u56fe\u4f8b\uff09\u548c \"none\"\uff08\u4e0d\u663e\u793a\u56fe\u4f8b\uff09\u3002

  • aesthetics\uff1a \u6307\u5b9a\u8981\u8c03\u6574\u7684\u989c\u8272\u53d8\u91cf\uff0c\u901a\u5e38\u4e3a \"colour\"\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 scale_color_manual() \u51fd\u6570\u624b\u52a8\u8bbe\u7f6e\u989c\u8272\u6620\u5c04\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u6846\ndata <- data.frame(x = 1:5, y = 1:5, group = c(\"A\", \"A\", \"B\", \"B\", \"C\"))\n\n# \u521b\u5efa\u6563\u70b9\u56fe\nggplot(data, aes(x = x, y = y, color = group)) +\n  geom_point(size = 3) +\n  scale_color_manual(\n    values = c(\"A\" = \"red\", \"B\" = \"blue\", \"C\" = \"green\"),\n    labels = c(\"Group A\", \"Group B\", \"Group C\"),\n    breaks = c(\"A\", \"B\", \"C\"),\n    guide = \"legend\"\n  ) +\n  labs(title = \"Scatter Plot\", x = \"X-axis\", y = \"Y-axis\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a data \u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e09\u4e2a\u53d8\u91cf x\u3001y \u548c group\u3002\u7136\u540e\uff0c\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528 geom_point() \u51fd\u6570\u6dfb\u52a0\u6563\u70b9\u56fe\u7684\u56fe\u5c42\u3002\u901a\u8fc7 aes() \u51fd\u6570\u5c06 group \u53d8\u91cf\u6620\u5c04\u5230\u989c\u8272\uff08color\uff09\u5c5e\u6027\u3002

\u901a\u8fc7 scale_color_manual() \u51fd\u6570\u624b\u52a8\u8bbe\u7f6e\u989c\u8272\u6620\u5c04\u3002\u901a\u8fc7 values \u53c2\u6570\u6307\u5b9a\u4e86\u6bcf\u4e2a\u7ec4\u522b\uff08A\u3001B\u3001C\uff09\u5bf9\u5e94\u7684\u989c\u8272\uff08\"red\"\u3001\"blue\"\u3001\"green\"\uff09\u3002\u901a\u8fc7 labels \u53c2\u6570\u6307\u5b9a\u4e86\u6bcf\u4e2a\u989c\u8272\u5bf9\u5e94\u7684\u6807\u7b7e\uff08\"Group A\"\u3001\"Group B\"\u3001\"Group C\"\uff09\uff0c\u7528\u4e8e\u5728\u56fe\u4f8b\u4e2d\u663e\u793a\u3002\u901a\u8fc7 breaks \u53c2\u6570\u6307\u5b9a\u4e86\u8981\u663e\u793a\u7684\u989c\u8272\u523b\u5ea6\u7684\u4f4d\u7f6e\uff08\"A\"\u3001\"B\"\u3001\"C\"\uff09\u3002\u901a\u8fc7 guide \u53c2\u6570\u8bbe\u7f6e\u4e86\u56fe\u4f8b\u7684\u663e\u793a\u65b9\u5f0f\u4e3a \"legend\"\uff0c\u5373\u663e\u793a\u56fe\u4f8b\u3002

\u901a\u8fc7\u8c03\u6574\u53c2\u6570\u548c\u6dfb\u52a0\u5176\u4ed6\u56fe\u5c42\u51fd\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u624b\u52a8\u8bbe\u7f6e\u989c\u8272\u6620\u5c04\uff0c\u5e76\u521b\u5efa\u5177\u6709\u81ea\u5b9a\u4e49\u989c\u8272\u7684\u56fe\u5f62\u3002

\u5728R\u8bed\u8a00\u4e2d\uff0cscale_color_manual() \u51fd\u6570\u5c5e\u4e8e ggplot2 \u5305\uff0c\u7528\u4e8e\u624b\u52a8\u8bbe\u7f6e\u989c\u8272\u6620\u5c04\u3002\u8fd9\u4e2a\u51fd\u6570\u901a\u5e38\u7528\u4e8e\u8c03\u6574\u56fe\u8868\u4e2d\u79bb\u6563\u578b\u989c\u8272\u53d8\u91cf\u7684\u989c\u8272\u6620\u5c04\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e scale_color_manual() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/ggplot2/scale_color_manual%28%29/#_1","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dggplot2\u5305\ninstall.packages(\"ggplot2\")\nlibrary(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = c(\"A\", \"B\", \"C\", \"D\"),\n  value = c(10, 20, 15, 25)\n)\n\n# \u521b\u5efa\u4e00\u4e2a\u57fa\u7840\u7684\u6563\u70b9\u56fe\uff0c\u989c\u8272\u6620\u5c04\u4e3a\u9ed8\u8ba4\u503c\np <- ggplot(data, aes(x = category, y = value, color = category)) +\n  geom_point()\n\n# \u663e\u793a\u9ed8\u8ba4\u989c\u8272\u6620\u5c04\u7684\u56fe\u8868\nprint(p)\n\n# \u521b\u5efa\u4e00\u4e2a\u989c\u8272\u6620\u5c04\u4e3a\u81ea\u5b9a\u4e49\u989c\u8272\u7684\u6563\u70b9\u56fe\ncustom_colors <- c(\"A\" = \"red\", \"B\" = \"blue\", \"C\" = \"green\", \"D\" = \"purple\")\n\np_custom_colors <- \nggplot(data, aes(x = category, y = value, color = category)) +\n  geom_point() +\n  scale_color_manual(values = custom_colors)\n\n# \u663e\u793a\u81ea\u5b9a\u4e49\u989c\u8272\u6620\u5c04\u7684\u56fe\u8868\nprint(p_custom_colors)\n
"},{"location":"R/ggplot2/scale_fill_%28%29/","title":"Scale fill ()","text":"

scale_fill_*() \u51fd\u6570\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u4fee\u6539\u586b\u5145\u989c\u8272\u7684\u51fd\u6570\uff0c\u4e3b\u8981\u7528\u4e8e\u8c03\u6574\u56fe\u5f62\u4e2d\u586b\u5145\u989c\u8272\u7684\u6620\u5c04\u548c\u5916\u89c2\u3002\u8fd9\u4e9b\u51fd\u6570\u7528\u4e8e\u4fee\u6539\u56fe\u5f62\u4e2d\u7684\u586b\u5145\u989c\u8272\uff0c\u4f8b\u5982\u67f1\u72b6\u56fe\u7684\u586b\u5145\u989c\u8272\u3001\u6563\u70b9\u56fe\u4e2d\u7684\u70b9\u7684\u586b\u5145\u989c\u8272\u7b49\u3002

scale_fill_*() \u51fd\u6570\u7684\u5177\u4f53\u540d\u79f0\u53d6\u51b3\u4e8e\u4f60\u8981\u4fee\u6539\u7684\u56fe\u5f62\u5bf9\u8c61\uff0c\u4f8b\u5982 scale_fill_manual() \u7528\u4e8e\u624b\u52a8\u8bbe\u7f6e\u586b\u5145\u989c\u8272\uff0cscale_fill_gradient() \u7528\u4e8e\u4f7f\u7528\u6e10\u53d8\u8272\u8bbe\u7f6e\u586b\u5145\u989c\u8272\u7b49\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684 scale_fill_*() \u51fd\u6570\u53ca\u5176\u529f\u80fd\uff1a

  • scale_fill_manual(): \u624b\u52a8\u8bbe\u7f6e\u586b\u5145\u989c\u8272\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u53ef\u4ee5\u6307\u5b9a\u7279\u5b9a\u989c\u8272\u503c\u6216\u989c\u8272\u5411\u91cf\u3002

\u793a\u4f8b\uff1a ``R # \u624b\u52a8\u8bbe\u7f6e\u586b\u5145\u989c\u8272\u4e3a\u7ea2\u8272\u548c\u84dd\u8272 scale_fill_manual(values = c(\"red\", \"blue\"))

  • scale_fill_gradient(): \u4f7f\u7528\u6e10\u53d8\u8272\u8bbe\u7f6e\u586b\u5145\u989c\u8272\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0d\u540c\u7684\u53c2\u6570\u6765\u63a7\u5236\u6e10\u53d8\u7684\u7c7b\u578b\u548c\u5916\u89c2\uff0c\u5982 low\u3001high\u3001type\u3001limits \u7b49\u3002

\u793a\u4f8b\uff1a `R # \u4f7f\u7528\u84dd\u8272\u5230\u7ea2\u8272\u7684\u6e10\u53d8\u8272\u8bbe\u7f6e\u586b\u5145\u989c\u8272 scale_fill_gradient(low = \"blue\", high = \"red\")

  • scale_fill_continuous(): \u8bbe\u7f6e\u8fde\u7eed\u578b\u6570\u636e\u7684\u586b\u5145\u989c\u8272\u6620\u5c04\uff0c\u53ef\u4ee5\u6307\u5b9a\u989c\u8272\u7a7a\u95f4\u3001\u989c\u8272\u8303\u56f4\u7b49\u53c2\u6570\u3002

\u793a\u4f8b\uff1a `R # \u8bbe\u7f6e\u586b\u5145\u989c\u8272\u6620\u5c04\u4e3a\u84dd\u8272\u8c03\u8272\u677f scale_fill_continuous(palette = \"Blues\")

  • scale_fill_discrete(): \u8bbe\u7f6e\u79bb\u6563\u578b\u6570\u636e\u7684\u586b\u5145\u989c\u8272\u6620\u5c04\uff0c\u53ef\u4ee5\u6307\u5b9a\u989c\u8272\u8c03\u8272\u677f\u3001\u989c\u8272\u987a\u5e8f\u7b49\u53c2\u6570\u3002

\u793a\u4f8b\uff1a `R # \u8bbe\u7f6e\u586b\u5145\u989c\u8272\u6620\u5c04\u4e3a\u9ed8\u8ba4\u8c03\u8272\u677f scale_fill_discrete()

  • \u5176\u4ed6\u7279\u5b9a\u7684 scale_fill_*() \u51fd\u6570\uff0c\u5982 scale_fill_gradient2()\u3001scale_fill_hue() \u7b49\uff0c\u7528\u4e8e\u7279\u5b9a\u7684\u586b\u5145\u989c\u8272\u9700\u6c42\u3002

\u901a\u8fc7\u4f7f\u7528\u9002\u5f53\u7684 scale_fill_*() \u51fd\u6570\uff0c\u53ef\u4ee5\u4fee\u6539\u56fe\u5f62\u4e2d\u7684\u586b\u5145\u989c\u8272\u6620\u5c04\uff0c\u4ee5\u53ca\u5916\u89c2\u548c\u6837\u5f0f\u3002\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u7684\u9700\u6c42\uff0c\u8c03\u6574\u53c2\u6570\u503c\u6765\u5b9e\u73b0\u6240\u9700\u7684\u586b\u5145\u989c\u8272\u6548\u679c\u3002

"},{"location":"R/ggplot2/scale_x_continuous%28%29/","title":"Scale x continuous()","text":"

\u662f ggplot2 \u5305\u4e2d\u7528\u4e8e\u8c03\u6574 x \u8f74\u8fde\u7eed\u53d8\u91cf\u7684\u51fd\u6570\u3002\u5b83\u53ef\u4ee5\u4fee\u6539 x \u8f74\u7684\u663e\u793a\u8303\u56f4\u3001\u6807\u7b7e\u3001\u523b\u5ea6\u548c\u5176\u4ed6\u5c5e\u6027\uff0c\u4ee5\u4fbf\u66f4\u597d\u5730\u5448\u73b0\u6570\u636e\u3002

scale_x_continuous()\n
  • name\uff1a\u6307\u5b9a x \u8f74\u7684\u540d\u79f0\u6216\u6807\u9898\u3002

  • breaks\uff1a\u6307\u5b9a x \u8f74\u523b\u5ea6\u7684\u4f4d\u7f6e\u3002\u53ef\u4ee5\u4f7f\u7528\u6570\u5b57\u5411\u91cf\u6765\u6307\u5b9a\u523b\u5ea6\u7684\u4f4d\u7f6e\u3002

breaks = data_q1$air_date\u3002x\u80fd\u7b49\u8ddd\u9694\u5f00

  • labels\uff1a\u6307\u5b9a x \u8f74\u523b\u5ea6\u6807\u7b7e\u7684\u663e\u793a\u6587\u672c\u3002\u53ef\u4ee5\u4f7f\u7528\u5b57\u7b26\u5411\u91cf\u6765\u6307\u5b9a\u523b\u5ea6\u6807\u7b7e\u7684\u6587\u672c\u3002 \u53ef\u4ee5\u7406\u89e3\u4e3a\u523b\u5ea6\u663e\u793a\u7684\u522b\u540d\uff0c\u5982\u679c2011-08-22\u7684\u5f62\u5f0f\u4e0d\u5408\u9002\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u522b\u540d

  • limits\uff1a\u6307\u5b9a x \u8f74\u663e\u793a\u7684\u8303\u56f4\u3002\u53ef\u4ee5\u4f7f\u7528\u6570\u5b57\u5411\u91cf\u6765\u6307\u5b9a\u8303\u56f4\u7684\u6700\u5c0f\u503c\u548c\u6700\u5927\u503c\u3002

  • expand\uff1a\u6307\u5b9a x \u8f74\u663e\u793a\u8303\u56f4\u7684\u6269\u5c55\u56e0\u5b50\u3002\u53ef\u4ee5\u4f7f\u7528\u6570\u5b57\u5411\u91cf [a, b] \u6765\u8bbe\u7f6e\u6269\u5c55\u56e0\u5b50\uff0c\u5176\u4e2d a \u63a7\u5236\u8303\u56f4\u7684\u4e0b\u9650\u6269\u5c55\uff0cb \u63a7\u5236\u8303\u56f4\u7684\u4e0a\u9650\u6269\u5c55\u3002

  • trans\uff1a\u6307\u5b9a x \u8f74\u5750\u6807\u8f74\u7684\u53d8\u6362\u51fd\u6570\u3002\u53ef\u4ee5\u4f7f\u7528\u51fd\u6570\u5982 log10\u3001sqrt \u7b49\u6765\u5bf9\u5750\u6807\u8f74\u8fdb\u884c\u53d8\u6362\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 scale_x_continuous() \u51fd\u6570\u8c03\u6574 x \u8f74\u7684\u5c5e\u6027\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u793a\u4f8b\u6570\u636e\ndf <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(2, 4, 6, 8, 10)\n)\n\n# \u7ed8\u5236\u6563\u70b9\u56fe\uff0c\u5e76\u8c03\u6574 x \u8f74\u7684\u5c5e\u6027\nggplot(df, aes(x, y)) +\n  geom_point() +\n  scale_x_continuous(\n    name = \"X\u8f74\",\n    breaks = c(1, 3, 5),\n    labels = c(\"\u4e00\", \"\u4e09\", \"\u4e94\"),\n    limits = c(0, 6),\n    expand = c(0.05, 0),\n    trans = \"log10\"\n  )\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b x \u548c y \u503c\u7684\u6570\u636e\u6846 df\uff0c\u7136\u540e\u4f7f\u7528 ggplot() \u51fd\u6570\u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528 geom_point() \u6dfb\u52a0\u6563\u70b9\u56fe\u3002\u901a\u8fc7 scale_x_continuous() \u51fd\u6570\uff0c\u6211\u4eec\u8c03\u6574\u4e86 x \u8f74\u7684\u591a\u4e2a\u5c5e\u6027\uff0c\u5305\u62ec\u540d\u79f0\u3001\u523b\u5ea6\u4f4d\u7f6e\u3001\u523b\u5ea6\u6807\u7b7e\u3001\u663e\u793a\u8303\u56f4\u3001\u6269\u5c55\u56e0\u5b50\u548c\u53d8\u6362\u51fd\u6570\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u6570\u636e\u548c\u9700\u6c42\uff0c\u901a\u8fc7\u8c03\u6574\u8fd9\u4e9b\u53c2\u6570\u6765\u5b9a\u5236\u548c\u7f8e\u5316 x \u8f74\u3002\u6b64\u5916\uff0cscale_x_continuous() \u8fd8\u6709\u5176\u4ed6\u53c2\u6570\u53ef\u4ee5\u4f7f\u7528\uff0c\u4f8b\u5982 limits\uff08\u9650\u5236\u8303\u56f4\u7684\u81ea\u52a8\u8ba1\u7b97\uff09\u548c breaks\uff08\u81ea\u5b9a\u4e49\u523b\u5ea6\u4f4d\u7f6e\uff09\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u67e5\u9605 ggplot2 \u7684\u6587\u6863\u6765\u8fdb\u4e00\u6b65\u4e86\u89e3\u3002

"},{"location":"R/ggplot2/scale_x_continuous%28%29/#_1","title":"\u8bbe\u7f6e\u76f4\u65b9\u56fe\u521d\u59cb\u503c","text":"

scale_x_continuous() \u9650\u5236\u4e86\u5750\u6807\u8f74\u7684\u8303\u56f4\uff0c\u4f46\u5206\u7ec4\u8fd8\u662f\u9ed8\u8ba4\u5206\u7ec4

# input data\ndf_ppg <- read.csv(\"./data/NBAPlayerPts.csv\")\n\n# \nggplot(df_ppg) +\n  geom_histogram(aes(x=PPG)) +\n  scale_x_continuous(limits = c(10, 30))\n

\u628ax\u8f74\u7684\u5750\u6807\u548cgeom_histogram()\u4e2d\u7684\u7ec4\u8ddd\u3001\u7ec4\u6570\u9650\u5236\u4e0b\uff0c\u53d1\u73b0\u9ed8\u8ba4\u5206\u7ec4\u662f11-13\uff0c\u800c\u975e10-12\uff01

# input data\ndf_ppg <- read.csv(\"./data/NBAPlayerPts.csv\")\n\n# \nggplot(df_ppg) +\n  geom_histogram(aes(x = PPG), binwidth = 2, bins = 15) +\n  scale_x_continuous(breaks = seq(10,30,2), limits = c(10, 30)) +\n  scale_y_continuous(breaks = seq(1,18))\n

"},{"location":"R/ggplot2/scale_y_continuous%28%29/","title":"Scale y continuous()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cscale_y_continuous()\u51fd\u6570\u662fggplot2\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8c03\u6574\u56fe\u5f62\u7684y\u8f74\u523b\u5ea6\u548c\u6807\u7b7e\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

scale_y_continuous(\n  name = waiver(),\n  breaks = waiver(),\n  labels = waiver(),\n  limits = NULL,\n  expand = waiver(),\n  oob = censor,\n  na.value = NA_real_,\n  trans = \"identity\",\n  guide = \"numeric\",\n  position = \"left\",\n  sec.axis = NULL,\n  reverse = FALSE,\n  n.dodge = if (is.numeric(position)) 1 else \"preserve\",\n  super = NULL,\n  ...,\n  minor_breaks = waiver(),\n  minor_breaks_width = NULL\n)\n

\u53c2\u6570\uff1a - name\uff1ay\u8f74\u7684\u540d\u79f0\u3002

  • breaks\uff1ay\u8f74\u523b\u5ea6\u7684\u4f4d\u7f6e\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793a\u523b\u5ea6\u7684\u4f4d\u7f6e\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u523b\u5ea6\u7684\u4f4d\u7f6e\u3002

  • labels\uff1ay\u8f74\u523b\u5ea6\u7684\u6807\u7b7e\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5411\u91cf\uff0c\u8868\u793a\u523b\u5ea6\u7684\u6807\u7b7e\uff1b\u6216\u8005\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u523b\u5ea6\u7684\u6807\u7b7e\u3002

  • limits\uff1ay\u8f74\u7684\u53d6\u503c\u8303\u56f4\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u5143\u7d20\u7684\u5411\u91cf\uff0c\u8868\u793a\u6700\u5c0f\u503c\u548c\u6700\u5927\u503c\u3002

  • expand\uff1ay\u8f74\u523b\u5ea6\u6269\u5c55\u7684\u6bd4\u4f8b\u56e0\u5b50\u3002

  • oob\uff1a\u7528\u4e8e\u5904\u7406\u8d85\u51fa\u9650\u5236\u8303\u56f4\u7684\u503c\u7684\u51fd\u6570\u3002

  • na.value\uff1a\u7f3a\u5931\u503c\u7684\u66ff\u4ee3\u503c\u3002
  • trans\uff1ay\u8f74\u6570\u503c\u7684\u53d8\u6362\u51fd\u6570\u3002
  • guide\uff1ay\u8f74\u7684\u56fe\u4f8b\u7c7b\u578b\u3002
  • position\uff1ay\u8f74\u7684\u4f4d\u7f6e\u3002
  • sec.axis\uff1a\u8f85\u52a9y\u8f74\u7684\u8bbe\u7f6e\u3002
  • reverse\uff1a\u662f\u5426\u53cd\u8f6cy\u8f74\u7684\u65b9\u5411\u3002
  • n.dodge\uff1a\u7528\u4e8e\u5206\u7ec4\u53d8\u91cf\u7684\u523b\u5ea6\u5bbd\u5ea6\u3002
  • super\uff1a\u8f85\u52a9y\u8f74\u7684\u8bbe\u7f6e\u3002
  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\u3002
  • minor_breaks\uff1a\u6b21\u8981\u523b\u5ea6\u7684\u4f4d\u7f6e\u3002
  • minor_breaks_width\uff1a\u6b21\u8981\u523b\u5ea6\u7684\u5bbd\u5ea6\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528scale_y_continuous()\u51fd\u6570\u8c03\u6574y\u8f74\u523b\u5ea6\u548c\u6807\u7b7e\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\ndata <- data.frame(x = 1:10, y = 1:10^6)\n\n# \u521b\u5efa\u57fa\u7840\u56fe\u5f62\nplot <- ggplot(data, aes(x, y)) + geom_point()\n\n# \u8c03\u6574y\u8f74\u523b\u5ea6\u548c\u6807\u7b7e\nplot <- plot + scale_y_continuous(\n  breaks = c(0, 100000, 500000, 1000000),\n  labels = c(\"0\", \"100k\", \"500k\", \"1M\"),\n  limits = c(0, 1200000),\n  name = \"Y-Axis\"\n)\n\n# \u6253\u5370\u56fe\u5f62\nprint(plot)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86ggplot2\u5305\uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e24\u5217\u6570\u636ex\u548cy\u3002

\u7136\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u7840\u56fe\u5f62plot\uff0c\u4f7f\u7528geom_point()\u6dfb\u52a0\u6563\u70b9\u56fe\u5c42\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528scale_y_continuous()\u51fd\u6570\u8c03\u6574y\u8f74\u7684\u523b\u5ea6\u548c\u6807\u7b7e\u3002\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u6307\u5b9a\u4e86\u523b\u5ea6\u7684\u4f4d\u7f6ebreaks\u4e3a0\u3001100000\u3001500000\u548c1000000\uff0c\u5e76\u6307\u5b9a\u4e86\u76f8\u5e94\u7684\u6807\u7b7elabels\u3002\u6211\u4eec\u8fd8\u4f7f\u7528limits\u53c2\u6570\u8bbe\u7f6ey\u8f74\u7684\u53d6\u503c\u8303\u56f4\u3002

\u6700\u540e\uff0c\u6211\u4eec\u901a\u8fc7print(plot)\u6253\u5370\u51fa\u8c03\u6574\u540e\u7684\u56fe\u5f62\u3002

"},{"location":"R/ggplot2/stat_density%28%29/","title":"Stat density()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstat_density()\u51fd\u6570\u901a\u5e38\u7528\u4e8e\u5728\u56fe\u5f62\u4e2d\u7ed8\u5236\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

stat_density(\n  mapping = NULL,\n  data = NULL,\n  geom = \"area\",\n  position = \"identity\",\n  ...,\n  bw = \"nrd0\",\n  adjust = 1,\n  kernel = \"gaussian\",\n  n = 512,\n  trim = TRUE,\n  na.rm = FALSE,\n  show.legend = NA,\n  inherit.aes = TRUE\n)\n

\u53c2\u6570\uff1a - mapping\uff1a\u7528\u4e8e\u6620\u5c04\u6570\u636e\u5230\u56fe\u5f62\u5c5e\u6027\u7684\u53c2\u6570\u3002 - data\uff1a\u7528\u4e8e\u7ed8\u56fe\u7684\u6570\u636e\u6846\u3002 - geom\uff1a\u6307\u5b9a\u4f7f\u7528\u7684\u51e0\u4f55\u5bf9\u8c61\u7c7b\u578b\u3002\u901a\u5e38\u4e3a\"area\"\uff08\u9ed8\u8ba4\u503c\uff09\u3002 - position\uff1a\u6307\u5b9a\u6570\u636e\u5728\u56fe\u5f62\u4e2d\u7684\u653e\u7f6e\u65b9\u5f0f\u3002\u901a\u5e38\u4e3a\"identity\"\uff08\u9ed8\u8ba4\u503c\uff09\u3002 - ...\uff1a\u5176\u4ed6\u4f20\u9012\u7ed9geom_area()\u7684\u53c2\u6570\u3002 - bw\uff1a\u6307\u5b9a\u5bc6\u5ea6\u4f30\u8ba1\u7684\u5e26\u5bbd\u9009\u62e9\u65b9\u6cd5\u3002\u901a\u5e38\u4e3a\"nrd0\"\uff08\u9ed8\u8ba4\u503c\uff09\u3002 - adjust\uff1a\u5e26\u5bbd\u8c03\u6574\u53c2\u6570\uff0c\u7528\u4e8e\u8c03\u6574\u5e26\u5bbd\u7684\u5927\u5c0f\u3002 - kernel\uff1a\u6307\u5b9a\u4f7f\u7528\u7684\u6838\u51fd\u6570\u7c7b\u578b\u3002\u901a\u5e38\u4e3a\"gaussian\"\uff08\u9ed8\u8ba4\u503c\uff09\u3002 - n\uff1a\u6307\u5b9a\u751f\u6210\u5bc6\u5ea6\u4f30\u8ba1\u7684\u70b9\u6570\u3002 - trim\uff1a\u6307\u5b9a\u662f\u5426\u5728\u4f30\u8ba1\u5bc6\u5ea6\u65f6\u4fee\u526a\u6781\u7aef\u503c\u3002\u901a\u5e38\u4e3aTRUE\uff08\u9ed8\u8ba4\u503c\uff09\u3002 - na.rm\uff1a\u6307\u5b9a\u662f\u5426\u79fb\u9664\u5305\u542bNA\u503c\u7684\u89c2\u6d4b\u3002\u901a\u5e38\u4e3aFALSE\uff08\u9ed8\u8ba4\u503c\uff09\u3002 - show.legend\uff1a\u6307\u5b9a\u662f\u5426\u663e\u793a\u56fe\u4f8b\u3002 - inherit.aes\uff1a\u6307\u5b9a\u662f\u5426\u7ee7\u627f\u7236\u56fe\u5c42\u7684\u7f8e\u5b66\u5c5e\u6027\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528stat_density()\u51fd\u6570\u7ed8\u5236\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u7684\u793a\u4f8b\uff1a

# \u52a0\u8f7dggplot2\u5305 \nlibrary(ggplot2) \n# \u521b\u5efa\u793a\u4f8b\u6570\u636e \ndata <- data.frame(x = rnorm(1000)) \n# \u7ed8\u5236\u5bc6\u5ea6\u56fe \nggplot(data, aes(x)) + stat_density(geom = \"line\", fill = \"blue\", span = 0.5)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e00\u4e2a\u5305\u542b\u968f\u673a\u6b63\u6001\u5206\u5e03\u6570\u636e\u7684\u6570\u636e\u96c6\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528ggplot2\u5305\u4e2d\u7684\u51fd\u6570\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u7840\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528geom_density()\u51fd\u6570\u6dfb\u52a0\u4e86stat_density()\u51fd\u6570\u7684\u9ed8\u8ba4\u8bbe\u7f6e\uff0c\u7ed8\u5236\u4e86\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u3002

\u6700\u540e\uff0c\u6211\u4eec\u901a\u8fc7ggplot()\u51fd\u6570\u5c55\u793a\u4e86\u7ed8\u56fe\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0cstat_density()\u51fd\u6570\u901a\u5e38\u7ed3\u5408geom_density()\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u4fbf\u5728\u56fe\u5f62\u4e2d\u7ed8\u5236\u5bc6\u5ea6\u4f30\u8ba1\u56fe\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8bbe\u7f6e\u53c2\u6570\u548c\u6570\u636e\u3002

"},{"location":"R/ggplot2/stat_function%28%29/","title":"Stat function()","text":"

\u5728R\u8bed\u8a00\u7684ggplot2\u5305\u4e2d\uff0cstat_function()\u51fd\u6570\u7528\u4e8e\u5728\u7ed8\u56fe\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u51fd\u6570\u7684\u66f2\u7ebf\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

stat_function(fun, ..., data = NULL, geom = \"line\", position = \"identity\", n = 101, args = list())\n
\u53c2\u6570\uff1a - fun\uff1a\u8981\u7ed8\u5236\u7684\u51fd\u6570\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5df2\u5b9a\u4e49\u7684\u51fd\u6570\uff0c\u4e5f\u53ef\u4ee5\u662f\u4e00\u4e2a\u533f\u540d\u51fd\u6570\u3002\u5e94\u53d8\u91cfy - ...\uff1a\u5176\u4ed6\u53c2\u6570\u4f20\u9012\u7ed9\u51fd\u6570fun\u3002 - data\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u6570\u636e\u6846\uff0c\u5982\u679c\u9700\u8981\u4ece\u6570\u636e\u6846\u4e2d\u63d0\u53d6\u53d8\u91cf\u4f5c\u4e3a\u51fd\u6570\u53c2\u6570\u3002\u81ea\u53d8\u91cfx - geom\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u66f2\u7ebf\u7684\u51e0\u4f55\u5bf9\u8c61\u7c7b\u578b\u3002\u9ed8\u8ba4\u4e3a\"line\"\uff0c\u8868\u793a\u7ed8\u5236\u66f2\u7ebf\u3002 - position\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u4f4d\u7f6e\u8c03\u6574\u7684\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a\"identity\"\uff0c\u8868\u793a\u4e0d\u8fdb\u884c\u4f4d\u7f6e\u8c03\u6574\u3002 - n\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u751f\u6210\u66f2\u7ebf\u4e0a\u70b9\u7684\u6570\u91cf\u3002 - args\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u51fd\u6570fun\u7684\u5176\u4ed6\u53c2\u6570\u3002

\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u793a\u4f8b\uff1a\u7ed8\u5236\u51fd\u6570\u66f2\u7ebf\np <- ggplot(data.frame(x = c(-5, 5)), aes(x = x))\n\n# \u6dfb\u52a0sin\u51fd\u6570\u7684\u66f2\u7ebf\np + stat_function(fun = sin, geom = \"line\", color = \"red\", size = 1)\n\n# \u6dfb\u52a0\u81ea\u5b9a\u4e49\u51fd\u6570\u7684\u66f2\u7ebf\nmy_func <- function(x) {\n  x^2 + 2*x + 1\n}\n\np + stat_function(fun = my_func, geom = \"line\", color = \"blue\", size = 1)\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7dggplot2\u5305\u4f7f\u7528library(ggplot2)\u3002\u7136\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u57fa\u7840\u7684ggplot\u5bf9\u8c61p\uff0c\u5176\u4e2d\u7684\u6570\u636e\u6846\u5305\u542b\u4e86x\u8f74\u7684\u53d6\u503c\u8303\u56f4\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528stat_function()\u51fd\u6570\u5206\u522b\u6dfb\u52a0\u4e86sin\u51fd\u6570\u548c\u81ea\u5b9a\u4e49\u51fd\u6570\u7684\u66f2\u7ebf\u3002\u5bf9\u4e8esin\u51fd\u6570\uff0c\u6211\u4eec\u6307\u5b9a\u4e86fun = sin\uff0c\u8868\u793a\u7ed8\u5236sin\u51fd\u6570\u7684\u66f2\u7ebf\uff1b\u5bf9\u4e8e\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3amy_func\u7684\u51fd\u6570\uff0c\u5e76\u5c06\u5176\u4f5c\u4e3afun\u53c2\u6570\u4f20\u9012\u7ed9stat_function()\u51fd\u6570\u3002

\u5728\u6bcf\u4e2astat_function()\u51fd\u6570\u8c03\u7528\u4e2d\uff0c\u6211\u4eec\u8fd8\u53ef\u4ee5\u901a\u8fc7\u5176\u4ed6\u53c2\u6570\uff08\u4f8b\u5982color\u3001size\u7b49\uff09\u6765\u8bbe\u7f6e\u66f2\u7ebf\u7684\u989c\u8272\u3001\u7ebf\u6761\u7c97\u7ec6\u7b49\u6837\u5f0f\u3002

\u6700\u540e\uff0c\u6211\u4eec\u5c06\u6bcf\u4e2astat_function()\u51fd\u6570\u8c03\u7528\u4e0e\u57fa\u7840\u7684ggplot\u5bf9\u8c61\u76f8\u52a0\uff0c\u4ee5\u751f\u6210\u5305\u542b\u51fd\u6570\u66f2\u7ebf\u7684\u7ed8\u56fe\u3002

\u4f7f\u7528stat_function()\u51fd\u6570\u53ef\u4ee5\u65b9\u4fbf\u5730\u5728ggplot2\u4e2d\u7ed8\u5236\u5404\u79cd\u51fd\u6570\u7684\u66f2\u7ebf\uff0c\u4ece\u800c\u66f4\u597d\u5730\u53ef\u89c6\u5316\u51fd\u6570\u7684\u5f62\u72b6\u548c\u7279\u5f81\u3002

"},{"location":"R/ggplot2/stat_function%28%29/#stat_functiongeom_smooth","title":"stat_function()\u548cgeom_smooth()\u51fd\u6570\u7684\u533a\u522b","text":"

stat_function()\u548cgeom_smooth()\u51fd\u6570\u5728ggplot2\u5305\u4e2d\u90fd\u7528\u4e8e\u6dfb\u52a0\u5e73\u6ed1\u66f2\u7ebf\u5230\u56fe\u8868\u4e2d\uff0c\u4f46\u5b83\u4eec\u7684\u5b9e\u73b0\u65b9\u5f0f\u548c\u5e94\u7528\u573a\u666f\u6709\u4e00\u4e9b\u533a\u522b\u3002 stat_function()\u9002\u7528\u4e8e\u7ed8\u5236\u901a\u8fc7\u7ed9\u5b9a\u51fd\u6570\u8ba1\u7b97\u7684\u5e73\u6ed1\u66f2\u7ebf\uff0c\u800cgeom_smooth()\u5219\u66f4\u4e3a\u7075\u6d3b\uff0c\u6839\u636e\u6570\u636e\u7684\u7279\u6027\u81ea\u52a8\u9009\u62e9\u5e73\u6ed1\u65b9\u6cd5\u5e76\u751f\u6210\u5e73\u6ed1\u66f2\u7ebf\u3002

stat_function()\u51fd\u6570\u7528\u4e8e\u7ed8\u5236\u901a\u8fc7\u7ed9\u5b9a\u51fd\u6570\u8ba1\u7b97\u7684\u5e73\u6ed1\u66f2\u7ebf\u3002\u4f60\u9700\u8981\u63d0\u4f9b\u4e00\u4e2a\u51fd\u6570\u4f5c\u4e3a\u53c2\u6570\uff0c\u8be5\u51fd\u6570\u4f1a\u5728x\u8f74\u8303\u56f4\u5185\u751f\u6210\u4e00\u7cfb\u5217\u7684x\u503c\uff0c\u5e76\u4f7f\u7528\u7ed9\u5b9a\u51fd\u6570\u8ba1\u7b97\u76f8\u5e94\u7684y\u503c\u6765\u521b\u5efa\u5e73\u6ed1\u66f2\u7ebf\u3002\u8fd9\u4e2a\u51fd\u6570\u53ef\u4ee5\u662fR\u4e2d\u5df2\u6709\u7684\u5185\u7f6e\u51fd\u6570\uff0c\u4e5f\u53ef\u4ee5\u662f\u81ea\u5b9a\u4e49\u7684\u51fd\u6570\u3002\u4f7f\u7528stat_function()\u51fd\u6570\u65f6\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7args\u53c2\u6570\u4f20\u9012\u7ed9\u51fd\u6570\u7684\u989d\u5916\u53c2\u6570\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528stat_function()\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u96c6\ndata <- data.frame(x = 1:10, y = c(2, 4, 6, 8, 10, 9, 7, 5, 3, 1))\n\n# \u7ed8\u5236\u6563\u70b9\u56fe\u548c\u5e73\u6ed1\u66f2\u7ebf\nggplot(data, aes(x, y)) +\n  geom_point() +\n  stat_function(fun = function(x) x^2, color = \"red\", linetype = \"dashed\")\n
\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528stat_function()\u51fd\u6570\u901a\u8fc7\u51fd\u6570 fun = function(x) x^2 \u7ed8\u5236\u4e86\u4e00\u4e2a\u5e73\u6ed1\u66f2\u7ebf\uff0c\u8be5\u66f2\u7ebf\u662fx\u7684\u5e73\u65b9\u3002color\u53c2\u6570\u548clinetype\u53c2\u6570\u8bbe\u7f6e\u4e86\u66f2\u7ebf\u7684\u989c\u8272\u548c\u7ebf\u578b\u3002

\u76f8\u6bd4\u4e4b\u4e0b\uff0cgeom_smooth()\u51fd\u6570\u66f4\u4e3a\u7075\u6d3b\uff0c\u5b83\u53ef\u4ee5\u6839\u636e\u6570\u636e\u7684\u7279\u6027\u81ea\u52a8\u9009\u62e9\u5408\u9002\u7684\u5e73\u6ed1\u65b9\u6cd5\uff0c\u5e76\u751f\u6210\u5e73\u6ed1\u66f2\u7ebf\u3002geom_smooth()\u51fd\u6570\u5bf9\u4e8e\u7ed8\u5236\u56de\u5f52\u66f2\u7ebf\u6216\u5149\u6ed1\u5bc6\u5ea6\u4f30\u8ba1\u7b49\u5e38\u89c1\u7528\u9014\u975e\u5e38\u65b9\u4fbf\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528geom_smooth()\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u96c6\ndata <- data.frame(x = 1:10, y = c(2, 4, 6, 8, 10, 9, 7, 5, 3, 1))\n\n# \u7ed8\u5236\u6563\u70b9\u56fe\u548c\u5e73\u6ed1\u66f2\u7ebf\nggplot(data, aes(x, y)) +\n  geom_point() +\n  geom_smooth(method = \"lm\", se = FALSE, color = \"blue\")\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528geom_smooth()\u51fd\u6570\u7ed8\u5236\u4e86\u4e00\u4e2a\u56de\u5f52\u66f2\u7ebf\uff0c\u901a\u8fc7\u8bbe\u7f6emethod = \"lm\"\u6765\u9009\u62e9\u7ebf\u6027\u56de\u5f52\u65b9\u6cd5\u3002se\u53c2\u6570\u8bbe\u7f6e\u4e3aFALSE\uff0c\u8868\u793a\u4e0d\u663e\u793a\u66f2\u7ebf\u7684\u7f6e\u4fe1\u533a\u95f4\u3002color\u53c2\u6570\u8bbe\u7f6e\u4e86\u66f2\u7ebf\u7684\u989c\u8272\u3002

"},{"location":"R/ggplot2/stat_function%28%29/#dnorm","title":"~dnorm()","text":"

\u6ce8\u610f\uff0cbinwidth\u7ec4\u8ddd\u8981\u5408\u7406\u8bbe\u7f6e\uff0c\u4e0d\u5408\u7406\u5f97\u51fa\u7684\u56fe\u5f62\u6709\u95ee\u9898

a <- rnorm(1000)\nggplot(data.frame(x = a), aes(x)) +\n  geom_histogram(binwidth = 0.25) +\n  stat_function(fun = ~ dnrom(.x) *0.25*1000,n =100) \n\n\n# dnrom(.x) *0.25 \u76f8\u5bf9\u9891\u6570\n# \u603b\u65701000\u5176\u5b9e\u4e3a\u4e86\u8ba1\u7b97\u5b9e\u9645\u9891\u6570\n
\u5728R\u8bed\u8a00\u4e2d\uff0c\u6ce2\u6d6a\u7ebf\uff08~\uff09\u901a\u5e38\u7528\u4f5c\u516c\u5f0f\uff08formula\uff09\u7684\u7b26\u53f7\uff0c\u7528\u4e8e\u6307\u793a\u6a21\u578b\u6216\u51fd\u6570\u7684\u4f9d\u8d56\u5173\u7cfb\u3002\u5728\u516c\u5f0f\u4e2d\uff0c\u6ce2\u6d6a\u7ebf\u5de6\u4fa7\u8868\u793a\u56e0\u53d8\u91cf\uff08\u6216\u54cd\u5e94\u53d8\u91cf\uff09\uff0c\u800c\u53f3\u4fa7\u8868\u793a\u81ea\u53d8\u91cf\uff08\u6216\u9884\u6d4b\u53d8\u91cf\uff09\u3002 \u5728\u60a8\u63d0\u4f9b\u7684\u4e0a\u4e0b\u6587\u4e2d\uff0c~\u7b26\u53f7\u7528\u4e8e\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\u66f2\u7ebf\uff0c\u5176\u4e2ddnorm()\u51fd\u6570\u88ab\u7528\u4f5c\u4e00\u4e2a\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6ce2\u6d6a\u7ebf\u5de6\u4fa7\u7684\u516c\u5f0f\u90e8\u5206\u8868\u793a\u56e0\u53d8\u91cf\uff08\u51fd\u6570\u7684\u8f93\u51fa\uff09\uff0c\u800c\u53f3\u4fa7\u7684\u90e8\u5206\u8868\u793a\u81ea\u53d8\u91cf\uff08\u51fd\u6570\u7684\u8f93\u5165\uff09\u3002 \u5177\u4f53\u6765\u8bf4\uff0cdnorm()\u662fR\u4e2d\u7528\u4e8e\u8ba1\u7b97\u6b63\u6001\u5206\u5e03\u7684\u6982\u7387\u5bc6\u5ea6\u51fd\u6570\u7684\u51fd\u6570\u3002\u5f53\u5c06\u5176\u7528\u4f5c\u516c\u5f0f\u7684\u4e00\u90e8\u5206\u65f6\uff0c\u5373~ dnorm(.x) * 0.25 * 1000\uff0c\u5b83\u8868\u793a\u51fd\u6570\u66f2\u7ebf\u7684\u9ad8\u5ea6\uff08\u56e0\u53d8\u91cf\uff09\u7531dnorm(.x) * 0.25 * 1000\u8ba1\u7b97\u5f97\u51fa\uff0c\u5176\u4e2d.x\u8868\u793a\u81ea\u53d8\u91cf\u3002 \u6ce2\u6d6a\u7ebf\u7b26\u53f7\u5728R\u4e2d\u7528\u4e8e\u591a\u4e2a\u4e0a\u4e0b\u6587\u4e2d\uff0c\u5176\u4e2d\u6700\u5e38\u89c1\u7684\u662f\u5728\u516c\u5f0f\u4e2d\u6307\u5b9a\u7ebf\u6027\u6a21\u578b\u3001\u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\u548c\u5176\u4ed6\u7edf\u8ba1\u6a21\u578b\u3002\u5b83\u5141\u8bb8\u60a8\u5b9a\u4e49\u53d8\u91cf\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5e76\u5728\u5efa\u6a21\u548c\u6570\u636e\u5206\u6790\u4e2d\u8d77\u5230\u91cd\u8981\u4f5c\u7528\u3002

"},{"location":"R/ggplot2/stat_function%28%29/#_1","title":"\u8499\u7279\u5361\u7f57\u6a21\u62df\uff1f\uff1f\uff1f","text":"

\u7528\u6b63\u6001\u5206\u5e03\u53bb\u62df\u5408\u76f4\u65b9\u56fe\uff1f

"},{"location":"R/ggplot2/stat_summary%28%29/","title":"Stat summary()","text":"

\u5728ggplot2\u4e2d\uff0c\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u548c\u7ed8\u5236\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u3002\u5b83\u53ef\u4ee5\u7528\u4e8e\u663e\u793a\u6570\u636e\u7684\u6c47\u603b\u7edf\u8ba1\u4fe1\u606f\uff0c\u4f8b\u5982\u5747\u503c\u3001\u4e2d\u4f4d\u6570\u3001\u6807\u51c6\u5dee\u7b49\u3002

stat_summary(\n  mapping = NULL,\n  data = NULL,\n  fun = NULL,\n  geom = \"pointrange\",\n  position = \"identity\",\n  ...,\n  width = NULL,\n  fun.args = list()\n)\n

\u53c2\u6570\u8bf4\u660e\uff1a - mapping: \u7528\u4e8e\u5b9a\u4e49\u6570\u636e\u53d8\u91cf\u4e0e\u56fe\u5f62\u5c5e\u6027\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u4f8b\u5982x\u8f74\u3001y\u8f74\u3001\u989c\u8272\u7b49\u3002 - data: \u6570\u636e\u6846\uff0c\u5305\u542b\u8981\u7ed8\u5236\u7684\u53d8\u91cf\u3002 - fun: \u8981\u5e94\u7528\u4e8e\u6570\u636e\u7684\u7edf\u8ba1\u51fd\u6570\uff0c\u4f8b\u5982mean\u3001median\u3001sd\u7b49\u3002\u53ef\u4ee5\u662f\u5185\u7f6e\u7684\u51fd\u6570\u6216\u81ea\u5b9a\u4e49\u7684\u51fd\u6570\u3002 - geom: \u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u7684\u7c7b\u578b\uff0c\u5e38\u7528\u7684\u6709\"pointrange\"\uff08\u70b9\u8303\u56f4\u56fe\uff09\u548c\"crossbar\"\uff08\u5341\u5b57\u6746\u56fe\uff09\u3002 - position: \u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u7684\u6446\u653e\u65b9\u5f0f\uff0c\u5e38\u7528\u7684\u6709\"identity\"\uff08\u9ed8\u8ba4\uff0c\u4e0e\u539f\u59cb\u6570\u636e\u5bf9\u9f50\uff09\u548c\"dodge\"\uff08\u5e76\u5217\uff09\u3002 - width: \u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u7684\u5bbd\u5ea6\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\u5e38\u91cf\u503c\u6216\u4e00\u4e2a\u8868\u793a\u5bbd\u5ea6\u7684\u8868\u8fbe\u5f0f\u3002 - fun.args: \u4f20\u9012\u7ed9\u7edf\u8ba1\u51fd\u6570\u7684\u5176\u4ed6\u53c2\u6570\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528stat_summary()\u51fd\u6570\u521b\u5efa\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  category = rep(c(\"A\", \"B\"), each = 10),\n  value = rnorm(20)\n)\n\n# \u521b\u5efa\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\nggplot(data, aes(x = category, y = value)) +\n  stat_summary(fun = mean, geom = \"pointrange\", color = \"blue\") +\n  stat_summary(fun.data = mean_cl_normal, geom = \"errorbar\", width = 0.2, color = \"red\")\n

\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u6846data\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u7c7b\u522b\u53d8\u91cfcategory\u548c\u4e00\u4e2a\u6570\u503c\u53d8\u91cfvalue\u3002\u7136\u540e\uff0c\u4f7f\u7528ggplot()\u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u57fa\u672c\u7684\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528stat_summary()\u51fd\u6570\u6dfb\u52a0\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u3002

\u5728\u7b2c\u4e00\u4e2astat_summary()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u8bbe\u7f6efun\u53c2\u6570\u4e3amean\uff0c\u8868\u793a\u8ba1\u7b97\u5747\u503c\uff0c\u5e76\u5c06geom\u53c2\u6570\u8bbe\u7f6e\u4e3a\"pointrange\"\uff0c\u8868\u793a\u4f7f\u7528\u70b9\u8303\u56f4\u56fe\u5f62\u3002\u901a\u8fc7\u8bbe\u7f6ecolor\u53c2\u6570\u4e3a\"blue\"\uff0c\u6211\u4eec\u4e3a\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u6307\u5b9a\u4e86\u989c\u8272\u3002

\u5728\u7b2c\u4e8c\u4e2astat_summary()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u8bbe\u7f6efun.data\u53c2\u6570\u4e3amean_cl_normal\uff0c\u8868\u793a\u8ba1\u7b97\u5747\u503c\u7684\u7f6e\u4fe1\u533a\u95f4\uff0c\u5e76\u5c06geom\u53c2\u6570\u8bbe\u7f6e\u4e3a\"errorbar\"\uff0c\u8868\u793a\u4f7f\u7528\u8bef\u5dee\u7ebf\u56fe\u5f62\u3002\u901a\u8fc7\u8bbe\u7f6ewidth\u53c2\u6570\u4e3a0.2\uff0c\u6211\u4eec\u8c03\u6574\u4e86\u8bef\u5dee\u7ebf\u7684\u5bbd\u5ea6\u3002\u901a\u8fc7\u8bbe\u7f6ecolor\u53c2\u6570\u4e3a\"red\"\uff0c\u6211\u4eec\u4e3a\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\u6307\u5b9a\u4e86\u989c\u8272\u3002

\u8fd9\u4e2a\u793a\u4f8b\u5c06\u521b\u5efa\u4e00\u4e2a\u5e26\u6709\u5747\u503c\u70b9\u548c\u7f6e\u4fe1\u533a\u95f4\u8bef\u5dee\u7ebf\u7684\u7edf\u8ba1\u6458\u8981\u56fe\u5f62\uff0c\u5176\u4e2dx\u8f74\u8868\u793a\u7c7b\u522b\uff0cy\u8f74\u8868\u793a\u6570\u503c\u3002

"},{"location":"R/ggplot2/theme%28%29/","title":"Theme()","text":"

theme()\u51fd\u6570\u7528\u4e8e\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\uff0c\u5305\u62ec\u80cc\u666f\u3001\u6807\u9898\u3001\u8f74\u6807\u7b7e\u7b49\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

theme(...)\n
\u53c2\u6570\uff1a theme()\u51fd\u6570\u6ca1\u6709\u56fa\u5b9a\u7684\u53c2\u6570\u5217\u8868\uff0c\u5b83\u63a5\u53d7\u4e00\u7cfb\u5217\u53c2\u6570\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002

\u5728\u5177\u4f53\u4f7f\u7528\u4e2d\u9010\u6b65\u8865\u5145\uff01 \u5e38\u7528\u53c2\u6570\uff1a \u4ee5\u4e0b\u662ftheme()\u51fd\u6570\u4e2d\u5e38\u7528\u7684\u53c2\u6570\uff08\u4e0d\u5b8c\u5168\u5217\u8868\uff09\uff1a - axis.text: \u8f74\u6807\u7b7e\u7684\u6837\u5f0f\u3002axis.text.x\u4fee\u6539 x \u8f74\u523b\u5ea6\u6807\u7b7e\uff0caxis.text.y\u4fee\u6539 y \u8f74\u523b\u5ea6\u6807\u7b7e\u3002 axis.text.x = element_text(angle = 90)\uff0c\u672c\u8eab\u662fx\u7684\u6807\u7b7e\u6837\u5f0f\u662f\u6a2a\u7740\u7684\uff0c\u65cb\u8f6c90\u5ea6\uff0c\u53d8\u6210\u7ad6\u7684\u3002\u80fd\u4e0d\u80fd\u5c06\u5177\u4f53\u7684\u5b57\u7b26\u4fdd\u6301\u6a2a\u7740\uff08\u6b6a\u7740\u5934\u770b\u5f88\u8d39\u52b2\uff09\uff1f\uff1f\uff1f

  • axis.title: \u8f74\u6807\u9898\u7684\u6837\u5f0f\u3002axis.title.x\u4fee\u6539 x \u8f74\u6807\u9898\uff0caxis.title.y\u4fee\u6539 y \u8f74\u6807\u9898\u3002

  • axis.ticks: \u8f74\u523b\u5ea6\u7ebf\u548c\u523b\u5ea6\u6807\u7b7e\u7684\u6837\u5f0f\uff0caxis.ticks.x\u4fee\u6539 x \u8f74\u523b\u5ea6\u7ebf\uff0caxis.ticks.y\u4fee\u6539 y \u8f74\u523b\u5ea6\u7ebf\u3002

  • legend.title: \u56fe\u4f8b\u6807\u9898\u7684\u6837\u5f0f\u3002

  • legend.text: \u56fe\u4f8b\u6807\u7b7e\u7684\u6837\u5f0f\u3002

  • panel.background: \u7ed8\u56fe\u533a\u57df\u7684\u80cc\u666f\u6837\u5f0f\u3002

  • panel.grid: \u7ed8\u56fe\u533a\u57df\u7684\u7f51\u683c\u6837\u5f0f\u3002panel.grid.major.x\u4fee\u6539 x \u8f74\u7684\u4e3b\u8981\u7f51\u683c\u7ebf\uff0cpanel.grid.minor.y\u4fee\u6539 y \u8f74\u7684\u6b21\u8981\u7f51\u683c\u7ebf\u3002

    library(ggplot2)\n\n# \u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u6563\u70b9\u56fe\np <- ggplot(mtcars, aes(x = mpg, y = wt)) +\n  geom_point()\n\n# \u8bbe\u7f6e\u7ebf\u6761\u7684\u989c\u8272\u4e3a\u7ea2\u8272\uff0c\u7c97\u7ec6\u4e3a2\uff0c\u7c7b\u578b\u4e3a\u865a\u7ebf\uff0c\u7aef\u70b9\u6837\u5f0f\u4e3a\u5706\u5f62\np + theme(\n  panel.grid.major = element_line(color = \"red\", size = 2, linetype = \"dashed\", lineend = \"round\")\n)\n

  • plot.background: \u6574\u4e2a\u56fe\u5f62\u7684\u80cc\u666f\u6837\u5f0f\u3002

  • plot.title: \u56fe\u5f62\u6807\u9898\u7684\u6837\u5f0f\u3002
  • plot.subtitle: \u4fee\u6539\u56fe\u5f62\u526f\u6807\u9898\u7684\u5916\u89c2\u3002
  • plot.caption: \u4fee\u6539\u56fe\u5f62\u6ce8\u91ca\u7684\u5916\u89c2\u3002

  • strip.text: \u4fee\u6539\u5206\u9762\u56fe\u4e2d\u5b50\u56fe\u6807\u7b7e\u7684\u5916\u89c2\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528theme()\u51fd\u6570\u81ea\u5b9a\u4e49\u7ed8\u56fe\u6837\u5f0f\u7684\u793a\u4f8b\uff1a

library(ggplot2)\n\n# \u521b\u5efa\u6570\u636e\u96c6\ndata <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(2, 4, 6, 8, 10)\n)\n\n# \u521b\u5efa\u57fa\u672c\u56fe\u5f62\np <- ggplot(data, aes(x, y)) +\n  geom_line() +\n  labs(title = \"My Plot\", x = \"X\", y = \"Y\")\n\n# \u81ea\u5b9a\u4e49\u7ed8\u56fe\u6837\u5f0f\np + theme(\n  plot.title = element_text(color = \"blue\", size = 16),\n  axis.title = element_text(color = \"red\", size = 14),\n  axis.text = element_text(color = \"green\", size = 12),\n  panel.background = element_rect(fill = \"gray\")\n)\n

library(ggplot2)\n\n# \u793a\u4f8b\u6570\u636e\u96c6\ndf <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))\n\n# \u521b\u5efa\u7ed8\u56fe\u5bf9\u8c61\uff0c\u5b9a\u4e49\u6620\u5c04\u5173\u7cfb\np <- ggplot(data = df, mapping = aes(x = x, y = y))\n\n# \u6dfb\u52a0\u70b9\u56fe\u5c42\np <- p + geom_point()\n\n# \u4fee\u6539\u56fe\u5f62\u4e3b\u9898\np <- p + theme(\n  plot.title = element_text(color = \"blue\", size = 16),\n  axis.title.x = element_text(face = \"bold\"),\n  axis.text.y = element_text(angle = 90),\n  legend.position = \"bottom\"\n)\n\n# \u663e\u793a\u56fe\u5f62\nprint(p)\n
"},{"location":"R/ggplot2/theme%28%29/#_1","title":"\u6837\u5f0f\u51fd\u6570","text":""},{"location":"R/ggplot2/theme%28%29/#element_rect","title":"element_rect()\u77e9\u5f62\u5143\u7d20\uff08\u5982\u56fe\u4f8b\u80cc\u666f\u3001\u9762\u677f\u80cc\u666f\u7b49\uff09\u7684\u6837\u5f0f","text":"

\u5728ggplot2\u4e2d\uff0ctheme()\u51fd\u6570\u7528\u4e8e\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002element_rect()\u51fd\u6570\u662ftheme()\u51fd\u6570\u4e2d\u7684\u4e00\u4e2a\u5b50\u51fd\u6570\uff0c\u7528\u4e8e\u8bbe\u7f6e\u77e9\u5f62\u5143\u7d20\u7684\u6837\u5f0f\uff0c\u5982\u56fe\u4f8b\u80cc\u666f\u3001\u9762\u677f\u80cc\u666f\u7b49\u3002\u4e0b\u9762\u662f\u4e00\u4e9b\u5e38\u7528\u7684element_rect()\u51fd\u6570\u7684\u53c2\u6570\u53ca\u5176\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a 1. fill: \u8bbe\u7f6e\u77e9\u5f62\u586b\u5145\u7684\u989c\u8272\u3002

# \u793a\u4f8b\nggplot() +\n  theme(\n    legend.background = element_rect(fill = \"lightblue\"),\n    panel.background = element_rect(fill = \"lightgray\")\n  )\n

  1. colour\u6216color: \u8bbe\u7f6e\u77e9\u5f62\u8fb9\u6846\u7684\u989c\u8272\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    legend.background = element_rect(color = \"blue\"),\n    panel.background = element_rect(color = \"gray\")\n  )\n

  2. size: \u8bbe\u7f6e\u77e9\u5f62\u8fb9\u6846\u7684\u7c97\u7ec6\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    legend.background = element_rect(size = 1),\n    panel.background = element_rect(size = 0.5)\n  )\n

  3. linetype: \u8bbe\u7f6e\u77e9\u5f62\u8fb9\u6846\u7684\u7c7b\u578b\uff0c\u5982\u5b9e\u7ebf\uff08\"solid\"\uff09\u3001\u865a\u7ebf\uff08\"dashed\"\uff09\u3001\u70b9\u7ebf\uff08\"dotted\"\uff09\u7b49\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    legend.background = element_rect(linetype = \"dashed\"),\n    panel.background = element_rect(linetype = \"dotted\")\n  )\n

  4. inherit.blank: \u8bbe\u7f6e\u662f\u5426\u7ee7\u627felement_blank()\u51fd\u6570\u7684\u6548\u679c\uff0c\u5373\u662f\u5426\u9690\u85cf\u77e9\u5f62\u5143\u7d20\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    legend.background = element_rect(inherit.blank = TRUE)  # \u7ee7\u627f\u9690\u85cf\n  )\n

\u8fd9\u4e9b\u662felement_rect()\u51fd\u6570\u4e2d\u4e00\u4e9b\u5e38\u7528\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u8c03\u6574\u3002\u901a\u8fc7\u5728theme()\u51fd\u6570\u4e2d\u4f7f\u7528element_rect()\u51fd\u6570\uff0c\u5e76\u8bbe\u7f6e\u76f8\u5e94\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49\u7ed8\u56fe\u4e2d\u77e9\u5f62\u5143\u7d20\u7684\u6837\u5f0f\uff0c\u4f8b\u5982\u56fe\u4f8b\u80cc\u666f\u3001\u9762\u677f\u80cc\u666f\u7b49\u3002

"},{"location":"R/ggplot2/theme%28%29/#element_text","title":"element_text()\u6587\u672c\u5143\u7d20\u7684\u6837\u5f0f","text":"

\u5728ggplot2\u4e2d\uff0ctheme()\u51fd\u6570\u7528\u4e8e\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002element_text()\u51fd\u6570\u662ftheme()\u51fd\u6570\u4e2d\u7684\u4e00\u4e2a\u5b50\u51fd\u6570\uff0c\u7528\u4e8e\u8bbe\u7f6e\u6587\u672c\u5143\u7d20\u7684\u6837\u5f0f\u3002\u4e0b\u9762\u662f\u4e00\u4e9b\u5e38\u7528\u7684element_text()\u51fd\u6570\u7684\u53c2\u6570\u53ca\u5176\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a 1. family: \u8bbe\u7f6e\u6587\u672c\u7684\u5b57\u4f53\u7cfb\u5217\u3002\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u5b57\u4f53\u4f5c\u4e3a\u5907\u9009\u9879\uff0c\u7528\u9017\u53f7\u5206\u9694\u3002\u9ed8\u8ba4\u503c\u4e3aNULL\uff0c\u8868\u793a\u4f7f\u7528\u9ed8\u8ba4\u5b57\u4f53\u3002\"Songti SC\"\u5b8b\u4f53

# \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(family = \"Arial\")\n  )\n

  1. face: \u8bbe\u7f6e\u6587\u672c\u7684\u5b57\u4f53\u6837\u5f0f\uff0c\u5982\u7c97\u4f53\uff08\"bold\"\uff09\u3001\u659c\u4f53\uff08\"italic\"\uff09\u3001\u6b63\u5e38\uff08\"plain\"\uff09\u7b49\u3002\u9ed8\u8ba4\u503c\u4e3a\"plain\"\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(face = \"bold\")\n  )\n

  2. color\u6216colour: \u8bbe\u7f6e\u6587\u672c\u7684\u989c\u8272\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(colour = \"red\")\n  )\n

  3. size: \u8bbe\u7f6e\u6587\u672c\u7684\u5927\u5c0f\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(size = 12)\n  )\n

  4. angle: \u8bbe\u7f6e\u6587\u672c\u7684\u65cb\u8f6c\u89d2\u5ea6\uff08\u4ee5\u5ea6\u4e3a\u5355\u4f4d\uff09\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(angle = 45)\n  )\n

  5. hjust\u548cvjust: \u8bbe\u7f6e\u6587\u672c\u7684\u6c34\u5e73\u5bf9\u9f50\u548c\u5782\u76f4\u5bf9\u9f50\u65b9\u5f0f\uff0c\u53d6\u503c\u8303\u56f4\u4e3a0\u52301\u4e4b\u95f4\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(hjust = 0.5, vjust = 0.5)\n  )\n

  6. lineheight: \u8bbe\u7f6e\u6587\u672c\u7684\u884c\u9ad8\uff0c\u53d6\u503c\u8303\u56f4\u4e3a0\u52301\u4e4b\u95f4\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    axis.text = element_text(lineheight = 0.8)\n  )\n

\u8fd9\u4e9b\u662felement_text()\u51fd\u6570\u4e2d\u4e00\u4e9b\u5e38\u7528\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u8c03\u6574\u3002\u901a\u8fc7\u5728theme()\u51fd\u6570\u4e2d\u4f7f\u7528element_text()\u51fd\u6570\uff0c\u5e76\u8bbe\u7f6e\u76f8\u5e94\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u6587\u672c\u5143\u7d20\u6837\u5f0f\uff0c\u5305\u62ec\u5750\u6807\u8f74\u6807\u7b7e\u3001\u56fe\u4f8b\u6807\u7b7e\u3001\u6807\u9898\u7b49\u3002

"},{"location":"R/ggplot2/theme%28%29/#element_line","title":"element_line()\u7ebf\u6761\u5143\u7d20\u7684\u6837\u5f0f","text":"

\u5728ggplot2\u4e2d\uff0ctheme()\u51fd\u6570\u7528\u4e8e\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002element_line()\u51fd\u6570\u662ftheme()\u51fd\u6570\u4e2d\u7684\u4e00\u4e2a\u5b50\u51fd\u6570\uff0c\u7528\u4e8e\u8bbe\u7f6e\u7ebf\u6761\u5143\u7d20\u7684\u6837\u5f0f\u3002\u4e0b\u9762\u662f\u4e00\u4e9b\u5e38\u7528\u7684element_line()\u51fd\u6570\u7684\u53c2\u6570\u53ca\u5176\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a 1. colour\u6216color: \u8bbe\u7f6e\u7ebf\u6761\u7684\u989c\u8272\u3002

# \u793a\u4f8b\nggplot() +\n  theme(\n    panel.grid.major = element_line(colour = \"gray\"),\n    panel.grid.minor = element_line(colour = \"lightgray\")\n  )\n

  1. size: \u8bbe\u7f6e\u7ebf\u6761\u7684\u7c97\u7ec6\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    panel.grid.major = element_line(size = 1),\n    panel.grid.minor = element_line(size = 0.5)\n  )\n

  2. linetype: \u8bbe\u7f6e\u7ebf\u6761\u7684\u7c7b\u578b\uff0c\u5982\u5b9e\u7ebf\uff08\"solid\"\uff09\u3001\u865a\u7ebf\uff08\"dashed\"\uff09\u3001\u70b9\u7ebf\uff08\"dotted\"\uff09\u7b49\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    panel.grid.major = element_line(linetype = \"dashed\"),\n    panel.grid.minor = element_line(linetype = \"dotted\")\n  )\n

  3. lineend: \u8bbe\u7f6e\u7ebf\u6761\u7684\u7aef\u70b9\u6837\u5f0f\uff0c\u5982\u5706\u5f62\uff08\"round\"\uff09\u3001\u5e73\u76f4\uff08\"butt\"\uff09\u7b49\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    panel.grid.major = element_line(lineend = \"round\"),\n    panel.grid.minor = element_line(lineend = \"butt\")\n  )\n

  4. linejoin: \u8bbe\u7f6e\u7ebf\u6761\u7684\u8fde\u63a5\u6837\u5f0f\uff0c\u5982\u5706\u6ed1\uff08\"round\"\uff09\u3001\u76f4\u89d2\uff08\"mitre\"\uff09\u7b49\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    panel.border = element_line(linejoin = \"round\")\n  )\n

\u8fd9\u4e9b\u662felement_line()\u51fd\u6570\u4e2d\u4e00\u4e9b\u5e38\u7528\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u8c03\u6574\u3002\u901a\u8fc7\u5728theme()\u51fd\u6570\u4e2d\u4f7f\u7528element_line()\u51fd\u6570\uff0c\u5e76\u8bbe\u7f6e\u76f8\u5e94\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u7ebf\u6761\u5143\u7d20\u6837\u5f0f\uff0c\u5305\u62ec\u7f51\u683c\u7ebf\u3001\u8fb9\u6846\u7ebf\u7b49\u3002

"},{"location":"R/ggplot2/theme%28%29/#element_blank","title":"element_blank()\u9690\u85cf\u7279\u5b9a\u5143\u7d20","text":"

element_blank()\u51fd\u6570\u662ftheme()\u51fd\u6570\u4e2d\u7684\u4e00\u4e2a\u5b50\u51fd\u6570\uff0c\u7528\u4e8e\u9690\u85cf\u7279\u5b9a\u7684\u5143\u7d20\uff0c\u4f7f\u5176\u4e0d\u663e\u793a\u3002element_blank()\u51fd\u6570\u6ca1\u6709\u53ef\u8c03\u6574\u7684\u53c2\u6570\uff0c\u53ea\u9700\u5c06\u5176\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u76f8\u5e94\u7684\u5143\u7d20\u5373\u53ef\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u4f7f\u7528\u793a\u4f8b\uff1a 1. \u9690\u85cf\u5750\u6807\u8f74\u6807\u9898\uff1a

# \u793a\u4f8b\nggplot() +\n  theme(\n    axis.title.x = element_blank(),\n    axis.title.y = element_blank()\n  )\n

  1. \u9690\u85cf\u56fe\u4f8b\uff1a legend.position = \"none\" \u9690\u85cf\u4e86\u56fe\u4f8b\uff01

    # \u793a\u4f8b\nggplot() +\n  theme(\n    legend.position = \"none\",\n    legend.title = element_blank()\n  )\n

  2. \u9690\u85cf\u7f51\u683c\u7ebf\uff1a

    # \u793a\u4f8b\nggplot() +\n  theme(\n    panel.grid.major = element_blank(),\n    panel.grid.minor = element_blank()\n  )\n

  3. \u9690\u85cf\u9762\u677f\u8fb9\u6846\uff1a

    # \u793a\u4f8b\nggplot() +\n  theme(\n    panel.border = element_blank()\n  )\n
    \u901a\u8fc7\u5c06element_blank()\u51fd\u6570\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u76f8\u5e94\u7684\u5143\u7d20\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u9690\u85cf\u8fd9\u4e9b\u5143\u7d20\uff0c\u4ece\u800c\u5b9e\u73b0\u7ed8\u56fe\u4e2d\u7279\u5b9a\u5143\u7d20\u7684\u9690\u85cf\u6548\u679c\u3002\u8bf7\u6ce8\u610f\uff0celement_blank()\u51fd\u6570\u901a\u5e38\u4e0e\u5176\u4ed6\u7684element_XXX()\u51fd\u6570\uff08\u5982element_text()\u3001element_line()\u7b49\uff09\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u5b8c\u5168\u81ea\u5b9a\u4e49\u7ed8\u56fe\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002

"},{"location":"R/ggplot2/theme%28%29/#element_point","title":"element_point()","text":"

element_point()\u51fd\u6570\u662ftheme()\u51fd\u6570\u4e2d\u7684\u4e00\u4e2a\u5b50\u51fd\u6570\uff0c\u7528\u4e8e\u8bbe\u7f6e\u6563\u70b9\u56fe\u4e2d\u70b9\u5143\u7d20\u7684\u6837\u5f0f\u3002\u4e0b\u9762\u662f\u4e00\u4e9b\u5e38\u7528\u7684element_point()\u51fd\u6570\u7684\u53c2\u6570\u53ca\u5176\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a 1. size: \u8bbe\u7f6e\u70b9\u7684\u5927\u5c0f\u3002

# \u793a\u4f8b\nggplot() +\n  theme(\n    plot.symbol = element_point(size = 3)\n  )\n

  1. shape: \u8bbe\u7f6e\u70b9\u7684\u5f62\u72b6\uff0c\u53ef\u4ee5\u662f\u6574\u6570\u6216\u5b57\u7b26\u503c\u3002\u5e38\u89c1\u7684\u5f62\u72b6\u5305\u62ec\u5706\u5f62\uff0816\uff09\u3001\u4e09\u89d2\u5f62\uff0817\uff09\u3001\u6b63\u65b9\u5f62\uff0815\uff09\u7b49\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    plot.symbol = element_point(shape = 16)\n  )\n

  2. colour\u6216color: \u8bbe\u7f6e\u70b9\u7684\u989c\u8272\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    plot.symbol = element_point(colour = \"red\")\n  )\n

  3. fill: \u8bbe\u7f6e\u70b9\u7684\u586b\u5145\u989c\u8272\u3002

    # \u793a\u4f8b\nggplot() +\n  theme(\n    plot.symbol = element_point(fill = \"blue\")\n  )\n

\u8fd9\u4e9b\u662felement_point()\u51fd\u6570\u4e2d\u4e00\u4e9b\u5e38\u7528\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u8c03\u6574\u3002\u901a\u8fc7\u5728theme()\u51fd\u6570\u4e2d\u4f7f\u7528element_point()\u51fd\u6570\uff0c\u5e76\u8bbe\u7f6e\u76f8\u5e94\u7684\u53c2\u6570\uff0c\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49\u6563\u70b9\u56fe\u4e2d\u70b9\u5143\u7d20\u7684\u6837\u5f0f\uff0c\u5305\u62ec\u5927\u5c0f\u3001\u5f62\u72b6\u3001\u989c\u8272\u7b49\u3002\u8fd9\u6837\u53ef\u4ee5\u4f7f\u5f97\u4f60\u7684\u6563\u70b9\u56fe\u66f4\u52a0\u7b26\u5408\u4f60\u7684\u8bbe\u8ba1\u9700\u6c42\u3002

"},{"location":"R/other%20packages/package-EnvStats/","title":"package EnvStats","text":"

varTest()\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\uff0c\u68c0\u9a8c\u5355\u4e2a\u6837\u672c

"},{"location":"R/other%20packages/package-EnvStats/#vartest","title":"varTest()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cEnvStats \u5305\u4e2d\u7684 varTest() \u51fd\u6570\u7528\u4e8e\u8fdb\u884c\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u6bd4\u8f83\u4e24\u4e2a\u6216\u591a\u4e2a\u6837\u672c\u7684\u65b9\u5dee\u662f\u5426\u663e\u8457\u4e0d\u540c\u3002\u4e0b\u9762\u662f\u5bf9 varTest() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a \u51fd\u6570\u8bed\u6cd5\uff1a

varTest(data, formula = NULL, method = c(\"bartlett\", \"fligner\", \"levene\"), na.action = na.fail, ...)\n

\u53c2\u6570\u8bf4\u660e\uff1a - data: \u5305\u542b\u6570\u636e\u7684\u6570\u636e\u6846\u6216\u5411\u91cf\u3002\u5982\u679c\u4f7f\u7528\u516c\u5f0f\uff08formula\uff09\uff0c\u5219 data \u5e94\u8be5\u662f\u4e00\u4e2a\u6570\u636e\u6846\u3002 - formula: \u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u65b9\u5dee\u6bd4\u8f83\u7684\u516c\u5f0f\u3002\u516c\u5f0f\u7684\u5f62\u5f0f\u4e3a response ~ group\uff0c\u5176\u4e2d response \u662f\u4e00\u4e2a\u6570\u503c\u578b\u7684\u54cd\u5e94\u53d8\u91cf\uff0cgroup \u662f\u4e00\u4e2a\u5206\u7c7b\u53d8\u91cf\uff0c\u8868\u793a\u4e0d\u540c\u7684\u7ec4\u522b\u3002 - method: \u7528\u4e8e\u6307\u5b9a\u65b9\u5dee\u6bd4\u8f83\u7684\u65b9\u6cd5\u3002\u53ef\u9009\u503c\u4e3a \"bartlett\"\uff08\u5df4\u7279\u5229\u7279\u68c0\u9a8c\uff09\u3001\"fligner\"\uff08\u5f17\u91cc\u683c\u5c3c\u68c0\u9a8c\uff09\u548c \"levene\"\uff08\u83b1\u6587\u68c0\u9a8c\uff09\u3002 - na.action: \u7528\u4e8e\u5904\u7406\u7f3a\u5931\u503c\u7684\u65b9\u6cd5\u3002\u9ed8\u8ba4\u503c\u662f na.fail\uff0c\u8868\u793a\u5982\u679c\u6570\u636e\u4e2d\u5b58\u5728\u7f3a\u5931\u503c\uff0c\u5219\u51fd\u6570\u4f1a\u8fd4\u56de\u9519\u8bef\u3002 - ...: \u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u7528\u4e8e\u4f20\u9012\u7ed9\u7279\u5b9a\u65b9\u6cd5\u7684\u9009\u9879\u3002 \u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u65b9\u5dee\u68c0\u9a8c\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u3001\u81ea\u7531\u5ea6\u3001p \u503c\u7b49\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4e00\u4e2a\u4f7f\u7528 varTest() \u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u5bfc\u5165 EnvStats \u5305\nlibrary(EnvStats)\n\n# \u521b\u5efa\u4e00\u4e2a\u793a\u4f8b\u6570\u636e\u6846\ndata <- data.frame(\n  response = c(10, 12, 15, 9, 11, 14, 8, 13),\n  group = factor(rep(c(\"A\", \"B\"), each = 4))\n)\n\n# \u4f7f\u7528 varTest() \u8fdb\u884c\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\nresult <- varTest(data, formula = response ~ group, method = \"bartlett\")\n\n# \u6253\u5370\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\u7ed3\u679c\nprint(result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5bfc\u5165 EnvStats \u5305\uff0c\u7136\u540e\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a data \u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e00\u4e2a\u6570\u503c\u578b\u7684\u54cd\u5e94\u53d8\u91cf response \u548c\u4e00\u4e2a\u5206\u7c7b\u53d8\u91cf group\u3002\u6211\u4eec\u4f7f\u7528 varTest() \u51fd\u6570\u8fdb\u884c\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\uff0c\u6307\u5b9a\u4e86\u516c\u5f0f response ~ group \u548c\u65b9\u6cd5\u4e3a \"bartlett\"\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\u7684\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0c\u5728\u5b9e\u9645\u4f7f\u7528\u4e2d\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u9009\u62e9\u4e0d\u540c\u7684\u65b9\u6cd5\uff08\"bartlett\"\u3001\"fligner\" \u6216 \"levene\"\uff09\u8fdb\u884c\u65b9\u5dee\u6bd4\u8f83\u68c0\u9a8c\uff0c\u5e76\u6839\u636e\u68c0\u9a8c\u7ed3\u679c\u8fdb\u884c\u6570\u636e\u5206\u6790\u548c\u89e3\u91ca\u3002

"},{"location":"R/other%20packages/package-car/","title":"Package car","text":"

\u8ba1\u91cf\u7ecf\u6d4e\u5b66\u7684\u5305\u3002car\u5305\uff08Companion to Applied Regression\uff09

"},{"location":"R/other%20packages/package-car/#carlevenetest","title":"car::leveneTest()","text":"

^8f93ec

\u529f\u80fd\uff1a leveneTest()\u51fd\u6570\u7528\u4e8e\u6267\u884cLevene's test\uff08\u5217\u6587\u68c0\u9a8c\uff09\uff0c\u7528\u4e8e\u68c0\u9a8c\u591a\u4e2a\u7ec4\u7684\u65b9\u5dee\u662f\u5426\u76f8\u7b49\u3002\u8fd9\u4e2a\u68c0\u9a8c\u901a\u5e38\u7528\u4e8e\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u7b49\u7edf\u8ba1\u65b9\u6cd5\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u65b9\u6cd5\u5728\u5047\u8bbe\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u60c5\u51b5\u4e0b\u66f4\u4e3a\u6709\u6548\u3002

\u5b9a\u4e49\uff1a

leveneTest(y, group, center = \"median\")\n

\u53c2\u6570\u4ecb\u7ecd\uff1a

  • y\uff1a \u6570\u503c\u578b\u5411\u91cf\uff0c\u5305\u542b\u89c2\u6d4b\u503c\u3002

  • group\uff1a \u5206\u7ec4\u53d8\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u89c2\u6d4b\u503c\u6240\u5c5e\u7684\u7ec4\u522b\u3002

  • center\uff1a \u4e2d\u5fc3\u5316\u9009\u9879\uff0c\u7528\u4e8e\u6307\u5b9a\u5982\u4f55\u4e2d\u5fc3\u5316\u6570\u636e\u3002\u9ed8\u8ba4\u4e3a\"median\"\uff0c\u53ef\u9009\u7684\u8fd8\u6709\"mean\"\u3002

\u793a\u4f8b\uff1a

# \u5b89\u88c5\u5e76\u52a0\u8f7dcar\u5305\ninstall.packages(\"car\")\nlibrary(car)\n\n# \u521b\u5efa\u4e24\u4e2a\u7ec4\u7684\u6570\u636e\uff08\u793a\u4f8b\u6570\u636e\uff09\ngroup1 <- c(23, 25, 28, 30, 32)\ngroup2 <- c(18, 20, 24, 28, 30)\n\n# \u6267\u884cLevene's test\nresult <- leveneTest(c(group1, group2), group = rep(c(\"Group1\", \"Group2\"), each = 5), center = \"median\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n

\u8f93\u51fa\uff1a

\u793a\u4f8b\u4e2d\u7684\u8f93\u51fa\u7ed3\u679c\u5c06\u5305\u542bLevene's test\u7684\u7edf\u8ba1\u91cf\uff08W\uff09\u3001\u81ea\u7531\u5ea6\uff08DF1\uff0cDF2\uff09\u548cp\u503c\uff08Pr(>W)\uff09\u3002\u5177\u4f53\u8f93\u51fa\u4fe1\u606f\u5c06\u7c7b\u4f3c\u4e8e\uff1a

Levene's Test for Homogeneity of Variance (center = median)\n      Df F value Pr(>F)\ngroup  1  0.0667 0.7996\n      8\n

\u8fd9\u4e2a\u8f93\u51fa\u63d0\u4f9b\u4e86Levene's test\u7684\u7edf\u8ba1\u91cf\uff08F value\uff09\u3001\u81ea\u7531\u5ea6\uff08DF1\uff0cDF2\uff09\u4ee5\u53cap\u503c\uff08Pr(>F)\uff09\u3002\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u4f60\u53ef\u4ee5\u67e5\u770bp\u503c\u6765\u5224\u65ad\u662f\u5426\u62d2\u7edd\u4e86\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u5047\u8bbe\u3002

"},{"location":"R/other%20packages/package-car/#carvif","title":"car::vif()","text":"

^2792de

\u5728 R \u8bed\u8a00\u4e2d\uff0cvif() \u51fd\u6570\u901a\u5e38\u5c5e\u4e8e car \u5305\uff0c\u7528\u4e8e\u8ba1\u7b97\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u4e2d\u5404\u4e2a\u9884\u6d4b\u53d8\u91cf\u7684\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50\uff08VIF\uff0cVariance Inflation Factor\uff09\u3002VIF\u7528\u4e8e\u68c0\u6d4b\u6a21\u578b\u4e2d\u5b58\u5728\u591a\u91cd\u5171\u7ebf\u6027\u7684\u60c5\u51b5\u3002

\u529f\u80fd\uff1a \u8ba1\u7b97\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u4e2d\u5404\u4e2a\u9884\u6d4b\u53d8\u91cf\u7684\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50\u3002

\u5b9a\u4e49\uff1a

vif(model, ...)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - model\uff1a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u5bf9\u8c61\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684 vif() \u65b9\u6cd5\u3002

\u8fd4\u56de\u503c\uff1a \u8fd4\u56de\u5305\u542b\u5404\u4e2a\u9884\u6d4b\u53d8\u91cf\u7684\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50\u7684\u5217\u8868\u3002

\u4e3e\u4f8b\uff1a

# \u4f7f\u7528 vif() \u8ba1\u7b97\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50\nlibrary(car)\n\n# \u521b\u5efa\u4e00\u4e2a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\nmodel <- lm(mpg ~ wt + hp + qsec, data = mtcars)\n\n# \u8ba1\u7b97\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50\nvif_result <- vif(model)\n\n# \u6253\u5370\u7ed3\u679c\nprint(vif_result)\n

\u8f93\u51fa\uff1a

       wt        hp      qsec \n3.333146 4.442017 1.772618 \n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cvif(model) \u4f7f\u7528 car \u5305\u7684 vif() \u51fd\u6570\u8ba1\u7b97\u4e86\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u4e2d\u9884\u6d4b\u53d8\u91cf\u7684\u65b9\u5dee\u81a8\u80c0\u56e0\u5b50\u3002\u7ed3\u679c\u663e\u793a\u4e86\u6bcf\u4e2a\u9884\u6d4b\u53d8\u91cf\u7684VIF\u503c\u3002\u901a\u5e38\uff0cVIF\u503c\u5927\u4e8e10\u53ef\u80fd\u8868\u793a\u5b58\u5728\u591a\u91cd\u5171\u7ebf\u6027\u7684\u95ee\u9898\u3002

"},{"location":"R/other%20packages/package-e1071/","title":"Package e1071","text":""},{"location":"R/other%20packages/package-e1071/#skewness","title":"skewness()","text":"

^93ddaf

\u5728R\u8bed\u8a00\u7684e1071\u5305\u4e2d\uff0cskewness()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u6570\u636e\u7684\u504f\u5ea6\uff08skewness\uff09\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

skewness(x, na.rm = FALSE)\n
\u53c2\u6570\uff1a - x\uff1a\u8981\u8ba1\u7b97\u504f\u5ea6\u7684\u6570\u636e\u5411\u91cf\u6216\u6570\u636e\u6846\u3002 - na.rm\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u5728\u8ba1\u7b97\u65f6\u5220\u9664\u7f3a\u5931\u503c\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5220\u9664\u7f3a\u5931\u503c\u3002 \u793a\u4f8b\uff1a
library(e1071)\n\n# \u793a\u4f8b\uff1a\u8ba1\u7b97\u6570\u636e\u504f\u5ea6\ndata <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)\n\n# \u8ba1\u7b97\u6570\u636e\u504f\u5ea6\nskew <- skewness(data)\nprint(skew)\n
\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7de1071\u5305\u4f7f\u7528library(e1071)\u3002\u7136\u540e\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u6570\u636e\u5411\u91cfdata\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u7ec4\u6570\u503c\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528skewness()\u51fd\u6570\u8ba1\u7b97\u4e86\u6570\u636e\u5411\u91cfdata\u7684\u504f\u5ea6\uff0c\u5e76\u5c06\u7ed3\u679c\u8d4b\u503c\u7ed9skew\u53d8\u91cf\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u8ba1\u7b97\u5f97\u5230\u7684\u504f\u5ea6\u503c\u3002

\u6ce8\u610f\uff0cskewness()\u51fd\u6570\u8ba1\u7b97\u6570\u636e\u7684\u504f\u5ea6\uff0c\u5b83\u5ea6\u91cf\u4e86\u6570\u636e\u5206\u5e03\u7684\u4e0d\u5bf9\u79f0\u6027\u3002\u5f53\u504f\u5ea6\u503c\u4e3a0\u65f6\uff0c\u6570\u636e\u5206\u5e03\u5448\u73b0\u5bf9\u79f0\u6027\uff1b\u5f53\u504f\u5ea6\u503c\u5927\u4e8e0\u65f6\uff0c\u6570\u636e\u5206\u5e03\u5411\u53f3\u503e\u659c\uff08\u53f3\u5c3e\u8f83\u957f\uff09\uff1b\u5f53\u504f\u5ea6\u503c\u5c0f\u4e8e0\u65f6\uff0c\u6570\u636e\u5206\u5e03\u5411\u5de6\u503e\u659c\uff08\u5de6\u5c3e\u8f83\u957f\uff09\u3002

"},{"location":"R/other%20packages/package-e1071/#_1","title":"\u504f\u5ea6\u4ecb\u7ecd","text":"

\u504f\u5ea6\uff08skewness\uff09\u662f\u4e00\u79cd\u7edf\u8ba1\u91cf\uff0c\u7528\u4e8e\u8861\u91cf\u6570\u636e\u5206\u5e03\u7684\u5bf9\u79f0\u6027\u6216\u504f\u659c\u7a0b\u5ea6\u3002\u5b83\u63cf\u8ff0\u4e86\u6570\u636e\u5206\u5e03\u5728\u5e73\u5747\u503c\u9644\u8fd1\u7684\u504f\u659c\u65b9\u5411\u548c\u7a0b\u5ea6\u3002 \u5e38\u89c1\u7684\u504f\u5ea6\u8ba1\u7b97\u65b9\u6cd5\u662f\u901a\u8fc7\u8ba1\u7b97\u6570\u636e\u7684\u4e09\u9636\u4e2d\u5fc3\u77e9\u6765\u83b7\u5f97\u3002\u4e09\u9636\u4e2d\u5fc3\u77e9\u662f\u6307\u6570\u636e\u503c\u51cf\u53bb\u5747\u503c\u540e\u7684\u7acb\u65b9\u503c\u7684\u5e73\u5747\u6570\u3002 \u4e0b\u9762\u662f\u504f\u5ea6\u7684\u8ba1\u7b97\u516c\u5f0f\uff1a

Skewness = (Sum((X - Mean)^3) / (N * StdDev^3))\n
\u5176\u4e2d\uff1a - X \u662f\u6bcf\u4e2a\u6570\u636e\u70b9\u7684\u503c - Mean \u662f\u6570\u636e\u7684\u5747\u503c - StdDev \u662f\u6570\u636e\u7684\u6807\u51c6\u5dee - N \u662f\u6570\u636e\u70b9\u7684\u6570\u91cf

\u8ba1\u7b97\u8fc7\u7a0b\u5982\u4e0b\uff1a 1. \u8ba1\u7b97\u6570\u636e\u7684\u5747\u503c Mean \u548c\u6807\u51c6\u5dee StdDev\u3002 2. \u5bf9\u4e8e\u6bcf\u4e2a\u6570\u636e\u70b9\uff0c\u8ba1\u7b97 (X - Mean)^3 \u7684\u7acb\u65b9\u503c\u3002 3. \u5c06\u6240\u6709 (X - Mean)^3 \u7684\u7acb\u65b9\u503c\u76f8\u52a0\u5f97\u5230\u603b\u548c\u3002 4. \u5c06\u603b\u548c\u9664\u4ee5 (N * StdDev^3) \u5f97\u5230\u504f\u5ea6\u503c\u3002

\u6839\u636e\u8ba1\u7b97\u7ed3\u679c\u7684\u6b63\u8d1f\u548c\u5927\u5c0f\uff0c\u53ef\u4ee5\u5224\u65ad\u6570\u636e\u7684\u504f\u659c\u65b9\u5411\u548c\u7a0b\u5ea6\uff1a - \u5f53\u504f\u5ea6\u4e3a0\u65f6\uff0c\u8868\u793a\u6570\u636e\u5206\u5e03\u8fd1\u4f3c\u5bf9\u79f0\u3002 - \u5f53\u504f\u5ea6\u5927\u4e8e0\u65f6\uff0c\u8868\u793a\u6570\u636e\u53f3\u504f\uff08\u6b63\u504f\uff09\uff0c\u5373\u6570\u636e\u5c3e\u90e8\u5411\u53f3\u5ef6\u4f38\uff0c\u53f3\u4fa7\u7684\u6781\u503c\u8f83\u591a\u3002 - \u5f53\u504f\u5ea6\u5c0f\u4e8e0\u65f6\uff0c\u8868\u793a\u6570\u636e\u5de6\u504f\uff08\u8d1f\u504f\uff09\uff0c\u5373\u6570\u636e\u5c3e\u90e8\u5411\u5de6\u5ef6\u4f38\uff0c\u5de6\u4fa7\u7684\u6781\u503c\u8f83\u591a\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u504f\u5ea6\u662f\u5bf9\u6570\u636e\u5206\u5e03\u5f62\u6001\u7684\u4e00\u79cd\u5ea6\u91cf\uff0c\u5b83\u5e76\u4e0d\u63d0\u4f9b\u5173\u4e8e\u6570\u636e\u5206\u5e03\u5f62\u72b6\u7684\u5b8c\u6574\u4fe1\u606f\u3002\u56e0\u6b64\uff0c\u5728\u5206\u6790\u6570\u636e\u65f6\uff0c\u8fd8\u9700\u8981\u7ed3\u5408\u5176\u4ed6\u7edf\u8ba1\u91cf\u548c\u53ef\u89c6\u5316\u65b9\u6cd5\u6765\u5168\u9762\u4e86\u89e3\u6570\u636e\u7684\u7279\u5f81\u3002

"},{"location":"R/other%20packages/package-e1071/#kurtosis","title":"kurtosis()","text":"

^6c120d

\u5728R\u8bed\u8a00\u4e2d\uff0ckurtosis()\u51fd\u6570\u662fe1071\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u6570\u636e\u7684\u5cf0\u5ea6\u7cfb\u6570\u3002\u5cf0\u5ea6\u7cfb\u6570\u662f\u63cf\u8ff0\u6570\u636e\u5206\u5e03\u5f62\u6001\u9661\u7f13\u7a0b\u5ea6\u7684\u7edf\u8ba1\u91cf\uff0c\u5176\u8ba1\u7b97\u516c\u5f0f\u4e3a\u6837\u672c\u7684\u56db\u9636\u77e9\u9664\u4ee5\u6837\u672c\u7684\u4e8c\u9636\u77e9\u7684\u5e73\u65b9\u3002

\u51fd\u6570\u5b9a\u4e49\uff1akurtosis(x, corrected = TRUE)

\u53c2\u6570\u4ecb\u7ecd\uff1a

  • x: \u5f85\u8ba1\u7b97\u5cf0\u5ea6\u7cfb\u6570\u7684\u6570\u636e\u3002
  • corrected: \u662f\u5426\u8fdb\u884c\u4fee\u6b63\uff0c\u9ed8\u8ba4\u4e3aTRUE\u3002\u5982\u679c\u4e3aTRUE\uff0c\u5219\u8ba1\u7b97\u5cf0\u5ea6\u7cfb\u6570\u65f6\u8fdb\u884c\u6837\u672c\u6807\u51c6\u5316\uff0c\u5373\u9664\u4ee5\uff08n-1\uff09\u548c\uff08n-2\uff09\u7684\u7ec4\u5408\u6570\uff0c\u5176\u4e2dn\u4e3a\u6837\u672c\u6570\u91cf\u3002\u5982\u679c\u4e3aFALSE\uff0c\u5219\u76f4\u63a5\u8ba1\u7b97\u539f\u59cb\u6570\u636e\u7684\u5cf0\u5ea6\u7cfb\u6570\u3002

\u4e3e\u4f8b\uff1a

\u5047\u8bbe\u6211\u4eec\u6709\u4e00\u4e2a\u540d\u4e3adata\u7684\u6570\u636e\u6846\uff0c\u5176\u4e2d\u5305\u542b\u4e00\u4e9b\u6570\u503c\u6570\u636e\u3002\u8981\u8ba1\u7b97\u8fd9\u4e9b\u6570\u636e\u7684\u5cf0\u5ea6\u7cfb\u6570\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a

r\u590d\u5236\u4ee3\u7801# \u5bfc\u5165e1071\u5305  library(e1071)    # \u8ba1\u7b97\u5cf0\u5ea6\u7cfb\u6570  data <- c(2, 4, 6, 8, 10)  result <- kurtosis(data)  print(result)\n

\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a

\u590d\u5236\u4ee3\u7801[1] 1.75\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528kurtosis()\u51fd\u6570\u8ba1\u7b97\u4e86\u6570\u636edata\u7684\u5cf0\u5ea6\u7cfb\u6570\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728result\u53d8\u91cf\u4e2d\u3002\u6700\u540e\uff0c\u6211\u4eec\u4f7f\u7528print()\u51fd\u6570\u8f93\u51fa\u7ed3\u679c\u3002\u7531\u4e8e\u6570\u636edata\u53ea\u67095\u4e2a\u6837\u672c\uff0c\u56e0\u6b64\u8ba1\u7b97\u51fa\u7684\u5cf0\u5ea6\u7cfb\u6570\u4e3a1.75\u3002

"},{"location":"R/other%20packages/package-gvlma/","title":"Package gvlma","text":"

\"gvlma\" \u662f\u4e00\u4e2aR\u5305\uff0c\u63d0\u4f9b\u4e86\u5bf9\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u8fdb\u884c\u5168\u9762\u8bca\u65ad\u548c\u8bc4\u4f30\u7684\u529f\u80fd\u3002\u5b83\u5305\u542b\u4e86\u591a\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u68c0\u9a8c\u56de\u5f52\u6a21\u578b\u7684\u5404\u79cd\u5047\u8bbe\u548c\u8bca\u65ad\u6a21\u578b\u7684\u5408\u9002\u6027\u3002\u4ee5\u4e0b\u662f\"gvlma\"\u5305\u4e2d\u4e00\u4e9b\u4e3b\u8981\u7684\u529f\u80fd\u51fd\u6570\u7684\u4ecb\u7ecd\uff1a

  1. gvlma(): \u8fd9\u662f\"gvlma\"\u5305\u7684\u4e3b\u8981\u51fd\u6570\uff0c\u7528\u4e8e\u6267\u884c\u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\u8bca\u65ad\u3002\u5b83\u53ef\u4ee5\u5bf9\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u51e0\u4e2a\u91cd\u8981\u5047\u8bbe\u8fdb\u884c\u68c0\u9a8c\uff0c\u5305\u62ec\u7ebf\u6027\u5173\u7cfb\u3001\u6b63\u6001\u6027\u3001\u540c\u65b9\u5dee\u6027\u548c\u72ec\u7acb\u6027\u3002\u8be5\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u591a\u4e2a\u8bca\u65ad\u7edf\u8ba1\u91cf\u548cp\u503c\u7684\u62a5\u544a\u3002

  2. plot.gvlma(): \u8fd9\u4e2a\u51fd\u6570\u7528\u4e8e\u7ed8\u5236\"gvlma()\"\u51fd\u6570\u7684\u7ed3\u679c\u62a5\u544a\u3002\u5b83\u53ef\u4ee5\u751f\u6210\u4e00\u4e2a\u56fe\u5f62\u5316\u7684\u53ef\u89c6\u5316\u8bca\u65ad\uff0c\u5e2e\u52a9\u7528\u6237\u7406\u89e3\u6a21\u578b\u7684\u95ee\u9898\u548c\u5047\u8bbe\u7684\u8fdd\u53cd\u60c5\u51b5\u3002

  3. summary.gvlma(): \u8fd9\u4e2a\u51fd\u6570\u7528\u4e8e\u603b\u7ed3\"gvlma()\"\u51fd\u6570\u7684\u7ed3\u679c\u62a5\u544a\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u66f4\u7b80\u6d01\u7684\u6458\u8981\uff0c\u5305\u542b\u4e86\u5404\u4e2a\u8bca\u65ad\u7edf\u8ba1\u91cf\u3001p\u503c\u548c\u8bca\u65ad\u7ed3\u8bba\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u4e86\u89e3\u6a21\u578b\u7684\u95ee\u9898\u3002

\u8fd9\u4e9b\u51fd\u6570\u7684\u7ed3\u5408\u4f7f\u7528\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u8bc4\u4f30\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u5408\u9002\u6027\uff0c\u5e76\u68c0\u6d4b\u6a21\u578b\u4e2d\u53ef\u80fd\u5b58\u5728\u7684\u95ee\u9898\uff0c\u4f8b\u5982\u975e\u7ebf\u6027\u5173\u7cfb\u3001\u5f02\u65b9\u5dee\u6027\u3001\u591a\u91cd\u5171\u7ebf\u6027\u7b49\u3002\u901a\u8fc7\u4f7f\u7528\"gvlma\"\u5305\uff0c\u7528\u6237\u53ef\u4ee5\u66f4\u5168\u9762\u5730\u8bc4\u4f30\u6a21\u578b\u7684\u5047\u8bbe\uff0c\u5e76\u91c7\u53d6\u5fc5\u8981\u7684\u63aa\u65bd\u6765\u6539\u8fdb\u6a21\u578b\u7684\u62df\u5408\u548c\u89e3\u91ca\u80fd\u529b\u3002

\u8bf7\u6ce8\u610f\uff0c\u4e3a\u4e86\u4f7f\u7528\"gvlma\"\u5305\uff0c\u60a8\u9700\u8981\u9996\u5148\u5b89\u88c5\u8be5\u5305\u5e76\u52a0\u8f7d\u5230R\u73af\u5883\u4e2d\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u5305\uff1a

install.packages(\"gvlma\")\n
\u7136\u540e\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u52a0\u8f7d\u5305\uff1a
library(gvlma)\n

\u63a5\u4e0b\u6765\uff0c\u60a8\u53ef\u4ee5\u8c03\u7528\u4e0a\u8ff0\u51fd\u6570\u6765\u6267\u884c\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u8bca\u65ad\u548c\u8bc4\u4f30\u3002\u5982\u9700\u66f4\u8be6\u7ec6\u7684\u4f7f\u7528\u8bf4\u660e\u548c\u51fd\u6570\u9009\u9879\uff0c\u8bf7\u53c2\u8003\"gvlma\"\u5305\u7684\u5b98\u65b9\u6587\u6863\u548c\u793a\u4f8b\u3002

"},{"location":"R/other%20packages/package-infer/","title":"Package infer","text":"

infer \u5305\u662f\u4e00\u6b3e\u73b0\u4ee3\u5316\u7684\u7edf\u8ba1\u63a8\u65ad\u5305\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u5957\u7edf\u4e00\u7684\u8bed\u6cd5\u6765\u6267\u884c\u5047\u8bbe\u68c0\u9a8c\u548c\u7f6e\u4fe1\u533a\u95f4\u4f30\u8ba1\uff0c\u7279\u522b\u6ce8\u91cd\u968f\u673a\u6a21\u62df\u548c\u7f6e\u6362\u6d4b\u8bd5\u3002

"},{"location":"R/other%20packages/package-infer/#inferprop_test","title":"infer::prop_test()","text":"

^8af298

"},{"location":"R/other%20packages/package-infer/#_1","title":"\u5217\u8868\u5185\u5bb9","text":"

prop_test() \u51fd\u6570\u7684\u8f93\u51fa\u662f\u4e00\u4e2a\u5305\u542b\u68c0\u9a8c\u7ed3\u679c\u7684\u5217\u8868\uff0c\u901a\u5e38\u5305\u62ec\u4ee5\u4e0b\u7ec4\u4ef6\uff1a - statistic: \u68c0\u9a8c\u7edf\u8ba1\u91cf\u7684\u503c\u3002 - chisq_df\uff1a? - p_value: \u68c0\u9a8c\u7684 p \u503c\u3002 - alternative: \u6307\u5b9a\u7684\u5907\u62e9\u5047\u8bbe\u7c7b\u578b\u3002 - lower_ci\uff1a? - upper_ci\uff1a? - estimate: \u6837\u672c\u4e2d\u6210\u529f\u4e8b\u4ef6\u7684\u6bd4\u4f8b\u4f30\u8ba1\u3002 - null.value: \u5728\u96f6\u5047\u8bbe\u4e0b\u7684\u6bd4\u4f8b\u503c\u3002

  • method: \u6240\u4f7f\u7528\u68c0\u9a8c\u7684\u65b9\u6cd5\u63cf\u8ff0\u3002

prop_test() \u51fd\u6570\u4e3b\u8981\u7528\u6765\u8fdb\u884c\u6bd4\u4f8b\u7684\u5047\u8bbe\u68c0\u9a8c\uff0c\u5b83\u53ef\u4ee5\u7528\u6765\u68c0\u9a8c\u4e00\u4e2a\u6837\u672c\u6bd4\u4f8b\u662f\u5426\u7b49\u4e8e\u67d0\u4e2a\u6307\u5b9a\u7684\u503c\uff08\u5355\u6837\u672c\u6bd4\u4f8b\u68c0\u9a8c\uff09\uff0c\u6216\u8005\u6bd4\u8f83\u4e24\u4e2a\u72ec\u7acb\u6837\u672c\u7684\u6bd4\u4f8b\uff08\u4e24\u4e2a\u6837\u672c\u6bd4\u4f8b\u7684\u68c0\u9a8c\uff09\u3002

\u51fd\u6570\u5b9a\u4e49\u901a\u5e38\u5982\u4e0b\uff1a

prop_test(x, success = NULL, p = NULL, alternative = c(\"two-sided\", \"greater\", \"less\"), ...)\n

  • x: \u4e00\u4e2a\u56e0\u5b50\u3001\u903b\u8f91\u3001\u6574\u6570\u6216\u6570\u503c\u5411\u91cf\u3002\u5728\u4e24\u4e2a\u6bd4\u4f8b\u8fdb\u884c\u6bd4\u8f83\u65f6\uff0cx \u662f\u4e00\u4e2a\u56e0\u5b50\uff0c\u4ee3\u8868\u5206\u7ec4\u53d8\u91cf\u3002

  • response\uff1a\u5982\u679cx\u662f\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u8fd9\u91cc\u9700\u8981\u6307\u5b9a\u5bf9\u8c61\u3002

    prop_test(data_q4, response = have_children,success = \"Yes\") # Yes\u4f5c\u4e3a\u6210\u529f\u4e8b\u4ef6\n

  • success: \u7528\u6765\u6307\u5b9a\u54ea\u4e2a\u6c34\u5e73\u4f5c\u4e3a\u201c\u6210\u529f\u201d\u7684\u4e8b\u4ef6\u3002\u5728\u4e24\u4e2a\u6bd4\u4f8b\u8fdb\u884c\u6bd4\u8f83\u65f6\uff0csuccess \u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u957f\u5ea6\u4e3a 1\u3002

  • p: \u96f6\u5047\u8bbe\u4e0b\u7684\u6bd4\u4f8b\u503c\u3002\u5728\u4e24\u4e2a\u6bd4\u4f8b\u8fdb\u884c\u6bd4\u8f83\u65f6\uff0cp \u4e0d\u9700\u8981\u6307\u5b9a\u3002

  • alternative: \u4e00\u4e2a\u5b57\u7b26\u5b57\u7b26\u4e32\uff0c\u6307\u5b9a\u5907\u62e9\u5047\u8bbe\u7684\u7c7b\u578b\u3002\u53ef\u4ee5\u662f \"two-sided\"\u3001\"greater\" \u6216 \"less\"\u3002

  • ...: \u5176\u4ed6\u53ef\u80fd\u7684\u53c2\u6570\uff0c\u4f8b\u5982\u6570\u636e\u96c6\uff08\u4f7f\u7528 data \u53c2\u6570\uff09\u3002

"},{"location":"R/other%20packages/package-infer/#_2","title":"\u4e3e\u4f8b","text":"

\u5047\u8bbe\u6211\u4eec\u6709\u4e00\u7ec4\u6570\u636e\uff0c\u8bb0\u5f55\u4e86100\u4e2a\u4eba\u4e2d\u662f\u5426\u5438\u70df\u7684\u60c5\u51b5\uff0c\u5176\u4e2d\u670970\u4e2a\u4eba\u5438\u70df\u3002\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528prop_test()\u51fd\u6570\u6765\u8fdb\u884c\u6bd4\u4f8b\u68c0\u9a8c\uff0c\u5224\u65ad\u5438\u70df\u8005\u5728\u603b\u4f53\u4e2d\u7684\u6bd4\u4f8b\u662f\u5426\u663e\u8457\u4e0d\u540c\u4e8e\u4e00\u4e2a\u7279\u5b9a\u7684\u6bd4\u4f8b\u3002

\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u5c06\u6570\u636e\u8f6c\u6362\u4e3a\u4e8c\u9879\u5f0f\u6570\u636e\uff0c\u5373\u5c06\u5438\u70df\u8005\u8bb0\u4e3a1\uff0c\u975e\u5438\u70df\u8005\u8bb0\u4e3a0\u3002\u7136\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528prop_test()\u51fd\u6570\u8fdb\u884c\u6bd4\u4f8b\u68c0\u9a8c\u3002

library(infer)\n\n# \u521b\u5efa\u6570\u636e\nsmokers <- rep(1, 70)\nnonsmokers <- rep(0, 30)\ndata <- c(smokers, nonsmokers)\n\n# \u8fdb\u884c\u6bd4\u4f8b\u68c0\u9a8c\nprop_test(data, ~ response == 1, null = 0.5, alternative = \"twosided\")\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cresponse\u53c2\u6570\u6307\u5b9a\u4e86\u4e8c\u9879\u5f0f\u6570\u636e\u4e2d\u8868\u793a\u5438\u70df\u8005\u7684\u53d8\u91cf\u3002\u6211\u4eec\u4f7f\u7528formula\u8bed\u6cd5~ response == 1\u6765\u6307\u5b9aresponse\u53d8\u91cf\u4e3a1\u8868\u793a\u5438\u70df\u8005\u3002

\u5728prop_test()\u51fd\u6570\u4e2d\uff0c\u6211\u4eec\u8fd8\u9700\u8981\u6307\u5b9anull\u53c2\u6570\u6765\u8868\u793a\u6211\u4eec\u8981\u68c0\u9a8c\u7684\u6bd4\u4f8b\u503c\uff0c\u8fd9\u91cc\u6211\u4eec\u5047\u8bbe\u4e3a0.5\u3002alternative\u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u68c0\u9a8c\u7684\u65b9\u5411\uff0c\u8fd9\u91cc\u6211\u4eec\u9009\u62e9\"twosided\"\u8868\u793a\u53cc\u4fa7\u68c0\u9a8c\u3002

\u51fd\u6570\u7684\u8f93\u51fa\u7ed3\u679c\u5c06\u63d0\u4f9b\u6bd4\u4f8b\u68c0\u9a8c\u7684\u7edf\u8ba1\u91cf\u548cp\u503c\u7b49\u4fe1\u606f\uff0c\u7528\u4e8e\u8bc4\u4f30\u5438\u70df\u8005\u5728\u603b\u4f53\u4e2d\u7684\u6bd4\u4f8b\u662f\u5426\u663e\u8457\u4e0d\u540c\u4e8e0.5\u3002

"},{"location":"R/other%20packages/package-kableExtra/","title":"package kableExtra","text":""},{"location":"R/other%20packages/package-kableExtra/#kable_styling","title":"kable_styling()","text":"

^cf2b37

kable()\u7684\u7ed3\u679c

kable() %>% kable_styling()

\u5728 R \u8bed\u8a00\u4e2d\uff0ckable_styling() \u51fd\u6570\u901a\u5e38\u4e0e kable() \u51fd\u6570\u4e00\u8d77\u4f7f\u7528\uff0c\u7528\u4e8e\u6dfb\u52a0\u8868\u683c\u7684\u6837\u5f0f\u3002\u8fd9\u4e2a\u51fd\u6570\u5c5e\u4e8e knitr \u5305\u7684\u6269\u5c55\u5305 kableExtra\u3002

\u4ee5\u4e0b\u662f kable_styling() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6240\u5c5e\u5305\uff1a kableExtra

\u5b9a\u4e49\uff1a

kableExtra::kable_styling(kable_input, ...)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - kable_input\uff1akable() \u51fd\u6570\u7684\u8f93\u51fa\uff0c\u5373\u5e0c\u671b\u6dfb\u52a0\u6837\u5f0f\u7684\u8868\u683c\u3002 - ...\uff1a\u5176\u4ed6\u8bbe\u7f6e\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u8868\u683c\u7684\u6837\u5f0f\u3002

\u529f\u80fd\uff1a \u4e3a\u4f7f\u7528 kable() \u51fd\u6570\u521b\u5efa\u7684\u8868\u683c\u6dfb\u52a0\u6837\u5f0f\u3002

\u4e3e\u4f8b\uff1a

library(knitr)\nlibrary(kableExtra)\n\n# \u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u6846\ndata <- data.frame(\n  Name = c(\"Alice\", \"Bob\", \"Charlie\"),\n  Age = c(25, 30, 22),\n  Score = c(95, 89, 75)\n)\n\n# \u4f7f\u7528 kable() \u51fd\u6570\u521b\u5efa\u8868\u683c\nkable_table <- kable(data, format = \"html\", caption = \"Sample Table\")\n\n# \u4f7f\u7528 kable_styling() \u6dfb\u52a0\u6837\u5f0f\nstyled_table <- kable_styling(kable_table, full_width = FALSE, bootstrap_options = \"striped\")\n\n# \u6253\u5370\u7ed3\u679c\nprint(styled_table)\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u9996\u5148\u4f7f\u7528 kable() \u51fd\u6570\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u8868\u683c\uff0c\u7136\u540e\u4f7f\u7528 kable_styling() \u51fd\u6570\u6dfb\u52a0\u6837\u5f0f\u3002full_width = FALSE \u8868\u793a\u8868\u683c\u4e0d\u5360\u6ee1\u6574\u4e2a\u5bbd\u5ea6\uff0cbootstrap_options = \"striped\" \u8868\u793a\u4f7f\u7528 Bootstrap \u7684\u6761\u7eb9\u6837\u5f0f\u3002\u8f93\u51fa\u662f\u4e00\u4e2a\u5e26\u6709\u6837\u5f0f\u7684 HTML \u8868\u683c\u3002

"},{"location":"R/other%20packages/package-knitr/","title":"Package knitr","text":""},{"location":"R/other%20packages/package-knitr/#kable","title":"kable()","text":"

^b057f4

\u5728R\u8bed\u8a00\u4e2d\uff0ckable()\u51fd\u6570\u662fknitr\u5305\u4e2d\u63d0\u4f9b\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u6f02\u4eae\u7684\u8868\u683c\u8f93\u51fa\u3002\u5b83\u901a\u5e38\u4e0eR Markdown\u548cknitr\u6587\u6863\u4e00\u8d77\u4f7f\u7528\uff0c\u4ee5\u65b9\u4fbf\u5730\u5c06R\u4ee3\u7801\u548c\u7ed3\u679c\u8f6c\u6362\u4e3a\u53ef\u53d1\u5e03\u7684\u6587\u6863\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

kable(x, format = \"default\", ...)\n

\u53c2\u6570\uff1a - x\uff1a\u8981\u751f\u6210\u8868\u683c\u7684\u5bf9\u8c61\uff0c\u901a\u5e38\u4e3a\u6570\u636e\u6846\u6216\u77e9\u9635\u3002 - format\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u8f93\u51fa\u8868\u683c\u7684\u683c\u5f0f\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u683c\u5f0f\u4e3a\"default\"\uff0c\u8fd8\u6709\u5176\u4ed6\u53ef\u7528\u7684\u683c\u5f0f\uff0c\u5982\"html\", \"latex\"\u7b49\u3002 - ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u8fdb\u4e00\u6b65\u5b9a\u5236\u8868\u683c\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002 1. \u5bf9\u6570\u636e\u6846\u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\uff1a

# \u51c6\u5907\u6570\u636e\ndata <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(\"A\", \"B\", \"C\", \"D\", \"E\"),\n  z = c(TRUE, FALSE, TRUE, FALSE, TRUE)\n)\n\n# \u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\nkable(data)\n

\u8f93\u51fa\uff08\u5728R Markdown\u4e2d\uff09\uff1a

|  x|y |z    |\n|--:|--|:----|\n|  1|A | TRUE|\n|  2|B |FALSE|\n|  3|C | TRUE|\n|  4|D |FALSE|\n|  5|E | TRUE|\n

  1. \u5bf9\u77e9\u9635\u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\uff1a
# \u51c6\u5907\u6570\u636e\nmatrix_data <- matrix(1:9, nrow = 3)\n\n# \u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\nkable(matrix_data)\n

\u8f93\u51fa\uff08\u5728R Markdown\u4e2d\uff09\uff1a

| X1| X2| X3|\n|--:|--:|--:|\n|  1|  4|  7|\n|  2|  5|  8|\n|  3|  6|  9|\n

kable()\u51fd\u6570\u80fd\u591f\u6839\u636e\u5bf9\u8c61\u7684\u7c7b\u578b\u751f\u6210\u76f8\u5e94\u7684\u6f02\u4eae\u8868\u683c\u3002\u5bf9\u4e8e\u6570\u636e\u6846\uff0c\u5b83\u4f1a\u751f\u6210\u683c\u5f0f\u6574\u9f50\u7684\u8868\u683c\u3002\u5bf9\u4e8e\u77e9\u9635\uff0c\u5b83\u4f1a\u5c06\u77e9\u9635\u7684\u884c\u548c\u5217\u8f6c\u6362\u4e3a\u8868\u683c\u3002

\u8bf7\u6ce8\u610f\uff0ckable()\u51fd\u6570\u7684\u8f93\u51fa\u683c\u5f0f\u53d6\u51b3\u4e8e\u6240\u9009\u7684\u683c\u5f0f\u53c2\u6570\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u9009\u62e9\u9002\u5408\u7684\u683c\u5f0f\u6765\u751f\u6210\u4e0d\u540c\u7c7b\u578b\u7684\u8868\u683c\uff0c\u5982HTML\u683c\u5f0f\u3001LaTeX\u683c\u5f0f\u7b49\u3002

\u6b64\u5916\uff0ckable()\u51fd\u6570\u8fd8\u652f\u6301\u5176\u4ed6\u53c2\u6570\uff0c\u5982caption\u7528\u4e8e\u6dfb\u52a0\u8868\u683c\u6807\u9898\u3001align\u7528\u4e8e\u6307\u5b9a\u8868\u683c\u5217\u7684\u5bf9\u9f50\u65b9\u5f0f\u7b49\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8fdb\u4e00\u6b65\u5b9a\u5236\u8868\u683c\u7684\u5916\u89c2\u548c\u6837\u5f0f\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3kable()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u8bf7\u6ce8\u610f\uff0cknitr\u5305\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u529f\u80fd\uff0c\u5982\u66f4\u9ad8\u7ea7\u7684\u8868\u683c\u5b9a\u5236\u548c\u6dfb\u52a0\u8868\u683c\u811a\u6ce8\u7b49\u3002\u60a8\u53ef\u4ee5\u67e5\u9605knitr\u5305\u7684\u6587\u6863\u4ee5\u83b7\u53d6\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\u3002

"},{"location":"R/other%20packages/package-lubridate/","title":"Package lubridate","text":""},{"location":"R/other%20packages/package-lubridate/#lubridatemdy","title":"lubridate::mdy()","text":"

^c21a07

\u5c06\u65e5\u671f\u5b57\u7b26\u4e32\u89e3\u6790\u4e3a\u65e5\u671f\u5bf9\u8c61\u3002

\u5b9a\u4e49\uff1a

lubridate::mdy(date_string)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - date_string\uff1a\u65e5\u671f\u5b57\u7b26\u4e32\uff0c\u683c\u5f0f\u4e3a \"Month Day, Year\"\uff0c\u4f8b\u5982 \"January 1, 2022\"\u3002

\u4e3e\u4f8b\uff1a

library(lubridate)\n\n# \u4f7f\u7528 mdy() \u89e3\u6790\u65e5\u671f\u5b57\u7b26\u4e32\ndate <- mdy(\"January 1, 2022\")\n\n# \u6253\u5370\u7ed3\u679c\nprint(date)\n

\u8f93\u51fa\uff1a

[1] \"2022-01-01\"\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cmdy() \u51fd\u6570\u7528\u4e8e\u5c06\u65e5\u671f\u5b57\u7b26\u4e32 \"January 1, 2022\" \u89e3\u6790\u4e3a\u65e5\u671f\u5bf9\u8c61\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u5305\u542b\u65e5\u671f\u4fe1\u606f\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u5728 R \u4e2d\u8fdb\u884c\u65e5\u671f\u76f8\u5173\u7684\u64cd\u4f5c\u3002

"},{"location":"R/other%20packages/package-pander/","title":"Package pander","text":""},{"location":"R/other%20packages/package-pander/#pander","title":"pander()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cpander()\u51fd\u6570\u662fpander\u5305\u63d0\u4f9b\u7684\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u7528\u4e8e\u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\u548c\u62a5\u544a\u3002\u5b83\u53ef\u4ee5\u5e94\u7528\u4e8e\u5404\u79cd\u5bf9\u8c61\uff0c\u5982\u6570\u636e\u6846\u3001\u7ebf\u6027\u6a21\u578b\u3001\u7edf\u8ba1\u6458\u8981\u7b49\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

pander(..., style = \"default\", ...)\n
\u53c2\u6570\uff1a - ...\uff1a\u8981\u751f\u6210\u62a5\u544a\u6216\u8868\u683c\u7684\u5bf9\u8c61\uff0c\u5982\u6570\u636e\u6846\u3001\u7ebf\u6027\u6a21\u578b\u3001\u7edf\u8ba1\u6458\u8981\u7b49\u3002 - style\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u62a5\u544a\u6216\u8868\u683c\u7684\u6837\u5f0f\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6837\u5f0f\u4e3a\"default\"\uff0c\u8fd8\u6709\u5176\u4ed6\u53ef\u7528\u7684\u6837\u5f0f\uff0c\u5982\"grid\", \"rmarkdown\", \"html\"\u7b49\u3002

  1. \u5bf9\u6570\u636e\u6846\u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\uff1a
# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  x = c(1, 2, 3, 4, 5),\n  y = c(\"A\", \"B\", \"C\", \"D\", \"E\"),\n  z = c(TRUE, FALSE, TRUE, FALSE, TRUE)\n)\n\n# \u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\npander(data)\n

\u8f93\u51fa\uff1a

| x | y |  z   |\n|:-:|:-:|:----:|\n| 1 | A | TRUE |\n| 2 | B |FALSE |\n| 3 | C | TRUE |\n| 4 | D |FALSE |\n| 5 | E | TRUE |\n

  1. \u5bf9\u7ebf\u6027\u6a21\u578b\u751f\u6210\u6f02\u4eae\u7684\u62a5\u544a\uff1a
# \u521b\u5efa\u4e00\u4e2a\u7ebf\u6027\u6a21\u578b\nmodel <- lm(mpg ~ cyl + hp, data = mtcars)\n\n# \u751f\u6210\u6f02\u4eae\u7684\u62a5\u544a\npander(model)\n

\u8f93\u51fa\uff1a

--------------------------------------------------------------\n         &nbsp;                   Est.   S.E.   t val.   p\n------------------------- ---------- ------ ------- ------\n        **(Intercept)**       37.88   2.07    18.26   0.00 \n\n              **cyl**          -2.88   0.32    -8.92   0.00 \n\n               **hp**          -0.03   0.01    -2.61   0.01 \n\n--------------------------------------------------------------\n

pander()\u51fd\u6570\u6839\u636e\u5bf9\u8c61\u7684\u7c7b\u578b\u751f\u6210\u76f8\u5e94\u7684\u6f02\u4eae\u8868\u683c\u6216\u62a5\u544a\u3002\u5bf9\u4e8e\u6570\u636e\u6846\uff0c\u5b83\u4f1a\u751f\u6210\u683c\u5f0f\u6574\u9f50\u7684\u8868\u683c\u3002\u5bf9\u4e8e\u7ebf\u6027\u6a21\u578b\uff0c\u5b83\u4f1a\u751f\u6210\u5305\u542b\u4f30\u8ba1\u503c\u3001\u6807\u51c6\u8bef\u5dee\u3001t\u503c\u548cp\u503c\u7684\u62a5\u544a\u3002

\u8bf7\u6ce8\u610f\uff0cpander()\u51fd\u6570\u7684\u8f93\u51fa\u6837\u5f0f\u53d6\u51b3\u4e8e\u6240\u9009\u7684\u6837\u5f0f\u53c2\u6570\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u9009\u62e9\u9002\u5408\u7684\u6837\u5f0f\u6765\u751f\u6210\u6f02\u4eae\u7684\u8868\u683c\u548c\u62a5\u544a\u3002

\u5e0c\u671b\u8fd9\u4e9b\u793a\u4f8b\u80fd\u5e2e\u52a9\u60a8\u7406\u89e3pander()\u51fd\u6570\u7684\u7528\u6cd5\u548c\u529f\u80fd\u3002\u8bf7\u6ce8\u610f\uff0cpander\u5305\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u529f\u80fd\uff0c\u5982\u81ea\u5b9a\u4e49\u8868\u683c\u6837\u5f0f\u3001\u6dfb\u52a0\u6807\u9898\u548c\u811a\u6ce8\u7b49\u3002\u60a8\u53ef\u4ee5\u67e5\u9605pander\u5305\u7684\u6587\u6863\u4ee5\u83b7\u53d6\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\u3002

"},{"location":"R/other%20packages/package-readxl/","title":"Package readxl","text":""},{"location":"R/other%20packages/package-readxl/#read_excel","title":"read_excel()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0creadxl \u5305\u4e2d\u7684 read_excel() \u51fd\u6570\u7528\u4e8e\u8bfb\u53d6 Excel \u6587\u4ef6\u6570\u636e\u3002\u5b83\u63d0\u4f9b\u4e86\u7075\u6d3b\u7684\u529f\u80fd\uff0c\u53ef\u4ee5\u4ece Excel \u6587\u4ef6\u4e2d\u8bfb\u53d6\u4e0d\u540c\u7684\u5de5\u4f5c\u8868\u3001\u6307\u5b9a\u8bfb\u53d6\u7684\u884c\u5217\u8303\u56f4\uff0c\u4ee5\u53ca\u5904\u7406\u65e5\u671f\u548c\u65f6\u95f4\u6570\u636e\u7b49\u3002\u4e0b\u9762\u662f\u5bf9 read_excel() \u51fd\u6570\u7684\u53c2\u6570\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\u548c\u4e3e\u4f8b\uff1a

\u51fd\u6570\u8bed\u6cd5\uff1a

read_excel(path, sheet = 1, range = NULL, col_names = TRUE, col_types = NULL, na = \"\", trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress(), .name_repair = \"unique\", .xlsx_format(path))\n

\u53c2\u6570\u8bf4\u660e\uff1a - path\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u8868\u793a Excel \u6587\u4ef6\u7684\u8def\u5f84\u6216 URL\u3002 - sheet\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u6574\u6570\uff0c\u8868\u793a\u8981\u8bfb\u53d6\u7684\u5de5\u4f5c\u8868\u540d\u79f0\u6216\u7d22\u5f15\u3002\u9ed8\u8ba4\u4e3a 1\uff0c\u8868\u793a\u8bfb\u53d6\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u8868\u3002 - range\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u8868\u793a\u8981\u8bfb\u53d6\u7684\u5355\u5143\u683c\u8303\u56f4\u3002\u683c\u5f0f\u4e3a \"A1:B10\"\uff0c\u5176\u4e2d \"A1\" \u8868\u793a\u8d77\u59cb\u5355\u5143\u683c\uff0c\"B10\" \u8868\u793a\u7ed3\u675f\u5355\u5143\u683c\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u8bfb\u53d6\u6574\u4e2a\u5de5\u4f5c\u8868\u3002 - col_names\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\u6216\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u8bfb\u53d6\u5217\u540d\u3002\u5982\u679c\u4e3a TRUE\uff0c\u5219\u8bfb\u53d6\u5217\u540d\uff1b\u5982\u679c\u4e3a FALSE\uff0c\u5219\u4e0d\u8bfb\u53d6\u5217\u540d\uff1b\u5982\u679c\u4e3a\u5b57\u7b26\u5411\u91cf\uff0c\u5219\u6307\u5b9a\u81ea\u5b9a\u4e49\u7684\u5217\u540d\u3002\u9ed8\u8ba4\u4e3a TRUE\u3002 - col_types\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u5217\u7684\u6570\u636e\u7c7b\u578b\u3002\u4f8b\u5982\uff0c\"numeric\" \u8868\u793a\u6570\u503c\u578b\uff0c\"character\" \u8868\u793a\u5b57\u7b26\u578b\uff0c\"date\" \u8868\u793a\u65e5\u671f\u578b\u3002\u9ed8\u8ba4\u4e3a NULL\uff0c\u8868\u793a\u81ea\u52a8\u63a8\u65ad\u6570\u636e\u7c7b\u578b\u3002 - na\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u8868\u793a Excel \u4e2d\u7528\u4e8e\u8868\u793a\u7f3a\u5931\u503c\u7684\u5b57\u7b26\u3002\u9ed8\u8ba4\u4e3a \"\"\uff0c\u8868\u793a\u7a7a\u5b57\u7b26\u4e32\u3002 - trim_ws\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u53bb\u9664\u5355\u5143\u683c\u4e2d\u7684\u524d\u5bfc\u548c\u5c3e\u968f\u7a7a\u683c\u3002\u9ed8\u8ba4\u4e3a TRUE\u3002 - skip\uff1a\u4e00\u4e2a\u6574\u6570\uff0c\u8868\u793a\u8df3\u8fc7\u8bfb\u53d6\u7684\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a 0\uff0c\u8868\u793a\u4e0d\u8df3\u8fc7\u4efb\u4f55\u884c\u3002 - n_max\uff1a\u4e00\u4e2a\u6b63\u6574\u6570\uff0c\u8868\u793a\u8bfb\u53d6\u7684\u6700\u5927\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a Inf\uff0c\u8868\u793a\u8bfb\u53d6\u6240\u6709\u884c\u3002 - guess_max\uff1a\u4e00\u4e2a\u6b63\u6574\u6570\uff0c\u8868\u793a\u7528\u4e8e\u81ea\u52a8\u63a8\u65ad\u5217\u7c7b\u578b\u7684\u6700\u5927\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a min(1000, n_max)\uff0c\u5373\u6700\u591a\u4f7f\u7528 1000 \u884c\u8fdb\u884c\u7c7b\u578b\u63a8\u65ad\u3002 - progress\uff1a\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u663e\u793a\u8bfb\u53d6\u8fdb\u5ea6\u7684\u56de\u8c03\u51fd\u6570\u3002\u9ed8\u8ba4\u4e3a show_progress()\u3002 - .name_repair\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u5217\u540d\u4fee\u590d\u7b56\u7565\u3002\u9ed8\u8ba4\u4e3a \"unique\"\uff0c\u8868\u793a\u81ea\u52a8\u4fee\u590d\u51b2\u7a81\u7684\u5217\u540d\u3002 - .xlsx_format\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u8868\u793a Excel \u6587\u4ef6\u7684\u683c\u5f0f\u3002\u9ed8\u8ba4\u4e3a .xlsx_format(path)\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u6846\uff0c\u5305\u542b\u4ece Excel \u6587\u4ef6\u8bfb\u53d6\u7684\u6570\u636e\u3002

\u793a\u4f8b\uff1a \u4e0b\u9762\u662f\u4f7f\u7528 read_excel() \u51fd\u6570\u8bfb\u53d6 Excel \u6587\u4ef6\u6570\u636e\u7684\u793a\u4f8b\uff1a

# \u5b89\u88c5\u5e76\u52a0\u8f7d readxl \u5305\ninstall.packages(\"readxl\")\nlibrary(readxl)\n\n# \u8bfb\u53d6 Excel \u6587\u4ef6\u4e2d\u7684\u6570\u636e\ndata <- read_excel(\"path/to/file.xlsx\", sheet = \"Sheet1\", range = \"A1:B10\")\n\n# \u6253\u5370\u8bfb\u53d6\u7684\u6570\u636e\nprint(data)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5b89\u88c5\u5e76\u52a0\u8f7d\u4e86 readxl \u5305\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528 read_excel() \u51fd\u6570\u8bfb\u53d6 Excel \u6587\u4ef6\u4e2d\u7684\u6570\u636e\uff0c\u6307\u5b9a\u8981\u8bfb\u53d6\u7684\u5de5\u4f5c\u8868\u540d\u79f0\u4e3a \"Sheet1\"\uff0c\u8981\u8bfb\u53d6\u7684\u5355\u5143\u683c\u8303\u56f4\u4e3a \"A1:B10\"\u3002\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u8bfb\u53d6\u7684\u6570\u636e\u3002

\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u53c2\u6570\uff0c\u4f8b\u5982\u6307\u5b9a\u5176\u4ed6\u5de5\u4f5c\u8868\u3001\u81ea\u5b9a\u4e49\u5217\u540d\u3001\u6307\u5b9a\u6570\u636e\u7c7b\u578b\u7b49\u3002\u6839\u636e Excel \u6587\u4ef6\u7684\u7ed3\u6784\u548c\u5185\u5bb9\uff0c\u9002\u5f53\u8c03\u6574\u53c2\u6570\u53ef\u4ee5\u6b63\u786e\u8bfb\u53d6\u548c\u5904\u7406\u6570\u636e\u3002

"},{"location":"R/other%20packages/package-sampling/","title":"Package sampling","text":"

\u62bd\u6837\uff01 \u65e0\u6cd5\u786e\u5b9a\u54ea\u4e2a\u5305\u66f4\u597d\u7528\uff0c\u56e0\u4e3a\u9009\u62e9\u4f7f\u7528\u54ea\u4e2a\u5305\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u9700\u6c42\u548c\u4f7f\u7528\u60c5\u5883\u3002

sampling\u5305\u548cstats\u5305\u90fd\u662fR\u4e2d\u5e38\u7528\u7684\u7edf\u8ba1\u5206\u6790\u76f8\u5173\u7684\u5305\uff0c\u4f46\u5b83\u4eec\u7684\u529f\u80fd\u548c\u8bbe\u8ba1\u76ee\u6807\u7565\u6709\u4e0d\u540c\u3002

  • sampling\u5305\uff1a\u8fd9\u4e2a\u5305\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7528\u4e8e\u62bd\u6837\u7684\u51fd\u6570\u548c\u65b9\u6cd5\u3002\u5b83\u4e13\u6ce8\u4e8e\u5404\u79cd\u62bd\u6837\u65b9\u6cd5\u7684\u5b9e\u73b0\uff0c\u5305\u62ec\u7b80\u5355\u968f\u673a\u62bd\u6837\u3001\u5206\u5c42\u62bd\u6837\u3001\u65e0\u653e\u56de\u62bd\u6837\u7b49\u3002\u5982\u679c\u4f60\u7684\u4e3b\u8981\u4efb\u52a1\u662f\u8fdb\u884c\u62bd\u6837\uff0c\u9009\u62e9sampling\u5305\u53ef\u80fd\u66f4\u9002\u5408\uff0c\u56e0\u4e3a\u5b83\u63d0\u4f9b\u4e86\u9488\u5bf9\u4e0d\u540c\u62bd\u6837\u65b9\u6cd5\u7684\u7279\u5b9a\u51fd\u6570\u548c\u529f\u80fd\u3002

  • stats\u5305\uff1a\u8fd9\u4e2a\u5305\u662fR\u7684\u6838\u5fc3\u7edf\u8ba1\u5206\u6790\u5305\uff0c\u63d0\u4f9b\u4e86\u5e7f\u6cdb\u7684\u7edf\u8ba1\u51fd\u6570\u548c\u65b9\u6cd5\u3002\u5b83\u5305\u62ec\u4e86\u8bb8\u591a\u7ecf\u5178\u7684\u7edf\u8ba1\u65b9\u6cd5\uff0c\u5982\u5047\u8bbe\u68c0\u9a8c\u3001\u56de\u5f52\u5206\u6790\u3001\u65b9\u5dee\u5206\u6790\u7b49\u3002\u5982\u679c\u4f60\u9700\u8981\u8fdb\u884c\u66f4\u4e00\u822c\u7684\u7edf\u8ba1\u5206\u6790\uff0c\u6216\u8005\u4f7f\u7528\u7ecf\u5178\u7684\u7edf\u8ba1\u65b9\u6cd5\uff0cstats\u5305\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u9009\u62e9\uff0c\u56e0\u4e3a\u5b83\u662fR\u4e2d\u6700\u57fa\u672c\u3001\u6700\u5168\u9762\u7684\u7edf\u8ba1\u5206\u6790\u5305\u4e4b\u4e00\u3002

\u8981\u51b3\u5b9a\u4f7f\u7528\u54ea\u4e2a\u5305\uff0c\u4f60\u53ef\u4ee5\u8003\u8651\u4ee5\u4e0b\u56e0\u7d20\uff1a

  • \u5206\u6790\u9700\u6c42\uff1a\u786e\u5b9a\u4f60\u9700\u8981\u8fdb\u884c\u7684\u5177\u4f53\u7edf\u8ba1\u5206\u6790\u4efb\u52a1\u548c\u65b9\u6cd5\u3002\u5982\u679c\u4e3b\u8981\u662f\u62bd\u6837\u76f8\u5173\u7684\u4efb\u52a1\uff0csampling\u5305\u53ef\u80fd\u66f4\u5408\u9002\u3002\u5982\u679c\u9700\u8981\u66f4\u4e00\u822c\u7684\u7edf\u8ba1\u5206\u6790\u529f\u80fd\uff0cstats\u5305\u662f\u66f4\u5e38\u7528\u7684\u9009\u62e9\u3002
  • \u5305\u7684\u529f\u80fd\u548c\u6587\u6863\uff1a\u67e5\u770b\u6bcf\u4e2a\u5305\u7684\u529f\u80fd\u548c\u6587\u6863\uff0c\u4e86\u89e3\u5176\u63d0\u4f9b\u7684\u51fd\u6570\u3001\u65b9\u6cd5\u548c\u53c2\u6570\u3002\u6bd4\u8f83\u5b83\u4eec\u7684\u529f\u80fd\u662f\u5426\u6ee1\u8db3\u4f60\u7684\u9700\u6c42\uff0c\u5e76\u67e5\u9605\u76f8\u5173\u6587\u6863\u4ee5\u4e86\u89e3\u5982\u4f55\u6b63\u786e\u4f7f\u7528\u8fd9\u4e9b\u529f\u80fd\u3002
  • \u793e\u533a\u652f\u6301\u548c\u66f4\u65b0\uff1a\u8003\u8651\u6bcf\u4e2a\u5305\u7684\u6d3b\u8dc3\u7a0b\u5ea6\u3001\u793e\u533a\u652f\u6301\u548c\u6700\u65b0\u66f4\u65b0\u7684\u60c5\u51b5\u3002\u6d3b\u8dc3\u7684\u5f00\u53d1\u8005\u548c\u793e\u533a\u652f\u6301\u53ef\u4ee5\u63d0\u4f9b\u66f4\u597d\u7684\u652f\u6301\u548c\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\u3002

\u6700\u7ec8\uff0c\u9009\u62e9\u4f7f\u7528\u54ea\u4e2a\u5305\u5e94\u8be5\u6839\u636e\u4f60\u7684\u5177\u4f53\u9700\u6c42\u3001\u719f\u6089\u7a0b\u5ea6\u548c\u4e2a\u4eba\u504f\u597d\u6765\u51b3\u5b9a\u3002\u4f60\u4e5f\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u4efb\u52a1\u7684\u8981\u6c42\uff0c\u7ed3\u5408\u4f7f\u7528\u591a\u4e2a\u5305\u6765\u5b8c\u6210\u7edf\u8ba1\u5206\u6790\u5de5\u4f5c\u3002

"},{"location":"R/other%20packages/package-sampling/#cluster","title":"cluster()","text":"

\u6211\u5bf9\u4e4b\u524d\u63d0\u4f9b\u7684\u56de\u7b54\u4e2d\u7684\u51fd\u6570\u7b7e\u540d\u548c\u53c2\u6570\u4ecb\u7ecd\u6709\u8bef\u89e3\uff0c\u8bf7\u63a5\u53d7\u6211\u7684\u9053\u6b49\u3002

\u5728R\u8bed\u8a00\u7684sampling\u5305\u4e2d\uff0c\u786e\u5b9e\u5b58\u5728cluster()\u51fd\u6570\uff0c\u4f46\u5176\u529f\u80fd\u4e0e\u4e4b\u524d\u63d0\u5230\u7684\u805a\u7c7b\u64cd\u4f5c\u65e0\u5173\u3002cluster()\u51fd\u6570\u7528\u4e8e\u521b\u5efa\u4e00\u4e2a\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\uff0c\u6839\u636e\u6307\u5b9a\u7684\u805a\u7c7b\u6807\u8bc6\u548c\u5927\u5c0f\u751f\u6210\u6837\u672c\u3002

\u4ee5\u4e0b\u662fcluster()\u51fd\u6570\u7684\u6b63\u786e\u7684\u8be6\u7ec6\u4ecb\u7ecd\u548c\u793a\u4f8b\uff1a

\u51fd\u6570\u5b9a\u4e49\uff1a

cluster(data, clustername, size, method = c(\"srswor\", \"srswr\", \"poisson\", \"systematic\"), pik, description = FALSE)\n

\u53c2\u6570\uff1a - data\uff1a\u8981\u8fdb\u884c\u62bd\u6837\u7684\u6570\u636e\u96c6\u3002 - clustername\uff1a\u6307\u5b9a\u6570\u636e\u96c6\u4e2d\u7684\u805a\u7c7b\u53d8\u91cf\uff0c\u7528\u4e8e\u5b9a\u4e49\u805a\u7c7b\u62bd\u6837\u5355\u5143\u3002 - size\uff1a\u6307\u5b9a\u6bcf\u4e2a\u805a\u7c7b\u62bd\u6837\u5355\u5143\u4e2d\u7684\u6837\u672c\u5927\u5c0f\u3002 - method\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u62bd\u6837\u65b9\u6cd5\u3002\u9ed8\u8ba4\u4e3a\"srswor\"\uff0c\u8868\u793a\u7b80\u5355\u968f\u673a\u6709\u653e\u56de\u62bd\u6837\uff08SRSWOR\uff09\u3002\u8fd8\u53ef\u4ee5\u9009\u62e9\"srswr\"\uff08\u7b80\u5355\u968f\u673a\u65e0\u653e\u56de\u62bd\u6837\uff09\u3001\"poisson\"\uff08\u6cca\u677e\u62bd\u6837\uff09\u6216 \"systematic\"\uff08\u7cfb\u7edf\u62bd\u6837\uff09\u3002 - pik\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u62bd\u6837\u6982\u7387\u3002\u5f53\u4f7f\u7528\u6cca\u677e\u62bd\u6837\u65b9\u6cd5\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7pik\u53c2\u6570\u6307\u5b9a\u6bcf\u4e2a\u805a\u7c7b\u62bd\u6837\u5355\u5143\u7684\u6982\u7387\u3002 - description\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u8fd4\u56de\u62bd\u6837\u8bbe\u8ba1\u7684\u63cf\u8ff0\u4fe1\u606f\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528cluster()\u51fd\u6570\u521b\u5efa\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\u7684\u793a\u4f8b\uff1a

library(sampling)\n\n# \u793a\u4f8b\uff1a\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\ndata(survey)\n\n# \u521b\u5efa\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\ncluster_design <- cluster(data = survey, clustername = \"PSU\", size = 2, method = \"srswor\")\n\n# \u6253\u5370\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\nprint(cluster_design)\n

\u5728\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7dsampling\u5305\u4f7f\u7528library(sampling)\u3002\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528\u5185\u7f6e\u7684\u6570\u636e\u96c6survey\uff0c\u8be5\u6570\u636e\u96c6\u5305\u542b\u4e86\u5173\u4e8e\u8c03\u67e5\u7684\u4fe1\u606f\u3002

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528cluster()\u51fd\u6570\u521b\u5efa\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\u3002\u6211\u4eec\u6307\u5b9a\u4e86\u8981\u8fdb\u884c\u62bd\u6837\u7684\u6570\u636e\u96c6\u4e3asurvey\uff0c\u805a\u7c7b\u53d8\u91cf\u4e3a\"PSU\"\uff0c\u6bcf\u4e2a\u805a\u7c7b\u62bd\u6837\u5355\u5143\u7684\u6837\u672c\u5927\u5c0f\u4e3a2\uff0c\u62bd\u6837\u65b9\u6cd5\u4e3a\u7b80\u5355\u968f\u673a\u6709\u653e\u56de\u62bd\u6837\uff08SRSWOR\uff09\u3002

\u901a\u8fc7\u6253\u5370cluster_design\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u751f\u6210\u7684\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\u7684\u7ed3\u679c\u3002

\u8bf7\u6ce8\u610f\uff0ccluster()\u51fd\u6570\u548c\u805a\u7c7b\u64cd\u4f5c\u65e0\u5173\uff0c\u5b83\u7528\u4e8e\u521b\u5efa\u805a\u7c7b\u62bd\u6837\u8bbe\u8ba1\uff0c\u6839\u636e\u6307\u5b9a\u7684\u805a\u7c7b\u6807\u8bc6\u548c\u5927\u5c0f\u751f\u6210\u6837\u672c\u3002\u5982\u679c\u60a8\u5bf9\u805a\u7c7b\u64cd\u4f5c\u611f\u5174\u8da3\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u5176\u4ed6\u5305\uff08\u4f8b\u5982dplyr\uff09\u4e2d\u7684\u805a\u7c7b\u51fd\u6570\u3002

"},{"location":"R/other%20packages/package-scales/","title":"Package scales","text":"

cut_width()## cut_width() ^8b9777 \u5728 R \u8bed\u8a00\u4e2d\uff0ccut_width() \u51fd\u6570\u5c5e\u4e8e scales \u5305\uff0c\u7528\u4e8e\u5c06\u8fde\u7eed\u578b\u7684\u53d8\u91cf\u5206\u6210\u6307\u5b9a\u5bbd\u5ea6\u7684\u533a\u95f4\u3002\u8fd9\u4e2a\u51fd\u6570\u5e38\u7528\u4e8e\u7ed8\u56fe\u4e2d\uff0c\u4ee5\u4fbf\u66f4\u597d\u5730\u5c55\u793a\u6570\u636e\u7684\u5206\u5e03\u3002\u8fd4\u56de\u56e0\u5b50\u578b\u53d8\u91cf\u3002

\u4ee5\u4e0b\u662f cut_width() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6240\u5c5e\u5305\uff1a scales

\u5b9a\u4e49\uff1a

scales::cut_width(x, width, boundary = 0, labels = NULL, include.lowest = FALSE, right = TRUE)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u8981\u88ab\u5207\u5272\u7684\u8fde\u7eed\u578b\u53d8\u91cf\u3002

  • width\uff1a\u6bcf\u4e2a\u533a\u95f4\u7684\u5bbd\u5ea6\u3002

  • boundary\uff1a\u7b2c\u4e00\u4e2a\u533a\u95f4\u7684\u8d77\u59cb\u503c\u3002

  • labels\uff1a\u53ef\u9009\uff0c\u533a\u95f4\u6807\u7b7e\u3002
  • include.lowest\uff1a\u662f\u5426\u5c06\u7b2c\u4e00\u4e2a\u533a\u95f4\u7684\u5de6\u8fb9\u754c\u5305\u542b\u5728\u5185\u3002
  • right\uff1a\u662f\u5426\u5305\u542b\u53f3\u8fb9\u754c\u3002

\u529f\u80fd\uff1a \u5c06\u8fde\u7eed\u578b\u7684\u53d8\u91cf x \u5206\u6210\u6307\u5b9a\u5bbd\u5ea6\u7684\u533a\u95f4\u3002

\u4e3e\u4f8b\uff1a

library(scales)\n\n# \u521b\u5efa\u4e00\u4e2a\u8fde\u7eed\u578b\u7684\u53d8\u91cf\nvalues <- c(1, 5, 8, 12, 15, 20)\n\n# \u4f7f\u7528 cut_width() \u5c06\u53d8\u91cf\u5206\u6210\u5bbd\u5ea6\u4e3a 5 \u7684\u533a\u95f4\ncut_result <- cut_width(values, width = 5)\n\n# \u6253\u5370\u7ed3\u679c\nprint(cut_result)\n

\u8f93\u51fa\uff1a

[1] [0,5] [0,5] [5,10] [10,15] [15,20] [15,20]\nLevels: [0,5] < [5,10] < [10,15] < [15,20]\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0ccut_width() \u51fd\u6570\u5c06\u8fde\u7eed\u578b\u53d8\u91cf values \u5206\u6210\u4e86\u5bbd\u5ea6\u4e3a 5 \u7684\u533a\u95f4\u3002\u7ed3\u679c\u662f\u4e00\u4e2a\u5e26\u6709\u533a\u95f4\u6807\u7b7e\u7684\u56e0\u5b50\u53d8\u91cf\u3002\u6bcf\u4e2a\u533a\u95f4\u8868\u793a\u4e3a [a, b]\uff0c\u8868\u793a\u533a\u95f4\u7684\u5de6\u95ed\u53f3\u5f00\u533a\u95f4\u3002

"},{"location":"R/other%20packages/package-skimr/","title":"Package skimr","text":""},{"location":"R/other%20packages/package-skimr/#skim","title":"skim()","text":"

^4ba0bb \u5f97\u5230\u4e09\u5f20\u66f4\u8be6\u7ec6\u7684\u7edf\u8ba1\u8868\uff1a 1\uff0c

2\uff0c

3\uff0c

skim() \u51fd\u6570\u5c5e\u4e8e skimr \u5305\uff0c\u7528\u4e8e\u751f\u6210\u6570\u636e\u6846\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e skim() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/other%20packages/package-skimr/#skim_1","title":"skim \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u751f\u6210\u6570\u636e\u6846\u7684\u6458\u8981\u7edf\u8ba1\u4fe1\u606f\u3002

\u6240\u5c5e\u5305\uff1a skim() \u51fd\u6570\u5c5e\u4e8e skimr \u5305\u3002

\u5b9a\u4e49\uff1a

skim(x, ...)\n

"},{"location":"R/other%20packages/package-skimr/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • x\uff1a \u8981\u6458\u8981\u7684\u6570\u636e\u6846\u3001\u6570\u636e\u96c6\u6216\u53d8\u91cf\u3002

  • ...\uff1a \u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u8bbe\u7f6e\u6458\u8981\u7684\u9009\u9879\u3002

"},{"location":"R/other%20packages/package-skimr/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dskimr\u5305\ninstall.packages(\"skimr\")\nlibrary(skimr)\n\n# \u751f\u6210\u6570\u636e\u6846\ndata <- data.frame(\n  ID = 1:10,\n  Age = c(25, 30, 22, 35, 28, 40, 33, 29, 26, 31),\n  Salary = c(50000, 60000, 45000, 70000, 55000, 80000, 65000, 58000, 52000, 61000),\n  Gender = c(\"Male\", \"Female\", \"Male\", \"Male\", \"Female\", \"Male\", \"Female\", \"Female\", \"Male\", \"Female\")\n)\n\n# \u751f\u6210\u6570\u636e\u6458\u8981\nsummary_result <- skim(data)\n\n# \u663e\u793a\u6458\u8981\u4fe1\u606f\nprint(summary_result)\n
"},{"location":"R/other%20packages/package-stargazar/","title":"Package stargazar","text":"

\u7528\u6237\u56fe\u7247\u8f93\u51fa

\u5728R\u8bed\u8a00\u4e2d\uff0cstargazer\u5305\u662f\u4e00\u4e2a\u7528\u4e8e\u751f\u6210\u7edf\u8ba1\u6a21\u578b\u7ed3\u679c\u7684\u6f02\u4eae\u8868\u683c\u7684\u5de5\u5177\u5305\u3002\u5b83\u53ef\u4ee5\u5c06\u5404\u79cd\u7edf\u8ba1\u6a21\u578b\u7684\u7ed3\u679c\u8f93\u51fa\u4e3a\u683c\u5f0f\u5316\u7684\u8868\u683c\uff0c\u4ee5\u4fbf\u4e8e\u5c55\u793a\u548c\u5206\u4eab\u3002 stargazer\u5305\u4e2d\u7684\u51fd\u6570\u53ef\u4ee5\u6839\u636e\u5176\u529f\u80fd\u8fdb\u884c\u5206\u7c7b\uff0c\u4e0b\u9762\u662f\u4e00\u4e9b\u5e38\u7528\u7684\u51fd\u6570\u548c\u5176\u529f\u80fd\u5206\u7c7b\uff1a 1. \u6a21\u578b\u8f93\u51fa\u51fd\u6570\uff1a - stargazer(): \u5c06\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u578b\u7684\u7ed3\u679c\u8f93\u51fa\u4e3a\u8868\u683c\u5f62\u5f0f\u3002 - screenreg(): \u5728R\u63a7\u5236\u53f0\u4e0a\u76f4\u63a5\u663e\u793a\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u578b\u7684\u7ed3\u679c\u3002 2. \u6a21\u578b\u8bbe\u7f6e\u51fd\u6570\uff1a - title(): \u8bbe\u7f6e\u8f93\u51fa\u8868\u683c\u7684\u6807\u9898\u3002 - label(): \u4e3a\u6a21\u578b\u7ed3\u679c\u6dfb\u52a0\u6807\u7b7e\u3002 - omit(): \u6307\u5b9a\u8981\u5ffd\u7565\u7684\u6a21\u578b\u7ed3\u679c\u7684\u67d0\u4e9b\u90e8\u5206\u3002 3. \u683c\u5f0f\u63a7\u5236\u51fd\u6570\uff1a - type = \"text\": \u8f93\u51fa\u4e3a\u6587\u672c\u683c\u5f0f\u7684\u8868\u683c\u3002 - type = \"html\": \u8f93\u51fa\u4e3aHTML\u683c\u5f0f\u7684\u8868\u683c\u3002 - type = \"latex\": \u8f93\u51fa\u4e3aLaTeX\u683c\u5f0f\u7684\u8868\u683c\u3002 - digits =: \u63a7\u5236\u6570\u5b57\u7684\u663e\u793a\u7cbe\u5ea6\u3002 - style =: \u8bbe\u7f6e\u8868\u683c\u7684\u6837\u5f0f\u3002 4. \u6a21\u578b\u9009\u62e9\u51fd\u6570\uff1a - out\u53c2\u6570: \u6307\u5b9a\u8981\u8f93\u51fa\u7684\u6a21\u578b\u7ed3\u679c\u3002 - order\u53c2\u6570: \u6307\u5b9a\u8f93\u51fa\u7684\u6a21\u578b\u7ed3\u679c\u7684\u987a\u5e8f\u3002 - column.labels\u53c2\u6570: \u81ea\u5b9a\u4e49\u5217\u6807\u7b7e\u3002 \u8fd9\u4e9b\u51fd\u6570\u63d0\u4f9b\u4e86\u7075\u6d3b\u7684\u9009\u9879\u548c\u53c2\u6570\uff0c\u4ee5\u6ee1\u8db3\u4e0d\u540c\u7684\u9700\u6c42\uff0c\u4f8b\u5982\u5b9a\u5236\u8868\u683c\u6837\u5f0f\u3001\u9009\u62e9\u7279\u5b9a\u6a21\u578b\u8f93\u51fa\u3001\u8bbe\u7f6e\u6807\u7b7e\u7b49\u3002 \u8bf7\u6ce8\u610f\uff0c\u4ee5\u4e0a\u5217\u51fa\u7684\u51fd\u6570\u5e76\u4e0d\u8be6\u5c3d\uff0cstargazer\u5305\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u529f\u80fd\u548c\u9009\u9879\u3002\u5efa\u8bae\u67e5\u9605stargazer\u5305\u7684\u5b98\u65b9\u6587\u6863\u6216\u4f7f\u7528?\u547d\u4ee4\u5728R\u4e2d\u83b7\u53d6\u66f4\u8be6\u7ec6\u7684\u5e2e\u52a9\u6587\u6863\uff0c\u4ee5\u4e86\u89e3\u66f4\u591a\u5173\u4e8estargazer\u5305\u51fd\u6570\u7684\u4fe1\u606f\u3002

"},{"location":"R/other%20packages/package-stats/","title":"Package stats","text":""},{"location":"R/other%20packages/package-stats/#statsproptest","title":"stats::prop.test()","text":"

^26daec

\u5728R\u8bed\u8a00\u4e2d\uff0cprop.test()\u51fd\u6570\u7528\u4e8e\u8fdb\u884c\u4e24\u4e2a\u6bd4\u4f8b\u4e4b\u95f4\u7684\u5047\u8bbe\u68c0\u9a8c\u3002

# \u521b\u5efa\u89c2\u6d4b\u6570\u636e\nx <- c(50, 70)  # \u6210\u529f\u7684\u89c2\u6d4b\u6570\nn <- c(100, 100)  # \u603b\u7684\u89c2\u6d4b\u6570\n\n# \u8fdb\u884c\u6bd4\u4f8b\u5047\u8bbe\u68c0\u9a8c\nresult <- prop.test(x, n)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(result)\n
\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\u793a\u4f8b\uff1a
    2-sample test for equality of proportions with continuity correction\n\ndata:  x out of n\nX-squared = 0.24752, df = 1, p-value = 0.6188\nalternative hypothesis: two.sided\n95 percent confidence interval:\n -0.1562211  0.2562211\nsample estimates:\nprop 1 prop 2 \n   0.5    0.7\n

\u51fd\u6570\u5b9a\u4e49\uff1a

prop.test(x, n, p = NULL, alternative = \"two.sided\", conf.level = 0.95, correct = TRUE)\n

\u53c2\u6570\uff1a - x\uff1a\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u6c34\u5e73\u7684\u5411\u91cf\u6216\u77e9\u9635\uff0c\u8868\u793a\u6210\u529f\u7684\u89c2\u6d4b\u6570\u3002

  • n\uff1a\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u6c34\u5e73\u7684\u5411\u91cf\u6216\u77e9\u9635\uff0c\u8868\u793a\u603b\u7684\u89c2\u6d4b\u6570\u3002

  • p\uff1a\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u6c34\u5e73\u7684\u5411\u91cf\u6216\u77e9\u9635\uff0c\u8868\u793a\u9884\u671f\u7684\u6bd4\u4f8b\u3002\u5982\u679c\u4e0d\u63d0\u4f9b\uff0c\u5219\u4f7f\u7528\u6837\u672c\u7684\u6bd4\u4f8b\u3002

  • alternative\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u5907\u62e9\u5047\u8bbe\u7684\u7c7b\u578b\u3002\u53ef\u4ee5\u662f\"two.sided\"\uff08\u9ed8\u8ba4\u503c\uff09\u3001\"less\"\u6216\"greater\"\u3002

  • conf.level\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u7f6e\u4fe1\u6c34\u5e73\u3002\u9ed8\u8ba4\u503c\u4e3a0.95\uff0c\u8868\u793a95%\u7684\u7f6e\u4fe1\u6c34\u5e73\u3002

  • correct\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u8868\u793a\u662f\u5426\u8fdb\u884c\u4fee\u6b63\u3002\u9ed8\u8ba4\u503c\u4e3aTRUE\uff0c\u8868\u793a\u8fdb\u884c\u8fde\u7eed\u6027\u4fee\u6b63\u3002

\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cprop.test()\u51fd\u6570\u7528\u4e8e\u6bd4\u8f83\u4e24\u4e2a\u6bd4\u4f8b\u4e4b\u95f4\u7684\u5dee\u5f02\uff0c\u5e76\u8fdb\u884c\u5047\u8bbe\u68c0\u9a8c\u3002\u5b83\u9002\u7528\u4e8e\u72ec\u7acb\u6837\u672c\u6216\u914d\u5bf9\u6837\u672c\u7684\u60c5\u51b5\u3002\u5728\u4f7f\u7528\u51fd\u6570\u65f6\uff0c\u8bf7\u6839\u636e\u5177\u4f53\u7684\u95ee\u9898\u8bbe\u7f6e\u53c2\u6570\u548c\u6570\u636e\u3002

"},{"location":"R/other%20packages/package-stats/#statsvartest","title":"stats::var.test()","text":"

^e4a61d

\u5728R\u8bed\u8a00\u4e2d\uff0cvar.test()\u51fd\u6570\u662fstats\u5305\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

var.test(x, y, ratio = 1, alternative = \"two.sided\", ...)\n

\u53c2\u6570\uff1a - x\uff1a\u7b2c\u4e00\u4e2a\u6570\u503c\u5411\u91cf\u6216\u6570\u636e\u6846\u3002

  • y\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u7b2c\u4e8c\u4e2a\u6570\u503c\u5411\u91cf\u6216\u6570\u636e\u6846\u3002

  • ratio\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9ax\u548cy\u7684\u65b9\u5dee\u6bd4\u4f8b\u3002\u9ed8\u8ba4\u4e3a1\uff0c\u8868\u793a\u65b9\u5dee\u76f8\u7b49\u3002

  • alternative\uff1a\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u5907\u62e9\u5047\u8bbe\u3002\u53ef\u9009\u6709\"two.sided\"\uff08\u9ed8\u8ba4\uff0c\u53cc\u4fa7\uff09\u3001\"less\"\uff08\u5355\u4fa7\u5c0f\u4e8e\uff09\u548c\"greater\"\uff08\u5355\u4fa7\u5927\u4e8e\uff09\u3002

  • ...\uff1a\u5176\u4ed6\u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u63a7\u5236\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u8ba1\u7b97\u3002

\u8fd4\u56de\u503c\uff1a \u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u7684\u5bf9\u8c61\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u503c\u3001\u81ea\u7531\u5ea6\u548cp\u503c\u3002

\u793a\u4f8b\uff1a \u4ee5\u4e0b\u662f\u4f7f\u7528var.test()\u51fd\u6570\u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u793a\u4f8b\uff1a

# \u521b\u5efa\u793a\u4f8b\u6570\u636e\u5411\u91cf\ngroup1 <- c(1, 2, 3, 4, 5)\ngroup2 <- c(2, 4, 6, 8, 10)\n\n# \u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\nvar_test_result <- var.test(group1, group2)\n\n# \u67e5\u770b\u68c0\u9a8c\u7ed3\u679c\nprint(var_test_result)\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u521b\u5efa\u4e86\u4e24\u4e2a\u793a\u4f8b\u6570\u636e\u5411\u91cfgroup1\u548cgroup2\uff0c\u5206\u522b\u5305\u542b\u4e86\u4e24\u4e2a\u7ec4\u7684\u6570\u636e\u3002

\u7136\u540e\uff0c\u6211\u4eec\u4f7f\u7528var.test()\u51fd\u6570\u5bf9\u4e24\u4e2a\u7ec4\u7684\u65b9\u5dee\u8fdb\u884c\u9f50\u6027\u68c0\u9a8c\u3002\u5c06group1\u548cgroup2\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u51fd\u6570\u3002

\u9f50\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u4fdd\u5b58\u5728var_test_result\u4e2d\u3002

\u6700\u540e\uff0c\u6211\u4eec\u6253\u5370\u51fa\u68c0\u9a8c\u7ed3\u679c\uff0c\u5176\u4e2d\u5305\u62ec\u7edf\u8ba1\u91cf\u503c\u3001\u81ea\u7531\u5ea6\u548cp\u503c\u3002

\u4ee5\u4e0b\u662f\u6253\u5370\u51fa\u7684\u5185\u5bb9\u793a\u4f8b\uff1a

    F test to compare two variances\n\ndata:  group1 and group2\nF = 0.25, num df = 4, denom df = 4, p-value = 0.7619\nalternative hypothesis: true ratio of variances is not equal to 1\n95 percent confidence interval:\n 0.02730984 2.27916179\nsample estimates:\nratio of variances\n          0.25\n

\u5728\u4e0a\u8ff0\u8f93\u51fa\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6267\u884c\u65b9\u5dee\u9f50\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\uff0c\u5176\u4e2d\u5305\u62ecF\u7edf\u8ba1\u91cf\u7684\u503c\u3001\u81ea\u7531\u5ea6\u3001p\u503c\u4ee5\u53ca\u7f6e\u4fe1\u533a\u95f4\u3002\u6839\u636ep\u503c\u7684\u5927\u5c0f\uff0c\u6211\u4eec\u53ef\u4ee5\u5224\u65ad\u4e24\u4e2a\u7ec4\u7684\u65b9\u5dee\u662f\u5426\u663e\u8457\u4e0d\u540c\u3002\u5728\u672c\u4f8b\u4e2d\uff0cp\u503c\u4e3a0.7619\uff0c\u5927\u4e8e\u901a\u5e38\u7684\u663e\u8457\u6027\u6c34\u5e73\uff08\u59820.05\uff09\uff0c\u56e0\u6b64\u65e0\u6cd5\u62d2\u7edd\u539f\u5047\u8bbe\uff0c\u5373\u4e24\u4e2a\u7ec4\u7684\u65b9\u5dee\u53ef\u4ee5\u8ba4\u4e3a\u662f\u76f8\u7b49\u7684\u3002

"},{"location":"R/other%20packages/package-stats/#statscortest","title":"stats::cor.test()","text":"

^0603c1

\u5728 R \u8bed\u8a00\u4e2d\uff0ccor.test() \u51fd\u6570\u7528\u4e8e\u8fdb\u884c\u4e24\u4e2a\u53d8\u91cf\u4e4b\u95f4\u7684\u76f8\u5173\u6027\u68c0\u9a8c\u3002\u8fd9\u4e2a\u51fd\u6570\u901a\u5e38\u5c5e\u4e8e\u57fa\u7840\u7684 stats \u5305\uff0c\u4e0d\u9700\u8981\u989d\u5916\u5bfc\u5165\u3002\u4ee5\u4e0b\u662f cor.test() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u529f\u80fd\uff1a \u6267\u884c\u4e24\u4e2a\u53d8\u91cf\u4e4b\u95f4\u7684\u76f8\u5173\u6027\u68c0\u9a8c\u3002

\u5b9a\u4e49\uff1a

cor.test(x, y = NULL, alternative = c(\"two.sided\", \"less\", \"greater\"), method = c(\"pearson\", \"kendall\", \"spearman\"), exact = NULL, continuity = TRUE, ... )\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u7b2c\u4e00\u4e2a\u6570\u503c\u5411\u91cf\u3002 - y\uff1a\u7b2c\u4e8c\u4e2a\u6570\u503c\u5411\u91cf\u3002\u5982\u679c\u672a\u6307\u5b9a\uff0c\u5219\u9ed8\u8ba4\u4f7f\u7528 x\u3002 - alternative\uff1a\u66ff\u4ee3\u5047\u8bbe\u7684\u7c7b\u578b\uff0c\u53ef\u9009\u503c\u4e3a \"two.sided\"\uff08\u53cc\u4fa7\u68c0\u9a8c\uff0c\u9ed8\u8ba4\uff09\u3001\"less\"\uff08\u5c0f\u4e8e\u68c0\u9a8c\uff09\u3001\"greater\"\uff08\u5927\u4e8e\u68c0\u9a8c\uff09\u3002 - method\uff1a\u8ba1\u7b97\u76f8\u5173\u6027\u7684\u65b9\u6cd5\uff0c\u53ef\u9009\u503c\u4e3a \"pearson\"\uff08\u76ae\u5c14\u900a\u76f8\u5173\u7cfb\u6570\uff0c \u9ed8\u8ba4\uff09\u3001\"kendall\"\uff08\u80af\u5fb7\u5c14\u76f8\u5173\u7cfb\u6570\uff09\u3001\"spearman\"\uff08\u65af\u76ae\u5c14\u66fc\u76f8\u5173\u7cfb\u6570\uff09\u3002 - exact\uff1a\u662f\u5426\u8fdb\u884c\u7cbe\u786e\u68c0\u9a8c\uff0c\u901a\u5e38\u5728\u6837\u672c\u91cf\u8f83\u5c0f\u65f6\u4f7f\u7528\u3002 - continuity\uff1a\u662f\u5426\u4f7f\u7528\u4fee\u6b63\u8fde\u7eed\u6027\u6821\u6b63\uff0c\u9ed8\u8ba4\u4e3a TRUE\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684 cor.test \u65b9\u6cd5\u3002

\u8fd4\u56de\u503c\uff1a \u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u76f8\u5173\u6027\u68c0\u9a8c\u7ed3\u679c\u7684\u5217\u8868\u3002

\u4e3e\u4f8b\uff1a

# \u4f7f\u7528 cor.test() \u8fdb\u884c\u76f8\u5173\u6027\u68c0\u9a8c\nset.seed(123)\nx <- rnorm(100)\ny <- 2 * x + rnorm(100)\n\ncor_test_result <- cor.test(x, y, method = \"pearson\", alternative = \"two.sided\")\n\n# \u6253\u5370\u7ed3\u679c\nprint(cor_test_result)\n

\u8f93\u51fa\uff1a

    Pearson's product-moment correlation\n\ndata:  x and y\nt = 22.656, df = 98, p-value < 2.2e-16\nalternative hypothesis: true correlation is not equal to 0\n95 percent confidence interval:\n 0.8933621 0.9569031\nsample estimates:\n      cor \n0.9291175 \n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0ccor.test(x, y, method = \"pearson\", alternative = \"two.sided\") \u4f7f\u7528 cor.test() \u51fd\u6570\u8fdb\u884c\u76ae\u5c14\u900a\u76f8\u5173\u6027\u68c0\u9a8c\u3002\u76f8\u5173\u6027\u68c0\u9a8c\u7684\u7ed3\u679c\u5305\u62ec t \u7edf\u8ba1\u91cf\u3001\u81ea\u7531\u5ea6\u3001p \u503c\u3001\u66ff\u4ee3\u5047\u8bbe\u300195% \u7f6e\u4fe1\u533a\u95f4\u4ee5\u53ca\u76f8\u5173\u6027\u7684\u70b9\u4f30\u8ba1\u3002

"},{"location":"R/other%20packages/package-stats/#statsbartletttest","title":"stats::bartlett.test()","text":"

^ca9b41

\u529f\u80fd\uff1a bartlett.test()\u51fd\u6570\u7528\u4e8e\u6267\u884cBartlett's test\uff08\u5df4\u7279\u5229\u7279\u68c0\u9a8c\uff09\uff0c\u68c0\u9a8c\u591a\u4e2a\u7ec4\u7684\u65b9\u5dee\u662f\u5426\u76f8\u7b49\u3002\u8fd9\u4e2a\u68c0\u9a8c\u901a\u5e38\u7528\u4e8e\u65b9\u5dee\u5206\u6790\uff08ANOVA\uff09\u7b49\u7edf\u8ba1\u65b9\u6cd5\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u65b9\u6cd5\u5728\u5047\u8bbe\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u60c5\u51b5\u4e0b\u66f4\u4e3a\u6709\u6548\u3002

\u6240\u5c5e\u5305\uff1a bartlett.test\u51fd\u6570\u5c5e\u4e8estats\u5305\uff0c\u8fd9\u662fR\u8bed\u8a00\u7684\u57fa\u7840\u7edf\u8ba1\u5305\uff0c\u901a\u5e38\u9ed8\u8ba4\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

bartlett.test(formula, data, subset, na.action)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a

  • formula\uff1a \u4e00\u4e2a\u516c\u5f0f\uff0c\u901a\u5e38\u8868\u793a\u4e3aresponse ~ group\uff0c\u5176\u4e2dresponse\u662f\u6570\u503c\u578b\u53d8\u91cf\uff0c\u800cgroup\u662f\u5206\u7ec4\u53d8\u91cf\u3002

  • data\uff1a \u5305\u542b\u76f8\u5173\u53d8\u91cf\u7684\u6570\u636e\u6846\u3002

  • subset\uff1a \u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u4e00\u4e2a\u5b50\u96c6\u8fdb\u884c\u5206\u6790\u3002

  • na.action\uff1a \u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5904\u7406\u7f3a\u5931\u503c\u3002

\u793a\u4f8b\uff1a

# \u521b\u5efa\u4e09\u4e2a\u7ec4\u7684\u6570\u636e\uff08\u793a\u4f8b\u6570\u636e\uff09\ngroup1 <- c(23, 25, 28, 30, 32)\ngroup2 <- c(18, 20, 24, 28, 30)\ngroup3 <- c(22, 24, 26, 28, 30)\n\n# \u521b\u5efa\u6570\u636e\u6846\ndata <- data.frame(\n  Group = rep(c(\"Group1\", \"Group2\", \"Group3\"), each = 5),\n  Value = c(group1, group2, group3)\n)\n\n# \u6267\u884cBartlett's test\nresult <- bartlett.test(Value ~ Group, data = data)\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n

\u8f93\u51fa\uff1a

\u793a\u4f8b\u4e2d\u7684\u8f93\u51fa\u7ed3\u679c\u5c06\u5305\u542bBartlett's test\u7684\u7edf\u8ba1\u91cf\uff08Bartlett's K-squared\uff09\u3001\u81ea\u7531\u5ea6\uff08df\uff09\u548cp\u503c\uff08p-value\uff09\u3002\u5177\u4f53\u8f93\u51fa\u4fe1\u606f\u5c06\u7c7b\u4f3c\u4e8e\uff1a

Bartlett test of homogeneity of variances\n           Df = 2 \n           Chisquare = 0.55071 \n           Pr(>Chisq) = 0.7595\n

\u8fd9\u4e2a\u8f93\u51fa\u63d0\u4f9b\u4e86Bartlett's test\u7684\u7edf\u8ba1\u91cf\u3001\u81ea\u7531\u5ea6\u4ee5\u53cap\u503c\u3002\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u4f60\u53ef\u4ee5\u67e5\u770bp\u503c\u6765\u5224\u65ad\u662f\u5426\u62d2\u7edd\u4e86\u7ec4\u5185\u65b9\u5dee\u76f8\u7b49\u7684\u5047\u8bbe\u3002

"},{"location":"R/other%20packages/package-stats/#statsaic","title":"stats::AIC()","text":"

^3db05b

\u5728 R \u8bed\u8a00\u4e2d\uff0cAIC() \u51fd\u6570\u901a\u5e38\u5c5e\u4e8e stats \u5305\uff0c\u7528\u4e8e\u8ba1\u7b97\u6a21\u578b\u7684\u8d64\u6c60\u4fe1\u606f\u51c6\u5219\uff08AIC\uff0cAkaike Information Criterion\uff09\u3002AIC\u662f\u6a21\u578b\u9009\u62e9\u7684\u4e00\u4e2a\u5e38\u7528\u6307\u6807\uff0c\u5b83\u8003\u8651\u4e86\u6a21\u578b\u7684\u62df\u5408\u4f18\u5ea6\u548c\u6a21\u578b\u7684\u590d\u6742\u6027\uff0c\u7528\u4e8e\u5728\u591a\u4e2a\u6a21\u578b\u4e2d\u8fdb\u884c\u6bd4\u8f83\u3002 \u529f\u80fd\uff1a \u8ba1\u7b97\u6a21\u578b\u7684\u8d64\u6c60\u4fe1\u606f\u51c6\u5219\u3002

\u5b9a\u4e49\uff1a

AIC(object, ..., k = 2)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - object\uff1a\u4e00\u4e2a\u62df\u5408\u7684\u6a21\u578b\u5bf9\u8c61\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9\u5e95\u5c42\u7684 AIC() \u65b9\u6cd5\u3002 - k\uff1aAIC\u4e2d\u7684\u60e9\u7f5a\u9879\uff0c\u901a\u5e38\u4e3a2\u3002\u53ef\u4ee5\u6839\u636e\u9700\u8981\u4fee\u6539\u3002

\u8fd4\u56de\u503c\uff1a \u8fd4\u56de\u4e00\u4e2a\u5305\u542bAIC\u503c\u7684\u6570\u5b57\u3002

\u4e3e\u4f8b\uff1a

# \u4f7f\u7528 AIC() \u8ba1\u7b97\u8d64\u6c60\u4fe1\u606f\u51c6\u5219\n# \u5047\u8bbe\u6709\u4e00\u4e2a\u7ebf\u6027\u56de\u5f52\u6a21\u578b\nmodel <- lm(mpg ~ wt + hp + qsec, data = mtcars)\n\n# \u8ba1\u7b97\u8d64\u6c60\u4fe1\u606f\u51c6\u5219\naic_value <- AIC(model)\n\n# \u6253\u5370\u7ed3\u679c\nprint(aic_value)\n

\u8f93\u51fa\uff1a

[1] 171.7134\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cAIC(model) \u4f7f\u7528 stats \u5305\u7684 AIC() \u51fd\u6570\u8ba1\u7b97\u4e86\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684\u8d64\u6c60\u4fe1\u606f\u51c6\u5219\u3002AIC\u7684\u503c\u8d8a\u5c0f\u8868\u793a\u6a21\u578b\u8d8a\u597d\uff0c\u53ef\u4ee5\u7528\u4e8e\u6bd4\u8f83\u4e0d\u540c\u6a21\u578b\u7684\u62df\u5408\u4f18\u5ea6\u548c\u590d\u6742\u6027\u3002

"},{"location":"R/readr/read_csv%28%29/","title":"Read csv()","text":"

\u662freadr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8bfb\u53d6\u9017\u53f7\u5206\u9694\u7684\u6587\u672c\u6587\u4ef6\uff08CSV\u683c\u5f0f\uff09\u3002\u5b83\u662freadr\u5305\u4e2d\u6700\u5e38\u7528\u7684\u51fd\u6570\u4e4b\u4e00\uff0c\u5177\u6709\u9ad8\u6548\u548c\u5feb\u901f\u8bfb\u53d6\u5927\u578b\u6570\u636e\u96c6\u7684\u80fd\u529b\u3002

read_csv(file, col_names = TRUE, col_types = NULL, skip = 0, na = c(\"\", \"NA\"), ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - file\uff1a\u8981\u8bfb\u53d6\u7684CSV\u6587\u4ef6\u7684\u8def\u5f84\u6216URL\u3002

  • sep\uff1a\u8bbe\u7f6e\u6570\u636e\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u5e94\u8be5\u662f\u7a7a\u683c\u3002

  • col_names\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5c06\u6587\u4ef6\u7684\u7b2c\u4e00\u884c\u4f5c\u4e3a\u5217\u540d\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002

  • col_types\uff1a\u4e00\u4e2a\u5217\u7c7b\u578b\u7684\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u5217\u7684\u6570\u636e\u7c7b\u578b\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u81ea\u52a8\u63a8\u65ad\u6570\u636e\u7c7b\u578b\u3002

  • skip\uff1a\u8981\u8df3\u8fc7\u7684\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a0\uff0c\u8868\u793a\u4e0d\u8df3\u8fc7\u4efb\u4f55\u884c\u3002

1\uff0c \u8df3\u8fc7\u7b2c\u4e00\u884c\uff0c\u4ee5\u4fbf\u6b63\u786e\u8bc6\u522b\u5217\u6807\u9898\u3002

  • na\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u89e3\u6790\u4e3a\u7f3a\u5931\u503c\u7684\u5b57\u7b26\u4e32\u3002\u9ed8\u8ba4\u4e3ac(\"\", \"NA\")\uff0c\u8868\u793a\u7a7a\u5b57\u7b26\u4e32\u548c\"NA\"\u88ab\u89e3\u6790\u4e3a\u7f3a\u5931\u503c\u3002

  • ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u8fdb\u4e00\u6b65\u63a7\u5236\u6570\u636e\u8bfb\u53d6\u8fc7\u7a0b\uff0c\u5982locale\u3001comment\u7b49\u3002

    show_col_types = FALSE \u56de\u907f\u9519\u8bef\u63d0\u793a\u4fe1\u606f\uff1f

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528read_csv()\u51fd\u6570\u8bfb\u53d6CSV\u6587\u4ef6\uff1a

library(readr)\n\ndata <- read_csv(\"data.csv\")\n

\u4e0a\u8ff0\u4ee3\u7801\u5c06\u4ece\u540d\u4e3a\"data.csv\"\u7684\u6587\u4ef6\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a\"data\"\u7684\u6570\u636e\u6846\u4e2d\u3002 read_csv()\u51fd\u6570\u8fd8\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u9009\u9879\uff0c\u4f7f\u60a8\u53ef\u4ee5\u66f4\u7cbe\u786e\u5730\u63a7\u5236\u6570\u636e\u7684\u8bfb\u53d6\u8fc7\u7a0b\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528read_csv\u547d\u4ee4\u5728R\u4e2d\u83b7\u53d6\u6709\u5173\u51fd\u6570\u7684\u8be6\u7ec6\u5e2e\u52a9\u6587\u6863\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u66f4\u591a\u53c2\u6570\u548c\u793a\u4f8b\u3002

"},{"location":"R/readr/read_csv%28%29/#_1","title":"\u5e38\u89c1\u9519\u8bef","text":"

\u8bfb\u53d6CSV\u6587\u4ef6\u5e76\u5b58\u50a8\u4e3a\u6570\u636e\u6846 data <- read.csv(\"your_file.csv\")

\u5982\u679cCSV\u6587\u4ef6\u4f7f\u7528\u4e86\u5206\u53f7\u4f5c\u4e3a\u5206\u9694\u7b26\uff0c\u53ef\u4ee5\u6307\u5b9asep\u53c2\u6570 data <- read.csv(\"your_file.csv\", sep = \";\")

"},{"location":"R/readr/read_excel%28%29/","title":"Read excel()","text":"

\u662freadxl\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8bfb\u53d6Excel\u6587\u4ef6\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u9ad8\u6548\u548c\u7b80\u4fbf\u7684\u65b9\u5f0f\u6765\u5c06Excel\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u52a0\u8f7d\u5230R\u4e2d\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u5206\u6790\u548c\u5904\u7406\u3002 \u4ee5\u4e0b\u662fread_excel()\u51fd\u6570\u7684\u57fa\u672c\u8bed\u6cd5\uff1a

read_excel(path, sheet = 1, range = NULL, col_names = TRUE, col_types = NULL, na = \"\", skip = 0, ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - path\uff1a\u8981\u8bfb\u53d6\u7684Excel\u6587\u4ef6\u7684\u8def\u5f84\u6216URL\u3002 - sheet\uff1a\u8981\u8bfb\u53d6\u7684\u5de5\u4f5c\u8868\u7684\u7d22\u5f15\u6216\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3a1\uff0c\u8868\u793a\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u8868\u3002 - range\uff1a\u8981\u8bfb\u53d6\u7684\u5355\u5143\u683c\u8303\u56f4\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u8bfb\u53d6\u6240\u6709\u6570\u636e\u3002 - col_names\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5c06\u6587\u4ef6\u7684\u7b2c\u4e00\u884c\u4f5c\u4e3a\u5217\u540d\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002 - col_types\uff1a\u4e00\u4e2a\u5217\u7c7b\u578b\u7684\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u5217\u7684\u6570\u636e\u7c7b\u578b\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u81ea\u52a8\u63a8\u65ad\u6570\u636e\u7c7b\u578b\u3002 - na\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u89e3\u6790\u4e3a\u7f3a\u5931\u503c\u7684\u5b57\u7b26\u4e32\u3002\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32\u3002 - skip\uff1a\u8981\u8df3\u8fc7\u7684\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a0\uff0c\u8868\u793a\u4e0d\u8df3\u8fc7\u4efb\u4f55\u884c\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u8fdb\u4e00\u6b65\u63a7\u5236\u6570\u636e\u7684\u8bfb\u53d6\u8fc7\u7a0b\uff0c\u5982locale\u3001guess_max\u7b49\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528read_excel()\u51fd\u6570\u8bfb\u53d6Excel\u6587\u4ef6\uff1a
library(readr)\n\ndata <- read_excel(\"data.xlsx\", sheet = 1)\n
\u4e0a\u8ff0\u4ee3\u7801\u5c06\u4ece\u540d\u4e3a\"data.xlsx\"\u7684\u6587\u4ef6\u7684\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u8868\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a\"data\"\u7684\u6570\u636e\u6846\u4e2d\u3002 read_excel()\u51fd\u6570\u652f\u6301\u8bfb\u53d6\u591a\u4e2a\u5de5\u4f5c\u8868\u3001\u6307\u5b9a\u7279\u5b9a\u7684\u5355\u5143\u683c\u8303\u56f4\u3001\u6307\u5b9a\u5217\u7c7b\u578b\u548c\u89e3\u6790\u9009\u9879\u7b49\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528?read_excel\u547d\u4ee4\u5728R\u4e2d\u83b7\u53d6\u6709\u5173\u51fd\u6570\u7684\u8be6\u7ec6\u5e2e\u52a9\u6587\u6863\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u66f4\u591a\u53c2\u6570\u548c\u793a\u4f8b\u3002 \u8bf7\u6ce8\u610f\uff0c\u5728\u4f7f\u7528read_excel()\u51fd\u6570\u4e4b\u524d\uff0c\u60a8\u9700\u8981\u5b89\u88c5\u5e76\u52a0\u8f7dreadxl\u5305\uff0c\u56e0\u4e3aread_excel()\u51fd\u6570\u662freadxl\u5305\u4e2d\u7684\u4e00\u90e8\u5206\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5readxl\u5305\uff1a
install.packages(\"readxl\")\n

"},{"location":"R/readr/readxl%EF%BC%9A%EF%BC%9Aread_excel%28%29/","title":"Readxl\uff1a\uff1aread excel()","text":"

\u662freadxl\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8bfb\u53d6Excel\u6587\u4ef6\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u9ad8\u6548\u548c\u7b80\u4fbf\u7684\u65b9\u5f0f\u6765\u5c06Excel\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u52a0\u8f7d\u5230R\u4e2d\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u5206\u6790\u548c\u5904\u7406\u3002 \u4ee5\u4e0b\u662fread_excel()\u51fd\u6570\u7684\u57fa\u672c\u8bed\u6cd5\uff1a

read_excel(path, sheet = 1, range = NULL, col_names = TRUE, col_types = NULL, na = \"\", skip = 0, ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - path\uff1a\u8981\u8bfb\u53d6\u7684Excel\u6587\u4ef6\u7684\u8def\u5f84\u6216URL\u3002 - sheet\uff1a\u8981\u8bfb\u53d6\u7684\u5de5\u4f5c\u8868\u7684\u7d22\u5f15\u6216\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3a1\uff0c\u8868\u793a\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u8868\u3002 - range\uff1a\u8981\u8bfb\u53d6\u7684\u5355\u5143\u683c\u8303\u56f4\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u8bfb\u53d6\u6240\u6709\u6570\u636e\u3002 - col_names\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5c06\u6587\u4ef6\u7684\u7b2c\u4e00\u884c\u4f5c\u4e3a\u5217\u540d\u3002\u9ed8\u8ba4\u4e3aTRUE\u3002 - col_types\uff1a\u4e00\u4e2a\u5217\u7c7b\u578b\u7684\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u6bcf\u5217\u7684\u6570\u636e\u7c7b\u578b\u3002\u9ed8\u8ba4\u4e3aNULL\uff0c\u8868\u793a\u81ea\u52a8\u63a8\u65ad\u6570\u636e\u7c7b\u578b\u3002 - na\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u89e3\u6790\u4e3a\u7f3a\u5931\u503c\u7684\u5b57\u7b26\u4e32\u3002\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32\u3002 - skip\uff1a\u8981\u8df3\u8fc7\u7684\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a0\uff0c\u8868\u793a\u4e0d\u8df3\u8fc7\u4efb\u4f55\u884c\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u8fdb\u4e00\u6b65\u63a7\u5236\u6570\u636e\u7684\u8bfb\u53d6\u8fc7\u7a0b\uff0c\u5982locale\u3001guess_max\u7b49\u3002 \u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528read_excel()\u51fd\u6570\u8bfb\u53d6Excel\u6587\u4ef6\uff1a
library(readr)\n\ndata <- read_excel(\"data.xlsx\", sheet = 1)\n
\u4e0a\u8ff0\u4ee3\u7801\u5c06\u4ece\u540d\u4e3a\"data.xlsx\"\u7684\u6587\u4ef6\u7684\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u8868\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5c06\u7ed3\u679c\u5b58\u50a8\u5728\u540d\u4e3a\"data\"\u7684\u6570\u636e\u6846\u4e2d\u3002 read_excel()\u51fd\u6570\u652f\u6301\u8bfb\u53d6\u591a\u4e2a\u5de5\u4f5c\u8868\u3001\u6307\u5b9a\u7279\u5b9a\u7684\u5355\u5143\u683c\u8303\u56f4\u3001\u6307\u5b9a\u5217\u7c7b\u578b\u548c\u89e3\u6790\u9009\u9879\u7b49\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528?read_excel\u547d\u4ee4\u5728R\u4e2d\u83b7\u53d6\u6709\u5173\u51fd\u6570\u7684\u8be6\u7ec6\u5e2e\u52a9\u6587\u6863\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u66f4\u591a\u53c2\u6570\u548c\u793a\u4f8b\u3002 \u8bf7\u6ce8\u610f\uff0c\u5728\u4f7f\u7528read_excel()\u51fd\u6570\u4e4b\u524d\uff0c\u60a8\u9700\u8981\u5b89\u88c5\u5e76\u52a0\u8f7dreadxl\u5305\uff0c\u56e0\u4e3aread_excel()\u51fd\u6570\u662freadxl\u5305\u4e2d\u7684\u4e00\u90e8\u5206\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5readxl\u5305\uff1a
install.packages(\"readxl\")\n

"},{"location":"R/readr/scan%28%29/","title":"Scan()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cscan()\u51fd\u6570\u662f\u7528\u4e8e\u4ece\u6587\u4ef6\u6216\u7528\u6237\u8f93\u5165\u4e2d\u8bfb\u53d6\u6570\u636e\u7684\u57fa\u672c\u51fd\u6570\u4e4b\u4e00\u3002\u5b83\u5141\u8bb8\u60a8\u9010\u884c\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5c06\u5176\u5b58\u50a8\u5728R\u5bf9\u8c61\u4e2d\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

scan(file = \"\", what = double(), nmax = -1, n = -1, sep = \"\", quiet = FALSE, fill = FALSE, strip.white = FALSE, skip = 0, multi.line = TRUE, comment.char = \"\", allowEscapes = FALSE, flush = FALSE, encoding = getOption(\"encoding\"), skipNul = FALSE)\n

\u53c2\u6570\uff1a - file\uff1a\u4e00\u4e2a\u5305\u542b\u6570\u636e\u7684\u6587\u4ef6\u540d\u6216URL\uff0c\u5982\u679c\u4e3a\u7a7a\u5b57\u7b26\u4e32\u6216\u672a\u6307\u5b9a\uff0c\u5219\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u6570\u636e\u3002

  • what\uff1a\u4e00\u4e2a\u7528\u4e8e\u6307\u5b9a\u8bfb\u53d6\u6570\u636e\u7684\u7c7b\u578b\u7684R\u5bf9\u8c61\u3002\u9ed8\u8ba4\u4e3adouble()\uff0c\u5373\u8bfb\u53d6\u6570\u503c\u7c7b\u578b\u3002 what = character()\uff0c\u8f93\u51fa\u89e3\u91ca\u4e3a\u5b57\u7b26\u578b\u6570\u636e\uff0c\u800c\u4e0d\u662f\u9ed8\u8ba4\u7684\u6570\u503c\u578b\u6570\u636e

  • nmax\uff1a\u63a7\u5236\u8bfb\u53d6\u7684\u6700\u5927\u5143\u7d20\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a-1\u8868\u793a\u8bfb\u53d6\u6240\u6709\u5143\u7d20\u3002

  • n\uff1a\u63a7\u5236\u8bfb\u53d6\u7684\u884c\u6570\uff0c\u9ed8\u8ba4\u4e3a-1\u8868\u793a\u8bfb\u53d6\u6240\u6709\u884c\u3002

  • sep\uff1a\u6307\u5b9a\u6570\u636e\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u683c\u5b57\u7b26\u3002

  • quiet\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u663e\u793a\u8bfb\u53d6\u8fdb\u5ea6\u4fe1\u606f\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u663e\u793a\u8fdb\u5ea6\u4fe1\u606f\u3002

  • fill\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u586b\u5145\u4e0d\u5b8c\u6574\u7684\u884c\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u586b\u5145\u4e0d\u5b8c\u6574\u7684\u884c\u3002

  • strip.white\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u53bb\u9664\u5143\u7d20\u5468\u56f4\u7684\u989d\u5916\u7a7a\u767d\u5b57\u7b26\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u53bb\u9664\u989d\u5916\u7a7a\u767d\u5b57\u7b26\u3002

  • skip\uff1a\u4e00\u4e2a\u6574\u6570\u503c\uff0c\u8df3\u8fc7\u8bfb\u53d6\u7684\u8d77\u59cb\u884c\u6570\u3002\u9ed8\u8ba4\u4e3a0\uff0c\u5373\u4e0d\u8df3\u8fc7\u4efb\u4f55\u884c\u3002

  • multi.line\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u5141\u8bb8\u8de8\u884c\u8bfb\u53d6\u6570\u636e\u3002\u9ed8\u8ba4\u4e3aTRUE\uff0c\u5373\u5141\u8bb8\u8de8\u884c\u8bfb\u53d6\u6570\u636e\u3002

  • comment.char\uff1a\u4e00\u4e2a\u5b57\u7b26\uff0c\u7528\u4e8e\u6307\u5b9a\u6ce8\u91ca\u7b26\u53f7\u3002\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32\uff0c\u8868\u793a\u6ca1\u6709\u6ce8\u91ca\u7b26\u53f7\u3002

  • allowEscapes\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u5141\u8bb8\u5728\u5b57\u7b26\u4e32\u4e2d\u4f7f\u7528\u8f6c\u4e49\u5b57\u7b26\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5141\u8bb8\u4f7f\u7528\u8f6c\u4e49\u5b57\u7b26\u3002

  • flush\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u5237\u65b0\u8f93\u5165\u7f13\u51b2\u533a\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u5237\u65b0\u8f93\u5165\u7f13\u51b2\u533a\u3002

  • encoding\uff1a\u4e00\u4e2a\u5b57\u7b26\uff0c\u7528\u4e8e\u6307\u5b9a\u6587\u4ef6\u7684\u7f16\u7801\u65b9\u5f0f\u3002\u9ed8\u8ba4\u4e3agetOption(\"encoding\")\uff0c\u5373\u4f7f\u7528\u7cfb\u7edf\u9ed8\u8ba4\u7f16\u7801\u65b9\u5f0f\u3002

  • skipNul\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u63a7\u5236\u662f\u5426\u8df3\u8fc7\u7a7a\u5b57\u7b26\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u5373\u4e0d\u8df3\u8fc7\u7a7a\u5b57\u7b26\u3002

\u4e0b\u9762\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

# \u4ece\u6587\u4ef6\u4e2d\u8bfb\u53d6\u6570\u636e\ndata <- scan(\"data.txt\", what = character())\n\n# \u4ece\u7528\u6237\u8f93\u5165\u4e2d\u8bfb\u53d6\u6570\u636e\ndata <- scan(file = \"\", what = character())\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528scan()\u51fd\u6570\u4ece\u6587\u4ef6\u6216\u7528\u6237\u8f93\u5165\u4e2d\u8bfb\u53d6\u6570\u636e\u3002\u5728\u7b2c\u4e00\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4ece\u540d\u4e3a\"data.txt\"\u7684\u6587\u4ef6\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5c06\u5176\u5b58\u50a8\u5728data\u5bf9\u8c61\u4e2d\u3002\u5728\u7b2c\u4e8c\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4ece\u7528\u6237\u8f93\u5165\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5c06\u5176\u5b58\u50a8\u5728data\u5bf9\u8c61\u4e2d\u3002

\u901a\u8fc7\u4f7f\u7528\u9002\u5f53\u7684\u53c2\u6570\u914d\u7f6e\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u7075\u6d3b\u5730\u4f7f\u7528scan()\u51fd\u6570\u6765\u8bfb\u53d6\u6570\u636e\u3002

"},{"location":"R/readr/write_csv%28%29/","title":"Write csv()","text":"

\u662freadr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u4ee5\u9017\u53f7\u5206\u9694\u7684\u5f62\u5f0f\u5199\u5165CSV\u6587\u4ef6\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u5355\u800c\u9ad8\u6548\u7684\u65b9\u6cd5\uff0c\u5c06R\u4e2d\u7684\u6570\u636e\u4fdd\u5b58\u4e3aCSV\u6587\u4ef6\uff0c\u4ee5\u4fbf\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u6216\u8fdb\u884c\u6570\u636e\u4ea4\u6362\u3002 \u4ee5\u4e0b\u662fwrite_csv()\u51fd\u6570\u7684\u57fa\u672c\u8bed\u6cd5\uff1a

write_csv(x, path, col_names = !is.null(names(x)), ...)\n
\u53c2\u6570\u8bf4\u660e\uff1a - x\uff1a\u8981\u5199\u5165CSV\u6587\u4ef6\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u662f\u6570\u636e\u6846\uff08data frame\uff09\u3001\u77e9\u9635\uff08matrix\uff09\u6216\u5176\u4ed6\u7c7b\u4f3c\u7ed3\u6784\u3002 - path\uff1aCSV\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u6307\u5b9a\u6587\u4ef6\u7684\u4f4d\u7f6e\u548c\u540d\u79f0\u3002 - col_names\uff1a\u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u793a\u662f\u5426\u5728\u8f93\u51fa\u7684CSV\u6587\u4ef6\u4e2d\u5305\u542b\u5217\u540d\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u6570\u636e\u5bf9\u8c61x\u6709\u5217\u540d\uff0c\u5219\u5c06\u5217\u540d\u5199\u5165\u6587\u4ef6\u3002 - ...\uff1a\u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u8fdb\u4e00\u6b65\u63a7\u5236\u5199\u5165CSV\u6587\u4ef6\u7684\u9009\u9879\uff0c\u5982quote\u3001na\u7b49\u3002

\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528write_csv()\u51fd\u6570\u5c06\u6570\u636e\u5199\u5165CSV\u6587\u4ef6\uff1a

library(readr)\n\ndata <- data.frame(\n  Name = c(\"John\", \"Alice\", \"Bob\"),\n  Age = c(25, 30, 35),\n  Salary = c(50000, 60000, 70000)\n)\n\nwrite_csv(data, \"data.csv\")\n

\u4e0a\u8ff0\u4ee3\u7801\u5c06\u540d\u4e3a\"data\"\u7684\u6570\u636e\u6846\u5199\u5165\u5230\u540d\u4e3a\"data.csv\"\u7684CSV\u6587\u4ef6\u4e2d\u3002

write_csv()\u51fd\u6570\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u9009\u9879\uff0c\u5982\u63a7\u5236\u5f15\u53f7\u7684\u4f7f\u7528\u3001\u5904\u7406\u7f3a\u5931\u503c\u7b49\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528?write_csv\u547d\u4ee4\u5728R\u4e2d\u83b7\u53d6\u6709\u5173\u51fd\u6570\u7684\u8be6\u7ec6\u5e2e\u52a9\u6587\u6863\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u66f4\u591a\u53c2\u6570\u548c\u793a\u4f8b\u3002

"},{"location":"R/stringr/identical%28%29/","title":"Identical()","text":"

identical() \u51fd\u6570\u662f R \u4e2d\u7528\u4e8e\u6bd4\u8f83\u4e24\u4e2a\u5bf9\u8c61\u662f\u5426\u5b8c\u5168\u76f8\u540c\u7684\u51fd\u6570\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e identical() \u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/identical%28%29/#identical","title":"identical \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u68c0\u67e5\u4e24\u4e2a\u5bf9\u8c61\u662f\u5426\u5b8c\u5168\u76f8\u540c\u3002

\u5b9a\u4e49\uff1a

identical(x, y)\n

"},{"location":"R/stringr/identical%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • x \u548c y\uff1a \u8981\u6bd4\u8f83\u7684\u4e24\u4e2a\u5bf9\u8c61\u3002
"},{"location":"R/stringr/identical%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u521b\u5efa\u4e24\u4e2a\u76f8\u540c\u7684\u5411\u91cf\nvec1 <- c(1, 2, 3)\nvec2 <- c(1, 2, 3)\n\n# \u4f7f\u7528 identical \u68c0\u67e5\u4e24\u4e2a\u5411\u91cf\u662f\u5426\u76f8\u540c\nresult <- identical(vec1, vec2)\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n
"},{"location":"R/stringr/identical%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"
[1] TRUE\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cidentical() \u51fd\u6570\u7528\u4e8e\u68c0\u67e5\u4e24\u4e2a\u5411\u91cf vec1 \u548c vec2 \u662f\u5426\u5b8c\u5168\u76f8\u540c\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f TRUE\uff0c\u8868\u793a\u8fd9\u4e24\u4e2a\u5411\u91cf\u662f\u76f8\u540c\u7684\u3002

\u8bf7\u6ce8\u610f\uff0cidentical() \u4e0d\u4ec5\u68c0\u67e5\u503c\u662f\u5426\u76f8\u540c\uff0c\u8fd8\u68c0\u67e5\u5bf9\u8c61\u7684\u5c5e\u6027\u548c\u7ed3\u6784\u662f\u5426\u76f8\u540c\u3002\u8fd9\u4f7f\u5f97\u5b83\u4e0e \\== \u64cd\u4f5c\u7b26\u6709\u6240\u4e0d\u540c\uff0c\u540e\u8005\u53ea\u68c0\u67e5\u503c\u662f\u5426\u76f8\u7b49\u3002

"},{"location":"R/stringr/str_c%28%29/","title":"Str c()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_c()\u51fd\u6570\u662f\u5b57\u7b26\u4e32\u5904\u7406\u5305stringr\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u591a\u4e2a\u5b57\u7b26\u4e32\u8fde\u63a5\u8d77\u6765\u3002

# \u52a0\u8f7d stringr \u5305\nlibrary(stringr)\n\n# \u57fa\u672c\u5b57\u7b26\u4e32\u8fde\u63a5\nstr_c(\"Hello\", \"World\") # \u8f93\u51fa \"HelloWorld\"\nstr_c(\"Hello\", \"World\"\uff0csep = \"\") # \u8f93\u51fa \"HelloWorld\"\n\n# \u4f7f\u7528\u5206\u9694\u7b26\u8fde\u63a5\u5b57\u7b26\u4e32\nstr_c(\"Hello\", \"World\", sep = \" \") # \u8f93\u51fa \"Hello World\"\n\n\n\n# \u8fde\u63a5\u591a\u4e2a\u5b57\u7b26\u4e32\nvector <- c(\"apple\", \"banana\", \"cherry\")\nstr_c(vector, sep = \"-\") # \u8f93\u51fa [1] \"apple\"  \"banana\" \"cherry\"\n\n# \u8fde\u63a5\u591a\u4e2a\u5b57\u7b26\u4e32\nvector <- c(\"apple\", \"banana\", \"cherry\")\nstr_c(\"\u524d\u9762\", vector, \"\u540e\u9762\", sep = \"-\") # [1] \"\u524d\u9762-apple-\u540e\u9762\"  \"\u524d\u9762-banana-\u540e\u9762\" \"\u524d\u9762-cherry-\u540e\u9762\"\n\n\n\n# \u5c06\u5b57\u7b26\u4e32\u5411\u91cf\u8fde\u63a5\u6210\u5355\u4e2a\u5b57\u7b26\u4e32\nvector <- c(\"apple\", \"banana\", \"cherry\")\nstr_c(vector, collapse = \", \") # \u8f93\u51fa \"apple, banana, cherry\"\n\n\n\n# \u7ed3\u5408\u4f7f\u7528 sep \u548c collapse\ndays <- c(\"Monday\", \"Tuesday\", \"Wednesday\")\nstr_c(days, sep = \" & \", collapse = \" | \") # \u8f93\u51fa \"Monday | Tuesday | Wednesday\"\n\n# \u7ed3\u5408\u4f7f\u7528 sep \u548c collapse\ndays <- c(\"Monday\", \"Tuesday\", \"Wednesday\")\nstr_c(\"\u524d\u9762\", days, \"\u540e\u9762\", sep = \" & \", collapse = \" | \")\n# [1] \"\u524d\u9762 & Monday & \u540e\u9762 | \u524d\u9762 & Tuesday & \u540e\u9762 | \u524d\u9762 & Wednesday & \u540e\u9762\"\n\n\n\n# \u8fde\u63a5\u6570\u5b57\u548c\u5b57\u7b26\u4e32\uff08\u6570\u5b57\u4f1a\u81ea\u52a8\u8f6c\u6362\u6210\u5b57\u7b26\u4e32\uff09\nstr_c(\"The answer is \", 42) # \u8f93\u51fa \"The answer is 42\"\n

\u51fd\u6570\u5b9a\u4e49\uff1a

str_c(..., sep = \"\", collapse = NULL)\n

\u53c2\u6570\uff1a

  • ...\uff1a\u4e00\u4e2a\u6216\u591a\u4e2a\u5b57\u7b26\u4e32\u5411\u91cf\u3002\u4f60\u53ef\u4ee5\u4f20\u9012\u4efb\u610f\u6570\u91cf\u7684\u5b57\u7b26\u4e32\u5411\u91cf\u7ed9 str_c()\uff0c\u5b83\u4eec\u5c06\u4f1a\u6309\u987a\u5e8f\u88ab\u8fde\u63a5\u3002

  • sep\uff1a\u5206\u9694\u7b26\uff0c\u7528\u4e8e\u5206\u9694\u8981\u8fde\u63a5\u7684\u5b57\u7b26\u4e32\u3002\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32 \"\"\uff0c\u8868\u793a\u6ca1\u6709\u5206\u9694\u7b26\u3002

\u5b57\u7b26\u4e32\u5143\u7d20+\u8fde\u63a5\u7684\u5bf9\u8c61

  • collapse\uff1a\u5982\u679c\u4e0d\u662f NULL\uff0c\u5219\u4f1a\u5c06\u7ed3\u679c\u5411\u91cf\u6298\u53e0\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528 collapse \u53c2\u6570\u6307\u5b9a\u7684\u503c\u4f5c\u4e3a\u5206\u9694\u7b26\u3002

\u5c06\u5b57\u7b26\u4e32\u5411\u91cf\u4e2d\u7684\u5143\u7d20\u5408\u5e76\u4e3a\u4e00\u4e2a\u5b57\u7b26\u4e32

"},{"location":"R/stringr/str_conv%28%29/","title":"Str conv()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0c\u5e76\u6ca1\u6709\u540d\u4e3a str_conv() \u7684\u5185\u7f6e\u51fd\u6570\u3002\u4e5f\u8bb8\u4f60\u53ef\u80fd\u662f\u60f3\u5230\u4e86 iconv() \u51fd\u6570\uff0c\u8be5\u51fd\u6570\u7528\u4e8e\u8fdb\u884c\u5b57\u7b26\u7f16\u7801\u7684\u8f6c\u6362\u3002

\u4ee5\u4e0b\u662f iconv() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6240\u5c5e\u5305\uff1a \u65e0\u9700\u52a0\u8f7d\u5305\uff0c\u662f R \u7684\u57fa\u7840\u51fd\u6570\u3002

\u5b9a\u4e49\uff1a

iconv(x, from = \"\", to = \"\", sub = NA, mark = FALSE)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - x\uff1a\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u5411\u91cf\u6216\u8868\u8fbe\u5f0f\u3002 - from\uff1a\u6e90\u7f16\u7801\uff0c\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u7684\u5f53\u524d\u7f16\u7801\u3002 - to\uff1a\u76ee\u6807\u7f16\u7801\uff0c\u5e0c\u671b\u5f97\u5230\u7684\u5b57\u7b26\u7684\u7f16\u7801\u3002 - sub\uff1a\u66ff\u6362\u975e\u6cd5\u5b57\u7b26\u7684\u65b9\u5f0f\u3002\u53ef\u4ee5\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\u6216\u5b57\u7b26\u4e32\uff0c\u6216\u8005\u4e00\u4e2a\u51fd\u6570\u3002 - mark\uff1a\u903b\u8f91\u503c\uff0c\u8868\u793a\u662f\u5426\u5728\u7ed3\u679c\u4e2d\u6807\u8bb0\u975e\u6cd5\u5b57\u7b26\u3002

\u529f\u80fd\uff1a \u8fdb\u884c\u5b57\u7b26\u7f16\u7801\u7684\u8f6c\u6362\u3002

\u4e3e\u4f8b\uff1a

# \u521b\u5efa\u4e00\u4e2a\u5305\u542b\u975e ASCII \u5b57\u7b26\u7684\u5b57\u7b26\u5411\u91cf\ntext <- c(\"h\u00e9llo\", \"w\u00f6rld\", \"\u4f60\u597d\")\n\n# \u4f7f\u7528 iconv() \u8fdb\u884c\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\nconverted_text <- iconv(text, from = \"UTF-8\", to = \"latin1\")\n\n# \u6253\u5370\u7ed3\u679c\nprint(converted_text)\n

\u8f93\u51fa\uff1a

[1] \"h\\xe9llo\" \"w\\xf6rld\" \"\u6d63\u72b2\u30bd\"\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0ciconv() \u51fd\u6570\u88ab\u7528\u4e8e\u5c06\u5305\u542b\u975e ASCII \u5b57\u7b26\u7684\u5b57\u7b26\u5411\u91cf\u4ece UTF-8 \u7f16\u7801\u8f6c\u6362\u4e3a Latin1 \u7f16\u7801\u3002\u8f93\u51fa\u4e2d\u7684\u6bcf\u4e2a\u5b57\u7b26\u4e32\u90fd\u88ab\u76f8\u5e94\u5730\u8f6c\u6362\u4e3a\u65b0\u7684\u7f16\u7801\u3002

"},{"location":"R/stringr/str_count%28%29/","title":"Str count()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_count()\u51fd\u6570\u662f\u5b57\u7b26\u4e32\u5904\u7406\u5305stringr\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u8ba1\u7b97\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u51fa\u73b0\u6b21\u6570\u3002 \u51fd\u6570\u5b9a\u4e49\uff1a

str_count(string, pattern)\n
\u53c2\u6570\uff1a - string\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u8981\u5339\u914d\u7684\u6a21\u5f0f\u3002
library(stringr)\n\n# \u8ba1\u7b97\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u51fa\u73b0\u6b21\u6570\ncount1 <- str_count(\"Hello World\", pattern = \"o\")\nprint(count1)  # \u8f93\u51fa: 2\n\ncount2 <- str_count(\"Hello World\", pattern = \"z\")\nprint(count2)  # \u8f93\u51fa: 0\n

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86stringr\u5305\uff0c\u7136\u540e\u4f7f\u7528str_count()\u51fd\u6570\u8ba1\u7b97\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u51fa\u73b0\u6b21\u6570\u3002

\u5728\u7b2c\u4e00\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u8ba1\u7b97\u5b57\u7b26\u4e32\"Hello World\"\u4e2d\u6a21\u5f0f\"o\"\u7684\u51fa\u73b0\u6b21\u6570\u3002\u7531\u4e8e\u5b57\u7b26\u4e32\u4e2d\u6709\u4e24\u4e2a\"o\"\u5b57\u7b26\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3a2\u3002

\u5728\u7b2c\u4e8c\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u8ba1\u7b97\u5b57\u7b26\u4e32\"Hello World\"\u4e2d\u6a21\u5f0f\"z\"\u7684\u51fa\u73b0\u6b21\u6570\u3002\u7531\u4e8e\u5b57\u7b26\u4e32\u4e2d\u6ca1\u6709\"z\"\u5b57\u7b26\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3a0\u3002

\u901a\u8fc7\u4f7f\u7528str_count()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u65b9\u4fbf\u5730\u8ba1\u7b97\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u51fa\u73b0\u6b21\u6570\uff0c\u4ece\u800c\u7528\u4e8e\u7edf\u8ba1\u548c\u5206\u6790\u5b57\u7b26\u4e32\u6570\u636e\u3002

"},{"location":"R/stringr/str_count%28%29/#_1","title":"\u5339\u914d\u4e0d\u4f1a\u91cd\u53e0","text":"

2\u6b21\u800c\u975e3\u6b21

str_count(\"abababa\", \"aba\")\n#> [1] 2\n
"},{"location":"R/stringr/str_count%28%29/#_2","title":"\u5b57\u7b26\u4e32\u5411\u91cf","text":"

\u5f53\u5904\u7406\u5b57\u7b26\u4e32\u5411\u91cf\u65f6\uff0cstr_count() \u51fd\u6570\u53ef\u4ee5\u7528\u4e8e\u8ba1\u7b97\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u51fa\u73b0\u6b21\u6570\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a

# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u521b\u5efa\u4e00\u4e2a\u5b57\u7b26\u4e32\u5411\u91cf\ntext_vector <- c(\"apple123\", \"banana456\", \"orange789\", \"grape12345\")\n\n# \u8ba1\u6570\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4e2d\u6570\u5b57\u7684\u51fa\u73b0\u6b21\u6570\ncount_numbers_vector <- str_count(text_vector, \"\\\\d\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(count_numbers_vector)\n

\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] 3 3 3 5\n

\u8fd9\u8868\u793a\u5728\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4e2d\uff0c\u6570\u5b57\u7684\u51fa\u73b0\u6b21\u6570\u5206\u522b\u4e3a 3\u30013\u30013\u30015\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6b63\u5219\u8868\u8fbe\u5f0f \\\\d \u5339\u914d\u6570\u5b57\uff0c\u56e0\u6b64 str_count() \u8fd4\u56de\u4e86\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4e2d\u6570\u5b57\u7684\u51fa\u73b0\u6b21\u6570\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8c03\u6574\u6a21\u5f0f\u4ee5\u5339\u914d\u4e0d\u540c\u7684\u5b57\u7b26\u6216\u6a21\u5f0f\u3002

"},{"location":"R/stringr/str_detect%28%29/","title":"Str detect()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_detect()\u51fd\u6570\u662f\u5b57\u7b26\u4e32\u5904\u7406\u5305stringr\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u68c0\u6d4b\u5b57\u7b26\u4e32\u4e2d\u662f\u5426\u5b58\u5728\u6307\u5b9a\u7684\u6a21\u5f0f\u3002

library(stringr)\n\n# \u68c0\u6d4b\u5b57\u7b26\u4e32\u4e2d\u662f\u5426\u5b58\u5728\u6307\u5b9a\u6a21\u5f0f\nresult1 <- str_detect(\"Hello World\", pattern = \"o\")\nprint(result1)  # \u8f93\u51fa: TRUE\n\nresult2 <- str_detect(\"Hello World\", pattern = \"z\")\nprint(result2)  # \u8f93\u51fa: FALSE\n\n\n# \u5b57\u7b26\u4e32\u5411\u91cf\nx <- c(\"apple\", \"banana\", \"pear\")\nstr_detect(x, \"e\")\n#> [1] TRUE FALSE TRUE\n\n\n# \u627e\u51fa\u81f3\u5c11\u5305\u542b\u4e00\u4e2a\u5143\u97f3\u5b57\u6bcd\u7684\u6240\u6709\u5355\u8bcd\uff0c\u7136\u540e\u53d6\u53cd\nno_vowels_1 <- !str_detect(words, \"[aeiou]\")\n# \u627e\u51fa\u4ec5\u5305\u542b\u8f85\u97f3\u5b57\u6bcd\uff08\u975e\u5143\u97f3\u5b57\u6bcd\uff09\u7684\u6240\u6709\u5355\u8bcd\nno_vowels_2 <- str_detect(words, \"^[^aeiou]+$\")\nidentical(no_vowels_1, no_vowels_2)\n#> [1] TRUE\n

\u51fd\u6570\u5b9a\u4e49\uff1a

str_detect(string, pattern)\n
\u53c2\u6570\uff1a - string\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u8981\u68c0\u6d4b\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u8981\u5339\u914d\u7684\u6a21\u5f0f\u3002

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86stringr\u5305\uff0c\u7136\u540e\u4f7f\u7528str_detect()\u51fd\u6570\u68c0\u6d4b\u5b57\u7b26\u4e32\u4e2d\u662f\u5426\u5b58\u5728\u6307\u5b9a\u7684\u6a21\u5f0f\u3002

\u5728\u7b2c\u4e00\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u68c0\u6d4b\u5b57\u7b26\u4e32\"Hello World\"\u4e2d\u662f\u5426\u5b58\u5728\u6a21\u5f0f\"o\"\u3002\u7531\u4e8e\u5b57\u7b26\u4e32\u4e2d\u6709\u4e24\u4e2a\"o\"\u5b57\u7b26\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3aTRUE\u3002

\u5728\u7b2c\u4e8c\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u68c0\u6d4b\u5b57\u7b26\u4e32\"Hello World\"\u4e2d\u662f\u5426\u5b58\u5728\u6a21\u5f0f\"z\"\u3002\u7531\u4e8e\u5b57\u7b26\u4e32\u4e2d\u6ca1\u6709\"z\"\u5b57\u7b26\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3aFALSE\u3002

\u901a\u8fc7\u4f7f\u7528str_detect()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u65b9\u4fbf\u5730\u68c0\u6d4b\u5b57\u7b26\u4e32\u4e2d\u662f\u5426\u5b58\u5728\u6307\u5b9a\u7684\u6a21\u5f0f\uff0c\u4ece\u800c\u8fdb\u884c\u6a21\u5f0f\u5339\u914d\u548c\u6761\u4ef6\u5224\u65ad\u7b49\u64cd\u4f5c\u3002

"},{"location":"R/stringr/str_detect%28%29/#str_detect","title":"str_detect()\u7684\u5999\u7528","text":"

\u5176\u4e2dwords\u662f\u5b57\u7b26\u4e32\u5411\u91cf\u3002\u53ea\u8981\u6d89\u53ca\u5230\u5e03\u5c14\u503c\u7684\u7b5b\u9009\u90fd\u80fd\u7528\u5230\uff01

words[str_detect(words, \"x$\")]\n#> [1] \"box\" \"sex\" \"six\" \"tax\"\nstr_subset(words, \"x$\")\n#> [1] \"box\" \"sex\" \"six\" \"tax\"\n\ndf %>%\n  filter(str_detect(words, \"x$\"))\n

"},{"location":"R/stringr/str_dup%28%29/","title":"Str dup()","text":"

\u8fd9\u4e2a\u51fd\u6570\u7528\u4e8e\u590d\u5236\u5b57\u7b26\u4e32\u3002\u4ee5\u4e0b\u662f str_dup() \u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_dup%28%29/#str_dup","title":"str_dup \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u590d\u5236\u5b57\u7b26\u4e32\u3002

\u6240\u5c5e\u5305\uff1a stringi \u5305\u3002

\u5b9a\u4e49\uff1a

stringi::stri_dup(str, times = 1)\n

"},{"location":"R/stringr/str_dup%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • str\uff1a \u8981\u590d\u5236\u7684\u5b57\u7b26\u4e32\u3002

  • times\uff1a \u590d\u5236\u7684\u6b21\u6570\uff0c\u9ed8\u8ba4\u4e3a 1\u3002

"},{"location":"R/stringr/str_dup%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dstringi\u5305\ninstall.packages(\"stringi\")\nlibrary(stringi)\n\n# \u4f7f\u7528str_dup\u590d\u5236\u5b57\u7b26\u4e32\noriginal_str <- \"abc\"\nduplicated_str <- stri_dup(original_str, times = 3)\n\n# \u663e\u793a\u7ed3\u679c\nprint(duplicated_str)\n
"},{"location":"R/stringr/str_dup%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstri_dup() \u51fd\u6570\u7528\u4e8e\u590d\u5236\u5b57\u7b26\u4e32 \"abc\"\uff0c\u5e76\u6307\u5b9a\u590d\u5236\u7684\u6b21\u6570\u4e3a 3\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] \"abcabcabc\"\n

\u8fd9\u8868\u793a\u6210\u529f\u590d\u5236\u4e86\u5b57\u7b26\u4e32 \"abc\" \u4e09\u6b21\u3002\u8bf7\u786e\u4fdd\u5728\u4f7f\u7528\u6b64\u51fd\u6570\u4e4b\u524d\u5b89\u88c5\u5e76\u52a0\u8f7d stringi \u5305\u3002

"},{"location":"R/stringr/str_extract%28%29/","title":"Str extract()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_extract()\u51fd\u6570\u63d0\u53d6\u5339\u914d\u4e0a\u7684\u7b2c\u4e00\u4e2a\u5185\u5bb9\uff0c\u5339\u914d\u5230\u5c31\u8f93\u51fa\uff0c\u540e\u9762\u76f8\u540c\u7684\u5185\u5bb9\u4e0d\u7ba1\u3002

library(stringr)\n\n# \u4ece\u5b57\u7b26\u4e32\u4e2d\u63d0\u53d6\u4e0e\u6307\u5b9a\u6a21\u5f0f\u5339\u914d\u7684\u90e8\u5206\nextract1 <- str_extract(\"Hello World\", pattern = \"[aeiou]\")\nprint(extract1) \n\u8f93\u51fa: \"e\"\n\nextract1 <- str_extract(\"Hello World e e e\", pattern = \"[aeiou]\")\nprint(extract1) \n\u8f93\u51fa: \"e\"\n\nextract2 <- str_extract(\"Hello World\", pattern = \"\\\\d+\")\nprint(extract2)  \n\u8f93\u51fa\uff1a NA  # \u7a7a\u5b57\u7b26\u5411\u91cf\uff08`character(0)`\uff09 \n\nextract3 <- str_extract(\"Hell3 World45\", pattern = \"\\\\d+\")\nprint(extract2)  \n\u8f93\u51fa: [1] \"3\"\n

\u51fd\u6570\u5b9a\u4e49\uff1a

str_extract(string, pattern)\n

\u53c2\u6570\uff1a

  • string\uff1a\u5b57\u7b26\u4e32\u96c6\uff0c\u5305\u542b\u8981\u4ece\u4e2d\u63d0\u53d6\u90e8\u5206\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a\u67e5\u627e\u76ee\u6807\u5b57\u7b26\u4e32\uff0c\u5305\u542b\u8981\u5339\u914d\u7684\u6a21\u5f0f\u3002

"},{"location":"R/stringr/str_extract_all/","title":"Str extract all","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_extract_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u4ece\u5b57\u7b26\u4e32\u4e2d\u63d0\u53d6\u6ee1\u8db3\u6307\u5b9a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u3002

text_vector <- c(\"apple123\", \"banana456\", \"orange789\", \"grape12345\")\n\nstr_extract_all(text_vector, \"\\\\d\")\n\n\u8f93\u51fa\uff1a\n[[1]]\n[1] \"1\" \"2\" \"3\"\n\n[[2]]\n[1] \"4\" \"5\" \"6\"\n\n[[3]]\n[1] \"7\" \"8\" \"9\"\n\n[[4]]\n[1] \"1\" \"2\" \"3\" \"4\" \"5\"\n\nstr_extract_all(text_vector, \"\\\\d\", simplify = TRUE)\n\n\u8f93\u51fa\uff1a\n     [,1] [,2] [,3] [,4] [,5]\n[1,] \"1\"  \"2\"  \"3\"  \"\"   \"\"  \n[2,] \"4\"  \"5\"  \"6\"  \"\"   \"\"  \n[3,] \"7\"  \"8\"  \"9\"  \"\"   \"\"  \n[4,] \"1\"  \"2\"  \"3\"  \"4\"  \"5\"\n

\u6240\u5c5e\u5305\uff1a str_extract_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_extract_all(string, pattern, simplify = FALSE)\n

"},{"location":"R/stringr/str_extract_all/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u63d0\u53d6\u5339\u914d\u9879\u7684\u5b57\u7b26\u4e32\u6216\u5b57\u7b26\u5411\u91cf\u3002

  • pattern\uff1a \u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u63d0\u53d6\u7684\u5185\u5bb9\u3002

  • simplify\uff1a \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u7b80\u5316\u7ed3\u679c\u4e3a\u77e9\u9635\uff0c\u9ed8\u8ba4\u4e3a FALSE\u3002

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_extract_all() \u51fd\u6570\u7528\u4e8e\u4ece\u5b57\u7b26\u4e32\u5411\u91cf\u4e2d\u63d0\u53d6\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e2a\u5143\u7d20\u90fd\u5305\u542b\u76f8\u5e94\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5339\u914d\u9879\u3002

\u8fd9\u8868\u793a\u6210\u529f\u4ece\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4e2d\u63d0\u53d6\u4e86\u6570\u5b57\u3002\u5982\u679c\u8bbe\u7f6e\u4e86 simplify = TRUE\uff0c\u8f93\u51fa\u5c06\u88ab\u7b80\u5316\u4e3a\u4e00\u4e2a\u77e9\u9635\u3002

"},{"location":"R/stringr/str_extract_all/#_2","title":"\u5176\u8f93\u51fa\u7ed3\u679c\u7684\u5217\u8868\u5143\u7d20\u662f\u5b57\u7b26\u4e32\u5411\u91cf","text":"

str_extract_all() \u51fd\u6570\u662f stringr \u5305\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u63d0\u53d6\u5b57\u7b26\u4e32\u4e2d\u6240\u6709\u7b26\u5408\u7ed9\u5b9a\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5b50\u4e32\u3002\u5b83\u8fd4\u56de\u7684\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u5339\u914d\u5230\u7684\u6240\u6709\u5b50\u4e32\u3002

\u5177\u4f53\u800c\u8a00\uff0c\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u5305\u542b\u591a\u4e2a\u5b57\u7b26\u4e32\u7684\u5411\u91cf\uff0c\u5bf9\u6bcf\u4e2a\u5b57\u7b26\u4e32\u5e94\u7528 str_extract_all()\uff0c\u5b83\u5c06\u8fd4\u56de\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u5339\u914d\u5230\u7684\u6240\u6709\u5b50\u4e32\u3002

\u4e3e\u4f8b\u8bf4\u660e\uff0c\u5047\u8bbe\u6709\u4e00\u4e2a\u5411\u91cf text_vector\uff0c\u5176\u4e2d\u5305\u542b\u591a\u4e2a\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528 str_extract_all() \u540e\uff0c\u4f60\u4f1a\u5f97\u5230\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e2a\u5217\u8868\u5143\u7d20\u90fd\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u5339\u914d\u5230\u7684\u5b50\u4e32\u3002

library(stringr)\n\nstr_extract_all(v_txta, pattern = \"[,.]\")\n\n# result_list \u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\nprint(result_list)\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cresult_list \u7684\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u4e86\u76f8\u5e94\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u8bcd\u3002

"},{"location":"R/stringr/str_extract_all/#character0","title":"character(0)???","text":"

character(0) \u8868\u793a\u4e00\u4e2a\u957f\u5ea6\u4e3a0\u7684\u5b57\u7b26\u5411\u91cf\uff0c\u5b83\u5177\u6709\u4ee5\u4e0b\u6027\u8d28\uff1a

  1. \u7a7a\u5411\u91cf\uff1a \u5b83\u662f\u4e00\u4e2a\u7a7a\u7684\u5b57\u7b26\u5411\u91cf\uff0c\u4e0d\u5305\u542b\u4efb\u4f55\u5b57\u7b26\u3002

  2. \u8868\u793a\u7f3a\u5931\uff1a \u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0ccharacter(0) \u53ef\u4ee5\u8868\u793a\u7f3a\u5931\u7684\u4fe1\u606f\uff0c\u5373\u6ca1\u6709\u627e\u5230\u5339\u914d\u6216\u6ca1\u6709\u6709\u6548\u7684\u7ed3\u679c\u3002

  3. \u7ed3\u679c\u4e3a\u7a7a\uff1a \u5728\u6d89\u53ca\u5b57\u7b26\u5339\u914d\u3001\u63d0\u53d6\u6216\u8fc7\u6ee4\u7b49\u64cd\u4f5c\u65f6\uff0c\u5982\u679c\u6ca1\u6709\u627e\u5230\u5339\u914d\u9879\u6216\u7b26\u5408\u6761\u4ef6\u7684\u5b57\u7b26\uff0c\u7ed3\u679c\u53ef\u80fd\u662f character(0)\u3002

\u5728\u5904\u7406\u6570\u636e\u65f6\uff0c\u7406\u89e3\u548c\u5904\u7406 character(0) \u662f\u5f88\u91cd\u8981\u7684\uff0c\u4ee5\u786e\u4fdd\u5bf9\u7a7a\u7ed3\u679c\u7684\u60c5\u51b5\u8fdb\u884c\u9002\u5f53\u7684\u5904\u7406\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528\u6761\u4ef6\u8bed\u53e5\u68c0\u67e5\u7ed3\u679c\u662f\u5426\u4e3a\u7a7a\uff0c\u5e76\u91c7\u53d6\u76f8\u5e94\u7684\u63aa\u65bd\u3002

\u5728\u903b\u8f91\u8fd0\u7b97\u4e2d\uff0ccharacter(0) \u8868\u793a\u7a7a\u5b57\u7b26\u5411\u91cf\uff0c\u5176\u4e0e\u903b\u8f91\u8868\u8fbe\u5f0f\u7684\u7ed3\u679c\u901a\u5e38\u88ab\u89c6\u4e3a\u903b\u8f91\u5047\uff08FALSE\uff09\u3002\u8fd9\u662f\u56e0\u4e3a\u5728\u903b\u8f91\u4e0a\uff0c\u7a7a\u5411\u91cf\u88ab\u8ba4\u4e3a\u662f\u5047\u7684\u3002

\u4e3e\u4f8b\u8bf4\u660e\uff1a

# \u793a\u4f8b\uff1a\u903b\u8f91\u8fd0\u7b97\u4e2d\u7684\u7a7a\u5b57\u7b26\u5411\u91cf\nempty_vector <- character(0)\n\n# \u5728\u903b\u8f91\u8868\u8fbe\u5f0f\u4e2d\uff0c\u7a7a\u5411\u91cf\u88ab\u89c6\u4e3a\u903b\u8f91\u5047\uff08FALSE\uff09\nresult <- empty_vector == \"some_value\"\nprint(result)\n# Output: logical(0), \u8868\u793a\u903b\u8f91\u5047\n\n# \u4e5f\u53ef\u4ee5\u4f7f\u7528length()\u51fd\u6570\u68c0\u67e5\u5411\u91cf\u7684\u957f\u5ea6\nis_empty <- length(empty_vector) == 0\nprint(is_empty)\n# Output: TRUE\uff0c\u8868\u793a\u5411\u91cf\u4e3a\u7a7a\n

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cempty_vector == \"some_value\" \u7684\u7ed3\u679c\u662f logical(0)\uff0c\u8868\u793a\u903b\u8f91\u5047\u3002\u800c\u4f7f\u7528 length() \u51fd\u6570\u68c0\u67e5\u5411\u91cf\u7684\u957f\u5ea6\uff0c\u53ef\u4ee5\u5f97\u77e5\u5411\u91cf\u4e3a\u7a7a\uff0c\u5373 is_empty \u4e3a TRUE\u3002

"},{"location":"R/stringr/str_flatten%28%29/","title":"Str flatten()","text":"

\u786e\u5b9e\u5728 stringr \u5305\u4e2d\u5b58\u5728 str_flatten() \u51fd\u6570\u3002\u5c06\u5b57\u7b26\u4e32\u5411\u91cf\u8fde\u63a5\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u5b57\u7b26\u4e32

# \u4f7f\u7528 str_flatten() \u51fd\u6570\u8fde\u63a5\u5b57\u7b26\u4e32\u5411\u91cf\nresult <- str_flatten(c(\"hello\", \"world\"), collapse = \", \")\n\n\u8f93\u51fa\uff1a\n[1] \"hello, world\"\n

\u5b9a\u4e49\uff1a

stringr::str_flatten(..., collapse = NULL)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - ...\uff1a\u8981\u8fde\u63a5\u7684\u5b57\u7b26\u4e32\u5411\u91cf\u3002

  • collapse\uff1aString to insert between each piece. Defaults to\u00a0\"\"

  • last\uff1aOptional string to use in place of the final separator.

  • na.rm\uff1aRemove missing values? If FALSE (the default), the result will be NA if any element of string is NA.

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstr_flatten() \u51fd\u6570\u88ab\u7528\u4e8e\u5c06\u4e24\u4e2a\u5b57\u7b26\u4e32 \"hello\" \u548c \"world\" \u8fde\u63a5\u5728\u4e00\u8d77\uff0c\u5e76\u5728\u5b83\u4eec\u4e4b\u95f4\u63d2\u5165\u4e86\u9017\u53f7\u548c\u7a7a\u683c\uff0c\u751f\u6210\u4e86\u5b57\u7b26\u4e32 \"hello, world\"\u3002\u611f\u8c22\u7ea0\u6b63\uff0c\u5e0c\u671b\u8fd9\u6b21\u80fd\u89e3\u51b3\u4f60\u7684\u7591\u95ee\u3002

"},{"location":"R/stringr/str_flatten%28%29/#str_cstr_flatten","title":"str_c()\u548cstr_flatten()\u7684\u533a\u522b","text":"

str_c() \u548c str_flatten() \u662fR\u8bed\u8a00\u4e2d\u5904\u7406\u5b57\u7b26\u4e32\u7684\u51fd\u6570\uff0c\u5b83\u4eec\u90fd\u7528\u4e8e\u5b57\u7b26\u4e32\u7684\u8fde\u63a5\uff0c\u4f46\u662f\u7528\u6cd5\u548c\u4e0a\u4e0b\u6587\u7565\u6709\u4e0d\u540c\u3002

  1. str_c() \u51fd\u6570\u6765\u6e90\u4e8estringr\u5305\uff0c\u8fd9\u662f\u4e00\u4e2a\u975e\u5e38\u6d41\u884c\u7684\u5b57\u7b26\u4e32\u64cd\u4f5c\u5305\u3002str_c() \u7528\u4e8e\u5c06\u591a\u4e2a\u5b57\u7b26\u4e32\u5411\u91cf\u8fde\u63a5\u5728\u4e00\u8d77\uff0c\u5b83\u53ef\u4ee5\u63a5\u6536\u591a\u4e2a\u53c2\u6570\uff0c\u5e76\u4e14\u53ef\u4ee5\u6307\u5b9a\u5206\u9694\u7b26\u3002\u5982\u679c\u63d0\u4f9b\u4e86\u5206\u9694\u7b26\uff0c\u90a3\u4e48\u5728\u8fde\u63a5\u65f6\uff0c\u5206\u9694\u7b26\u5c06\u4f1a\u88ab\u63d2\u5165\u5230\u6bcf\u4e00\u5bf9\u5b57\u7b26\u4e32\u4e4b\u95f4\u3002

\u4f8b\u5982\uff1a

library(stringr)\nstr1 <- \"Hello\"\nstr2 <- \"World\"\nresult <- str_c(str1, str2, sep = \", \")\nprint(result)\n# \u8f93\u51fa: \"Hello, World\"\n

  1. str_flatten() \u51fd\u6570\u901a\u5e38\u4e0epurrr\u5305\u4e00\u8d77\u4f7f\u7528\uff0c\u5c3d\u7ba1\u5b83\u4e5f\u53ef\u4ee5\u5728\u5176\u4ed6\u4e0a\u4e0b\u6587\u4e2d\u5355\u72ec\u4f7f\u7528\u3002str_flatten() \u4e3b\u8981\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32\u5217\u8868\u6216\u5411\u91cf\u6241\u5e73\u5316\u4e3a\u5355\u4e2a\u5b57\u7b26\u4e32\uff0c\u5e76\u4e14\u53ef\u4ee5\u6307\u5b9a\u5206\u9694\u7b26\u3002

\u4f8b\u5982\uff1a

library(stringr)\nstr_vec <- c(\"Hello\", \"World\")\nresult <- str_flatten(str_vec, collapse = \", \")\nprint(result)\n# \u8f93\u51fa: \"Hello, World\"\n

\u7b80\u800c\u8a00\u4e4b\uff0cstr_c() \u66f4\u901a\u7528\uff0c\u53ef\u4ee5\u8fde\u63a5\u4efb\u610f\u6570\u91cf\u7684\u5b57\u7b26\u4e32\u5411\u91cf\uff0c\u800c str_flatten() \u4e3b\u8981\u7528\u4e8e\u5c06\u4e00\u4e2a\u5b57\u7b26\u4e32\u5217\u8868\u6216\u5411\u91cf\u6241\u5e73\u5316\u4e3a\u4e00\u4e2a\u5b57\u7b26\u4e32\u3002\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u6839\u636e\u9700\u8981\u8fde\u63a5\u5b57\u7b26\u4e32\u7684\u5177\u4f53\u60c5\u51b5\uff0c\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528\u8fd9\u4e24\u4e2a\u51fd\u6570\u4e2d\u7684\u4efb\u610f\u4e00\u4e2a\u3002

"},{"location":"R/stringr/str_flatten_comma%28%29/","title":"Str flatten comma()","text":"

str_flatten_comma()\u51fd\u6570\u7684\u529f\u80fd\u662f\u5c06\u5b57\u7b26\u4e32\u5411\u91cf\uff08character vector\uff09\u4e2d\u7684\u5143\u7d20\u4f7f\u7528\u9017\u53f7\u8fde\u63a5\u8d77\u6765\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5b57\u7b26\u4e32\u3002

str_flatten_comma(string, last = NULL, na.rm = FALSE)\n
\u53c2\u6570\u4ecb\u7ecd\uff1a - x: \u9700\u8981\u8fde\u63a5\u7684\u5b57\u7b26\u4e32\u5411\u91cf\u3002

x <- c(\"A\", \"B\", \"C\", \"D\")\nresult <- str_flatten_comma(x)\n\n\u8f93\u51fa\uff1a\n\"A, B, C, D\"\n

\u3001

"},{"location":"R/stringr/str_glue%28%29/","title":"Str glue()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstringr \u5305\u4e2d\u7684 str_glue() \u51fd\u6570\u7528\u4e8e\u5c06\u53d8\u91cf\u7684\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d\uff0c\u751f\u6210\u65b0\u7684\u5b57\u7b26\u4e32\u3002

library(stringr)\n\n# \u4f7f\u7528 str_glue() \u51fd\u6570\u751f\u6210\u65b0\u7684\u5b57\u7b26\u4e32\nname <- \"John\"\nage <- 30\nresult <- str_glue(\"My name is {name} and I am {age} years old.\")\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n\n\n\u8f93\u51fa\uff1a\n[1] \"My name is John and I am 30 years old.\"\n

\u5b9a\u4e49\uff1a

stringr::str_glue(..., .sep = \"\", .envir = parent.frame(), .open = \"{\", .close = \"}\")\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - ...\uff1a\u5b57\u7b26\u4e32\u6a21\u677f\uff0c\u5176\u4e2d\u7528\u82b1\u62ec\u53f7 {} \u62ec\u8d77\u6765\u7684\u90e8\u5206\u8868\u793a\u8981\u63d2\u5165\u7684\u53d8\u91cf\u3002

# \u7c7b\u4f3cpython\u4e2d\u7684\n\"\u63d2\u5165\u7684\u5185\u5bb9{}\".format(i)\n
  • .sep\uff1a\u8fde\u63a5\u591a\u4e2a\u5b57\u7b26\u4e32\u6a21\u677f\u65f6\u4f7f\u7528\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32\u3002

  • .envir\uff1a\u7528\u4e8e\u89e3\u6790\u53d8\u91cf\u7684\u73af\u5883\uff0c\u9ed8\u8ba4\u4e3a\u7236\u73af\u5883\u3002

  • .open\uff1a\u6253\u5f00\u82b1\u62ec\u53f7\u7684\u5b57\u7b26\u4e32\uff0c\u9ed8\u8ba4\u4e3a {\u3002

  • .close\uff1a\u5173\u95ed\u82b1\u62ec\u53f7\u7684\u5b57\u7b26\u4e32\uff0c\u9ed8\u8ba4\u4e3a }\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstr_glue() \u51fd\u6570\u5c06\u53d8\u91cf name \u548c age \u7684\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d\uff0c\u751f\u6210\u65b0\u7684\u5b57\u7b26\u4e32 \"My name is John and I am 30 years old.\"\u3002\u82b1\u62ec\u53f7 {} \u4e2d\u7684\u90e8\u5206\u4f1a\u88ab\u53d8\u91cf\u7684\u503c\u66ff\u6362\u3002

"},{"location":"R/stringr/str_glue_data%28%29/","title":"Str glue data()","text":"

str_glue_data()\u5c06\u6570\u636e\u6846\u4e2d\u7684\u5217\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d\u3002

# \u521b\u5efa\u4e00\u4e2a\u6570\u636e\u6846\ndata <- data.frame(\n  name = c(\"John\", \"Jane\", \"Bob\"),\n  age = c(30, 25, 35)\n)\n\n# \u4f7f\u7528 str_glue_data() \u51fd\u6570\u5c06\u6570\u636e\u6846\u7684\u5217\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d\nresult <- str_glue_data(data, \"My name is {name} and I am {age} years old.\")\n\n\u8f93\u51fa\uff1a\n[1] \"My name is John and I am 30 years old.\"\n[2] \"My name is Jane and I am 25 years old.\"\n[3] \"My name is Bob and I am 35 years old.\"\n

\u5b9a\u4e49\uff1a

stringr::str_glue_data(data, ..., .sep = \"\")\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - data\uff1a\u6570\u636e\u6846\u3002

  • ...\uff1a\u8981\u63d2\u5165\u5230\u6a21\u677f\u4e2d\u7684\u53d8\u91cf\u3002

  • .sep\uff1a\u53ef\u9009\uff0c\u8981\u5728\u5b57\u7b26\u4e32\u4e4b\u95f4\u63d2\u5165\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u5b57\u7b26\u4e32\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstr_glue_data() \u51fd\u6570\u88ab\u7528\u4e8e\u5c06\u6570\u636e\u6846 data \u4e2d\u7684\u5217\u503c\u63d2\u5165\u5230\u5b57\u7b26\u4e32\u6a21\u677f\u4e2d\uff0c\u751f\u6210\u5305\u542b\u4e0d\u540c\u884c\u4fe1\u606f\u7684\u591a\u4e2a\u5b57\u7b26\u4e32\u3002\u6b64\u51fd\u6570\u662f stringr \u5305\u4e2d\u7528\u4e8e\u5b57\u7b26\u4e32\u63d2\u503c\u7684\u529f\u80fd\u4e4b\u4e00\u3002\u611f\u8c22\u7ea0\u6b63\uff0c\u5e0c\u671b\u8fd9\u80fd\u89e3\u51b3\u4f60\u7684\u7591\u95ee\u3002

"},{"location":"R/stringr/str_length/","title":"Str length","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_length()\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u7528\u4e8e\u8ba1\u7b97\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\u3002\u4ee5\u4e0b\u662f\u5173\u4e8estr_length()\u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_length/#str_length","title":"str_length\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u8ba1\u7b97\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\u3002

\u6240\u5c5e\u5305\uff1a str_length\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u53ef\u4ee5\u901a\u8fc7tidyverse\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_length(string)\n

"},{"location":"R/stringr/str_length/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u8ba1\u7b97\u957f\u5ea6\u7684\u5b57\u7b26\u5411\u91cf\u3001\u5b57\u7b26\u4e32\u6216\u56e0\u5b50\u3002
"},{"location":"R/stringr/str_length/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_length\u8ba1\u7b97\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\nstr_length(\"Hello, World!\")\n
"},{"location":"R/stringr/str_length/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_length()\u51fd\u6570\u7528\u4e8e\u8ba1\u7b97\u5b57\u7b26\u4e32 \"Hello, World!\" \u7684\u957f\u5ea6\u3002\u8fd9\u4e2a\u51fd\u6570\u6ca1\u6709\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5b57\u7b26\u4e32\uff0c\u800c\u662f\u76f4\u63a5\u8f93\u51fa\u8ba1\u7b97\u7684\u957f\u5ea6\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] 13\n

\u8fd9\u8868\u793a\u5b57\u7b26\u4e32 \"Hello, World!\" \u7684\u957f\u5ea6\u4e3a13\u4e2a\u5b57\u7b26\u3002\u4f60\u53ef\u4ee5\u7528\u4e0d\u540c\u7684\u5b57\u7b26\u4e32\u66ff\u6362\u793a\u4f8b\u4e2d\u7684\u8f93\u5165\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002

"},{"location":"R/stringr/str_locate%28%29/","title":"Str locate()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstr_locate() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u5b9a\u4f4d\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u7b2c\u4e00\u4e2a\u5339\u914d\u9879\u7684\u5f00\u59cb\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_locate() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_locate%28%29/#str_locate","title":"str_locate \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5b9a\u4f4d\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u7b2c\u4e00\u4e2a\u5339\u914d\u9879\u7684\u5f00\u59cb\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002

\u6240\u5c5e\u5305\uff1a str_locate() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_locate(string, pattern)\n

"},{"location":"R/stringr/str_locate%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a \u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u5b9a\u4f4d\u7684\u5185\u5bb9\u3002

"},{"location":"R/stringr/str_locate%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_locate\u5b9a\u4f4d\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u7684\u4f4d\u7f6e\ntext <- \"abc123def456ghi789\"\n\n# \u5b9a\u4f4d\u7b2c\u4e00\u4e2a\u6570\u5b57\u7684\u4f4d\u7f6e\nlocation <- str_locate(text, \"\\\\d\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(location)\n
"},{"location":"R/stringr/str_locate%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_locate() \u51fd\u6570\u7528\u4e8e\u5b9a\u4f4d\u5b57\u7b26\u4e32 \"abc123def456ghi789\" \u4e2d\u7b2c\u4e00\u4e2a\u6570\u5b57\u7684\u4f4d\u7f6e\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

     start end\n[1,]     4   4\n

\u8fd9\u8868\u793a\u7b2c\u4e00\u4e2a\u6570\u5b57 \"1\" \u4f4d\u4e8e\u5b57\u7b26\u4e32\u7684\u7b2c4\u4e2a\u4f4d\u7f6e\u3002start \u8868\u793a\u5339\u914d\u9879\u7684\u5f00\u59cb\u4f4d\u7f6e\uff0cend \u8868\u793a\u5339\u914d\u9879\u7684\u7ed3\u675f\u4f4d\u7f6e\u3002\u5982\u679c\u6a21\u5f0f\u6ca1\u6709\u5339\u914d\u9879\uff0c\u5219\u8fd4\u56de NA\u3002\u5982\u679c\u9700\u8981\u5b9a\u4f4d\u6240\u6709\u5339\u914d\u9879\u7684\u4f4d\u7f6e\uff0c\u53ef\u4ee5\u4f7f\u7528 str_locate_all() \u51fd\u6570\u3002

"},{"location":"R/stringr/str_locate_all%28%29/","title":"Str locate all()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_locate_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u5b9a\u4f4d\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u7684\u5f00\u59cb\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_locate_all() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_locate_all%28%29/#str_locate_all","title":"str_locate_all \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5b9a\u4f4d\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u7684\u5f00\u59cb\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002

\u6240\u5c5e\u5305\uff1a str_locate_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_locate_all(string, pattern, ...)\n

"},{"location":"R/stringr/str_locate_all%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a \u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u5b9a\u4f4d\u7684\u5185\u5bb9\u3002

  • ...\uff1a \u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9 stringr::str_locate_all() \u51fd\u6570\u3002

"},{"location":"R/stringr/str_locate_all%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_locate_all\u5b9a\u4f4d\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u7684\u6240\u6709\u4f4d\u7f6e\ntext <- \"abc123def456ghi789\"\n\n# \u5b9a\u4f4d\u6240\u6709\u6570\u5b57\u7684\u4f4d\u7f6e\nall_locations <- str_locate_all(text, \"\\\\d\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(all_locations)\n
"},{"location":"R/stringr/str_locate_all%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_locate_all() \u51fd\u6570\u7528\u4e8e\u5b9a\u4f4d\u5b57\u7b26\u4e32 \"abc123def456ghi789\" \u4e2d\u6240\u6709\u6570\u5b57\u7684\u4f4d\u7f6e\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u5305\u542b\u76f8\u5e94\u6570\u5b57\u7684\u4f4d\u7f6e\u3002\u793a\u4f8b\u4e2d\u7684\u8f93\u51fa\u7ed3\u679c\u53ef\u80fd\u7c7b\u4f3c\u4e8e\uff1a

[[1]]\n     start end\n[1,]     4   4\n[2,]     8   8\n[3,]    12  12\n

\u8fd9\u8868\u793a\u6570\u5b57 \"1\" \u4f4d\u4e8e\u4f4d\u7f6e4\uff0c\u6570\u5b57 \"2\" \u4f4d\u4e8e\u4f4d\u7f6e8\uff0c\u6570\u5b57 \"3\" \u4f4d\u4e8e\u4f4d\u7f6e12\u3002\u5982\u679c\u5728\u6587\u672c\u4e2d\u6709\u591a\u4e2a\u5339\u914d\u9879\uff0c\u5b83\u4eec\u4f1a\u88ab\u4f9d\u6b21\u5217\u51fa\u3002

"},{"location":"R/stringr/str_match%28%29/","title":"Str match()","text":"

str_match() \u51fd\u6570\u662f stringr \u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u5b83\u7684\u4e3b\u8981\u529f\u80fd\u662f\u4ece\u5b57\u7b26\u4e32\u4e2d\u63d0\u53d6\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5b50\u4e32\u3002 str_match() \u51fd\u6570\u7528\u4e8e\u5bf9\u5b57\u7b26\u4e32\u5e94\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u77e9\u9635\uff0c\u5176\u4e2d\u5305\u542b\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5339\u914d\u4ee5\u53ca\u4efb\u4f55\u6355\u83b7\u7684\u5b50\u7ec4\u3002\u7b2c\u4e00\u5217\u603b\u662f\u5b8c\u6574\u7684\u5339\u914d\uff0c\u540e\u7eed\u5217\u662f\u6bcf\u4e2a\u6355\u83b7\u7ec4\u7684\u5339\u914d\u3002

"},{"location":"R/stringr/str_match%28%29/#_1","title":"\u5b9a\u4e49\uff1a","text":"
stringr::str_match(string, pattern)\n
"},{"location":"R/stringr/str_match%28%29/#_2","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string: \u8f93\u5165\u7684\u5b57\u7b26\u5411\u91cf\u3002

  • pattern: \u4e00\u4e2a\u7528\u6765\u5339\u914d\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u4e32\u3002

"},{"location":"R/stringr/str_match%28%29/#_3","title":"\u4e3e\u4f8b\uff1a","text":"
library(stringr)\n\n# \u5b9a\u4e49\u4e00\u4e2a\u5b57\u7b26\u4e32\u5411\u91cf\nstrings <- c(\"123 ABC\", \"456 DE\", \"789 HIJ\")\n\n# \u5339\u914d\u6570\u5b57\u548c\u968f\u540e\u7684\u7a7a\u683c\uff0c\u7136\u540e\u662f\u5927\u5199\u5b57\u6bcd\npattern <- \"(\\\\d+) ([A-Z]+)\"\n\n# \u4f7f\u7528str_match()\u67e5\u627e\u5339\u914d\nmatches <- str_match(strings, pattern)\n\nprint(matches)\n
"},{"location":"R/stringr/str_match%28%29/#_4","title":"\u8f93\u51fa\uff1a","text":"

\u6267\u884c\u4e0a\u8ff0\u4ee3\u7801\u4f1a\u8f93\u51fa\u4e00\u4e2a\u77e9\u9635\uff0c\u5176\u4e2d\u5305\u542b\u5339\u914d\u7684\u7ed3\u679c\u3002\u4f8b\u5982\uff0c\u5bf9\u4e8e\u8fd9\u4e2a\u4f8b\u5b50\uff0c\u8f93\u51fa\u53ef\u80fd\u5982\u4e0b\uff1a

     [,1]      [,2]  [,3]\n[1,] \"123 ABC\" \"123\" \"ABC\"\n[2,] \"456 DE\"  \"456\" \"DE\"\n[3,] \"789 HIJ\" \"789\" \"HIJ\"\n

\u89e3\u91ca\u8f93\u51fa\uff1a - \u7b2c\u4e00\u5217 ([,1]) \u8868\u793a\u6574\u4e2a\u5339\u914d\u7684\u5b57\u7b26\u4e32\u3002 - \u7b2c\u4e8c\u5217 ([,2]) \u8868\u793a\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7b2c\u4e00\u4e2a\u6355\u83b7\u7ec4\u7684\u5339\u914d\uff0c\u5373\u6570\u5b57\u90e8\u5206\u3002 - \u7b2c\u4e09\u5217 ([,3]) \u8868\u793a\u7b2c\u4e8c\u4e2a\u6355\u83b7\u7ec4\u7684\u5339\u914d\uff0c\u5373\u5927\u5199\u5b57\u6bcd\u90e8\u5206\u3002

\u6ce8\u610f\uff0c\u5982\u679c pattern \u6ca1\u6709\u6355\u83b7\u7ec4\uff0c\u90a3\u4e48 str_match() \u8fd4\u56de\u7684\u77e9\u9635\u53ea\u6709\u4e00\u5217\uff0c\u5305\u542b\u5b8c\u6574\u5339\u914d\u7684\u90e8\u5206\u3002\u5982\u679c\u6ca1\u6709\u627e\u5230\u5339\u914d\uff0c\u5bf9\u5e94\u884c\u7684\u5143\u7d20\u5c06\u4f1a\u662f NA\u3002

"},{"location":"R/stringr/str_order%28%29/","title":"Str order()","text":"

str_order()\u51fd\u6570\u662fstringr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u6309\u5b57\u6bcd\u987a\u5e8f\u5bf9\u5b57\u7b26\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\uff0c\u5e76\u8fd4\u56de\u6392\u5e8f\u540e\u7684\u5143\u7d20\u5728\u539f\u59cb\u5411\u91cf\u4e2d\u7684\u7d22\u5f15\u3002\u4ee5\u4e0b\u662f\u5173\u4e8estr_order()\u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_order%28%29/#str_order","title":"str_order\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5bf9\u5b57\u7b26\u5411\u91cf\u8fdb\u884c\u6309\u5b57\u6bcd\u987a\u5e8f\u6392\u5e8f\uff0c\u5e76\u8fd4\u56de\u6392\u5e8f\u540e\u7684\u5143\u7d20\u5728\u539f\u59cb\u5411\u91cf\u4e2d\u7684\u7d22\u5f15\u3002

\u6240\u5c5e\u5305\uff1a str_order\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u53ef\u4ee5\u901a\u8fc7tidyverse\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_order(string, decreasing = FALSE)\n

"},{"location":"R/stringr/str_order%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u6392\u5e8f\u7684\u5b57\u7b26\u5411\u91cf\u3002

  • decreasing\uff1a \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u964d\u5e8f\u6392\u5e8f\u3002\u9ed8\u8ba4\u4e3aFALSE\uff0c\u8868\u793a\u5347\u5e8f\u3002

"},{"location":"R/stringr/str_order%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_order\u5bf9\u5b57\u7b26\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\nvec <- c(\"banana\", \"apple\", \"orange\", \"grape\")\nordered_indices <- str_order(vec)\n\n# \u663e\u793a\u6392\u5e8f\u540e\u7684\u7d22\u5f15\nprint(ordered_indices)\n
"},{"location":"R/stringr/str_order%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_order()\u51fd\u6570\u5bf9\u5b57\u7b26\u5411\u91cf vec \u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\uff0c\u5e76\u8fd4\u56de\u6392\u5e8f\u540e\u7684\u5143\u7d20\u5728\u539f\u59cb\u5411\u91cf\u4e2d\u7684\u7d22\u5f15\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] 2 4 1 3\n

\u8fd9\u8868\u793a\u6392\u5e8f\u540e\uff0c\u539f\u59cb\u5411\u91cf\u4e2d\u7684\u5143\u7d20 \"apple\" \u5728\u7b2c2\u4f4d\uff0c\"grape\" \u5728\u7b2c4\u4f4d\uff0c\"banana\" \u5728\u7b2c1\u4f4d\uff0c\"orange\" \u5728\u7b2c3\u4f4d\u3002\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u5411\u91cf\u548c\u53c2\u6570\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002

"},{"location":"R/stringr/str_pad%28%29/","title":"Str pad()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_pad() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u5728\u5b57\u7b26\u4e32\u7684\u5de6\u4fa7\u6216\u53f3\u4fa7\u586b\u5145\u7279\u5b9a\u5b57\u7b26\uff0c\u4ee5\u8fbe\u5230\u6307\u5b9a\u7684\u5bbd\u5ea6\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_pad() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_pad%28%29/#str_pad","title":"str_pad \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5728\u5b57\u7b26\u4e32\u7684\u5de6\u4fa7\u6216\u53f3\u4fa7\u586b\u5145\u7279\u5b9a\u5b57\u7b26\uff0c\u4ee5\u8fbe\u5230\u6307\u5b9a\u7684\u5bbd\u5ea6\u3002

\u6240\u5c5e\u5305\uff1a str_pad() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_pad(string, width, side = c(\"left\", \"right\"), pad = \" \")\n

"},{"location":"R/stringr/str_pad%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u586b\u5145\u7684\u5b57\u7b26\u4e32\u3002

  • width\uff1a \u6700\u7ec8\u5b57\u7b26\u4e32\u7684\u5bbd\u5ea6\u3002

  • side\uff1a \u6307\u5b9a\u586b\u5145\u7684\u4f4d\u7f6e\uff0c\u53ef\u4ee5\u662f \"left\"\uff08\u5de6\u4fa7\u586b\u5145\uff0c\u9ed8\u8ba4\uff09\u6216 \"right\"\uff08\u53f3\u4fa7\u586b\u5145\uff09\u3002

  • pad\uff1a \u7528\u4e8e\u586b\u5145\u7684\u5b57\u7b26\uff0c\u9ed8\u8ba4\u662f\u7a7a\u683c\u3002

"},{"location":"R/stringr/str_pad%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_pad\u586b\u5145\u5b57\u7b26\u4e32\ntext <- \"123\"\n\n# \u5728\u5de6\u4fa7\u586b\u51450\uff0c\u4f7f\u5f97\u5bbd\u5ea6\u8fbe\u52305\npadded_text_left <- str_pad(text, width = 5, side = \"left\", pad = \"0\")\n\n# \u5728\u53f3\u4fa7\u586b\u5145\u7a7a\u683c\uff0c\u4f7f\u5f97\u5bbd\u5ea6\u8fbe\u52307\npadded_text_right <- str_pad(text, width = 7, side = \"right\")\n\n# \u663e\u793a\u7ed3\u679c\ncat(\"Left-padded text:\", padded_text_left, \"\\n\")\ncat(\"Right-padded text:\", padded_text_right, \"\\n\")\n
"},{"location":"R/stringr/str_pad%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_pad() \u51fd\u6570\u88ab\u7528\u4e8e\u5728\u5b57\u7b26\u4e32 \"123\" \u7684\u5de6\u4fa7\u548c\u53f3\u4fa7\u8fdb\u884c\u586b\u5145\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

Left-padded text: 00123 \nRight-padded text: 123    \n

\u8fd9\u8868\u793a\u6210\u529f\u5728\u5b57\u7b26\u4e32\u7684\u5de6\u4fa7\u586b\u5145\u4e860\uff0c\u4f7f\u5f97\u5bbd\u5ea6\u8fbe\u52305\uff0c\u4ee5\u53ca\u5728\u53f3\u4fa7\u586b\u5145\u4e86\u7a7a\u683c\uff0c\u4f7f\u5f97\u5bbd\u5ea6\u8fbe\u52307\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u66f4\u6539\u586b\u5145\u7684\u5b57\u7b26\u548c\u5bbd\u5ea6\u3002

"},{"location":"R/stringr/str_remove%28%29/","title":"Str remove()","text":"

\u5728 R \u8bed\u8a00\u7684 stringr \u5305\u4e2d\uff0cstr_remove() \u51fd\u6570\u7528\u4e8e\u4ece\u5b57\u7b26\u4e32\u4e2d\u79fb\u9664\u5339\u914d\u7684\u6587\u672c\u3002

# \u4f7f\u7528 str_remove() \u51fd\u6570\u79fb\u9664\u5b57\u7b26\u4e32\u4e2d\u7684\u5339\u914d\u6587\u672c\nresult <- str_remove(\"hello world\", \"llo\")\n\n\u8f93\u51fa\uff1a\n[1] \"he world\"\n

\u5b9a\u4e49\uff1a

stringr::str_remove(string, pattern)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - string\uff1a\u8981\u64cd\u4f5c\u7684\u5b57\u7b26\u4e32\u6216\u5b57\u7b26\u5411\u91cf\u3002

  • pattern\uff1a\u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u79fb\u9664\u7684\u6587\u672c\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstr_remove() \u51fd\u6570\u5c06\u5b57\u7b26\u4e32 \"hello world\" \u4e2d\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f \"llo\" \u7684\u6587\u672c\u79fb\u9664\uff0c\u7ed3\u679c\u662f \"he world\"\u3002

\u8bf7\u6ce8\u610f\uff0cstr_remove() \u53ea\u79fb\u9664\u7b2c\u4e00\u4e2a\u5339\u914d\u9879\u3002\u5982\u679c\u4f60\u5e0c\u671b\u79fb\u9664\u6240\u6709\u5339\u914d\u9879\uff0c\u53ef\u4ee5\u4f7f\u7528 str_remove_all() \u51fd\u6570\u3002

"},{"location":"R/stringr/str_replace%28%29/","title":"Str replace()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstr_replace() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u66ff\u6362\u5b57\u7b26\u4e32\u4e2d\u6ee1\u8db3\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u7684\u7b2c\u4e00\u4e2a\u5339\u914d\u9879\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_replace() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

# \u4f7f\u7528str_replace\u66ff\u6362\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\ntext <- \"abc123def\"\n\n# \u66ff\u6362\u7b2c\u4e00\u4e2a\u6570\u5b57\nresult <- str_replace(text, \"\\\\d\", \"X\")\n\n\u8f93\u51fa\uff1a\n[1] \"abcX23def\"\n

\u5b9a\u4e49\uff1a

str_replace(string, pattern, replacement)\n

"},{"location":"R/stringr/str_replace%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u8fdb\u884c\u66ff\u6362\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a \u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u66ff\u6362\u7684\u5185\u5bb9\u3002

  • replacement\uff1a \u66ff\u6362\u7684\u5185\u5bb9\u3002

\u8fd9\u8868\u793a\u6210\u529f\u66ff\u6362\u4e86\u5b57\u7b26\u4e32\u4e2d\u7684\u7b2c\u4e00\u4e2a\u6570\u5b57\u4e3a \"X\"\u3002\u5982\u679c\u8981\u66ff\u6362\u6240\u6709\u5339\u914d\u9879\uff0c\u53ef\u4ee5\u4f7f\u7528 str_replace_all() \u51fd\u6570\u3002

"},{"location":"R/stringr/str_replace_all%28%29/","title":"Str replace all()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstr_replace_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u66ff\u6362\u5b57\u7b26\u4e32\u4e2d\u6ee1\u8db3\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_replace_all() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_replace_all%28%29/#str_replace_all","title":"str_replace_all \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u66ff\u6362\u5b57\u7b26\u4e32\u4e2d\u6ee1\u8db3\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u3002

\u6240\u5c5e\u5305\uff1a str_replace_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_replace_all(string, pattern, replacement)\n

"},{"location":"R/stringr/str_replace_all%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u8fdb\u884c\u66ff\u6362\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a \u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u66ff\u6362\u7684\u5185\u5bb9\u3002

  • replacement\uff1a \u66ff\u6362\u7684\u5185\u5bb9\u3002

"},{"location":"R/stringr/str_replace_all%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_replace_all\u66ff\u6362\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\ntext <- \"abc123def456ghi789\"\n\n# \u66ff\u6362\u6240\u6709\u6570\u5b57\nresult <- str_replace_all(text, \"\\\\d\", \"X\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\n
"},{"location":"R/stringr/str_replace_all%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_replace_all() \u51fd\u6570\u7528\u4e8e\u66ff\u6362\u5b57\u7b26\u4e32 \"abc123def456ghi789\" \u4e2d\u6240\u6709\u6570\u5b57\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] \"abcXXXdefXXXghiXXX\"\n

\u8fd9\u8868\u793a\u6210\u529f\u66ff\u6362\u4e86\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u6570\u5b57\u4e3a \"X\"\u3002\u4e0e str_replace() \u4e0d\u540c\uff0cstr_replace_all() \u4f1a\u66ff\u6362\u6240\u6709\u5339\u914d\u9879\uff0c\u800c\u4e0d\u4ec5\u4ec5\u662f\u7b2c\u4e00\u4e2a\u3002

"},{"location":"R/stringr/str_sort%28%29/","title":"Str sort()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_sort()\u51fd\u6570\u662fstringr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5bf9\u5b57\u7b26\u5411\u91cf\u8fdb\u884c\u6392\u5e8f\u3002

\u51fd\u6570\u5b9a\u4e49\uff1a

str_sort(x, locale = \"en\", order = \"asc\"...)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a

  • x: \u8981\u6392\u5e8f\u7684\u5b57\u7b26\u5411\u91cf\u3002

  • locale: \u7528\u4e8e\u6392\u5e8f\u7684\u533a\u57df\u8bbe\u7f6e\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4f7f\u7528\u7cfb\u7edf\u7684\u5f53\u524d\u533a\u57df\u8bbe\u7f6e\u8fdb\u884c\u6392\u5e8f\u3002\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u5176\u4ed6\u533a\u57df\u8bbe\u7f6e\uff0c\u5982\"en_US.utf8\"\u8868\u793a\u4f7f\u7528\u7f8e\u5f0f\u82f1\u8bed\u8fdb\u884c\u6392\u5e8f\uff0c\u7b80\u5199\"en\"\u5c31\u884c\u3002

  • order: \u6392\u5e8f\u987a\u5e8f\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6309\u7167\u5347\u5e8f\u6392\u5e8fasc\u3002\u5982\u679c\u8bbe\u7f6e\u4e3adesc\uff0c\u5219\u6309\u7167\u964d\u5e8f\u6392\u5e8f\u3002

  • ...: \u53ef\u9009\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u5176\u4ed6\u53c2\u6570\u7ed9\u5e95\u5c42\u6392\u5e8f\u51fd\u6570\u3002

\u4e3e\u4f8b\uff1a

\u5047\u8bbe\u6211\u4eec\u6709\u4e00\u4e2a\u5b57\u7b26\u5411\u91cfvec\uff0c\u6211\u4eec\u60f3\u8981\u5bf9\u5176\u8fdb\u884c\u5b57\u6bcd\u5347\u5e8f\u6392\u5e8f\u3002

library(stringr)  \nvec <- c(\"banana\", \"apple\", \"cherry\", \"date\")  \nsorted_vec <- str_sort(vec)  \nprint(sorted_vec)\n

\u8f93\u51fa\uff1a

csharp\u590d\u5236\u4ee3\u7801[1] \"apple\"   \"banana\"  \"cherry\"  \"date\"\n

\u53ef\u4ee5\u770b\u5230\uff0cstr_sort()\u51fd\u6570\u5c06\u5b57\u7b26\u5411\u91cf\u6309\u7167\u5b57\u6bcd\u5347\u5e8f\u6392\u5217\u3002

"},{"location":"R/stringr/str_split%28%29/","title":"Str split()","text":"

str_split() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32\u6309\u7167\u6307\u5b9a\u7684\u5206\u9694\u7b26\u62c6\u5206\u6210\u5b50\u4e32\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_split() \u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_split%28%29/#str_split","title":"str_split \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5c06\u5b57\u7b26\u4e32\u6309\u7167\u6307\u5b9a\u7684\u5206\u9694\u7b26\u62c6\u5206\u6210\u5b50\u4e32\u3002

\u6240\u5c5e\u5305\uff1a str_split \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_split(string, pattern, n = Inf, simplify = FALSE)\n

"},{"location":"R/stringr/str_split%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u62c6\u5206\u7684\u5b57\u7b26\u5411\u91cf\u3001\u5b57\u7b26\u4e32\u6216\u56e0\u5b50\u3002

  • pattern\uff1a \u7528\u4e8e\u6307\u5b9a\u5206\u9694\u7b26\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u3002

\"[,\\s.]+\"\u8868\u793a\u4f7f\u7528\u9017\u53f7\u3001\u7a7a\u683c\u548c\u53e5\u53f7\u4f5c\u4e3a\u5206\u9694\u7b26\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u591a\u4e2a\u90e8\u5206\uff0c\u5176\u4e2d [,] \u5339\u914d\u9017\u53f7\uff0c\\\\s \u5339\u914d\u7a7a\u683c\uff0c. \u5339\u914d\u53e5\u53f7\uff0c+ \u8868\u793a\u5339\u914d\u4e00\u4e2a\u6216\u591a\u4e2a

  • n\uff1a \u4e00\u4e2a\u6574\u6570\uff0c\u6307\u5b9a\u6700\u591a\u62c6\u5206\u51fa\u591a\u5c11\u4e2a\u5b50\u4e32\u3002\u9ed8\u8ba4\u4e3a Inf\uff0c\u8868\u793a\u5c3d\u53ef\u80fd\u591a\u5730\u62c6\u5206\u3002

  • simplify\uff1a \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u6307\u5b9a\u662f\u5426\u7b80\u5316\u7ed3\u679c\u77e9\u9635\u3002\u5982\u679c\u4e3a TRUE\uff0c\u5219\u7ed3\u679c\u4e3a\u5b57\u7b26\u77e9\u9635\uff0c\u5426\u5219\u4e3a\u5217\u8868\u3002\u9ed8\u8ba4\u4e3a FALSE\u3002

"},{"location":"R/stringr/str_split%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_split\u62c6\u5206\u5b57\u7b26\u4e32\ntext <- \"apple,orange,banana\"\nsplit_result <- str_split(text, \",\")\n\n# \u663e\u793a\u62c6\u5206\u7ed3\u679c\nprint(split_result)\n
"},{"location":"R/stringr/str_split%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_split() \u51fd\u6570\u4f7f\u7528\u9017\u53f7 , \u4f5c\u4e3a\u5206\u9694\u7b26\u5c06\u5b57\u7b26\u4e32 \"apple,orange,banana\" \u62c6\u5206\u6210\u5b50\u4e32\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff1a

[[1]]\n[1] \"apple\"   \"orange\"  \"banana\"\n

\u8fd9\u8868\u793a\u5b57\u7b26\u4e32\u88ab\u6210\u529f\u62c6\u5206\u6210\u4e86\u4e09\u4e2a\u5b50\u4e32\u3002\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u5b57\u7b26\u4e32\u548c\u5206\u9694\u7b26\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002

"},{"location":"R/stringr/str_split_fixed%28%29/","title":"Str split fixed()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstr_split_fixed() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u56fa\u5b9a\u6570\u91cf\u7684\u90e8\u5206\u3002\u8fd9\u4e2a\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u77e9\u9635\uff0c\u6bcf\u4e00\u5217\u5305\u542b\u62c6\u5206\u540e\u7684\u5b57\u7b26\u4e32\u7684\u4e00\u90e8\u5206\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_split_fixed() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

\u6b63\u5219\u8868\u8fbe\u5f0f\u8868\u793a\u5206\u9694\u7b26\uff0c\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u56fa\u5b9a\u6570\u91cf\u7684\u90e8\u5206\u3002

\u5b9a\u4e49\uff1a

str_split_fixed(string, pattern, n)\n

"},{"location":"R/stringr/str_split_fixed%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u8fdb\u884c\u62c6\u5206\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a \u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u8868\u793a\u5206\u9694\u7b26

  • n\uff1a \u62c6\u5206\u6210\u7684\u6570\u91cf\u3002

"},{"location":"R/stringr/str_split_fixed%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_split_fixed\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u56fa\u5b9a\u6570\u91cf\u7684\u90e8\u5206\ntext <- \"apple,orange,banana,grape\"\n\n# \u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a4\u4e2a\u90e8\u5206\nresult <- str_split_fixed(text, \",\", 4)\nresult1 <- str_split_fixed(text, \",\", 3)\nresult2 <- str_split_fixed(text, \",\", 6)\n\n# \u663e\u793a\u7ed3\u679c\nprint(result)\nprint(result1)\nprint(result2)\n
"},{"location":"R/stringr/str_split_fixed%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_split_fixed() \u51fd\u6570\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32 \"apple,orange,banana,grape\" \u6309\u7167\u9017\u53f7 , \u62c6\u5206\u4e3a4\u4e2a\u90e8\u5206\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\u4e00\u4e2a\u77e9\u9635\uff0c\u5176\u4e2d\u6bcf\u4e00\u5217\u5305\u542b\u62c6\u5206\u540e\u7684\u5b57\u7b26\u4e32\u7684\u4e00\u90e8\u5206\uff1a

     [,1]    [,2]      [,3]      [,4]\n[1,] \"apple\" \"orange\" \"banana\"  \"grape\"\n\n\n     [,1]    [,2]     [,3]          \n[1,] \"apple\" \"orange\" \"banana,grape\"\n\n     [,1]    [,2]     [,3]     [,4]    [,5] [,6]\n[1,] \"apple\" \"orange\" \"banana\" \"grape\" \"\"   \"\"\n

\u8fd9\u8868\u793a\u6210\u529f\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a4\u4e2a\u90e8\u5206\uff0c\u5206\u522b\u662f \"apple\"\u3001\"orange\"\u3001\"banana\" \u548c \"grape\"\u3002

"},{"location":"R/stringr/str_sub%28%29/","title":"Str sub()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstr_sub() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u63d0\u53d6\u6216\u66ff\u6362\u5b57\u7b26\u4e32\u4e2d\u7684\u5b50\u4e32\u3002

library(stringr)\n# \u6784\u9020\u4e00\u4e2a\u5b57\u7b26\u4e32\u5411\u91cf\nc <- c(\"hello world\", \"I am a string\", \"helo-word\", \"you are_you\")\n# \u7528str_sub()\u51fd\u6570\u622a\u53d6\u5b57\u7b26\u4e32\u5411\u91cf\nstr_sub(c, 1, 5)\n\n\u8f93\u51fa\uff1a\n[1] \"hello\" \"I am \" \"helo-\" \"you a\"\n
\u5bf9\u5b57\u7b26\u4e32\u5411\u91cf\u4e5f\u9002\u7528\uff01

\u5b9a\u4e49\uff1a

stringr::str_sub(string, start = 1, end = -1)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - string\uff1a\u8981\u64cd\u4f5c\u7684\u5b57\u7b26\u4e32\u3002

  • start\uff1a\u5b50\u4e32\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u53ef\u4ee5\u662f\u6b63\u6574\u6570\u6216\u8d1f\u6574\u6570\u3002\u6b63\u6574\u6570\u8868\u793a\u4ece\u5b57\u7b26\u4e32\u7684\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\uff0c\u8d1f\u6574\u6570\u8868\u793a\u4ece\u5b57\u7b26\u4e32\u7684\u672b\u5c3e\u4f4d\u7f6e\u5f00\u59cb\u3002

  • end\uff1a\u5b50\u4e32\u7684\u7ed3\u675f\u4f4d\u7f6e\uff0c\u53ef\u4ee5\u662f\u6b63\u6574\u6570\u6216\u8d1f\u6574\u6570\u3002\u6b63\u6574\u6570\u8868\u793a\u4ece\u5b57\u7b26\u4e32\u7684\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\uff0c\u8d1f\u6574\u6570\u8868\u793a\u4ece\u5b57\u7b26\u4e32\u7684\u672b\u5c3e\u4f4d\u7f6e\u5f00\u59cb\u3002

\u529f\u80fd\uff1a \u63d0\u53d6\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u4f4d\u7f6e\u8303\u56f4\u7684\u5b50\u4e32\u3002

\u4e3e\u4f8b\uff1a

library(stringr)\n\n# \u4f7f\u7528 str_sub() \u63d0\u53d6\u5b57\u7b26\u4e32\u7684\u5b50\u4e32\nresult <- str_sub(\"hello world\", start = 1, end = 5)\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n

\u8f93\u51fa\uff1a

[1] \"hello\"\n

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstr_sub() \u51fd\u6570\u88ab\u7528\u4e8e\u63d0\u53d6\u5b57\u7b26\u4e32 \"hello world\" \u4e2d\u4f4d\u7f6e\u4ece 1 \u5230 5 \u7684\u5b50\u4e32\uff0c\u5373 \"hello\"\u3002\u8fd9\u4e2a\u51fd\u6570\u7684\u4f7f\u7528\u65b9\u5f0f\u5141\u8bb8\u4ece\u5b57\u7b26\u4e32\u7684\u8d77\u59cb\u4f4d\u7f6e\u6216\u672b\u5c3e\u4f4d\u7f6e\u5f00\u59cb\u63d0\u53d6\u5b50\u4e32\u3002

"},{"location":"R/stringr/str_subset%28%29/","title":"Str subset()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_subset()\u51fd\u6570\u662f\u5b57\u7b26\u4e32\u5904\u7406\u5305stringr\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u4ece\u5b57\u7b26\u5411\u91cf\u4e2d\u9009\u62e9\u5339\u914d\u6307\u5b9a\u6a21\u5f0f\u7684\u5b50\u96c6\u3002

library(stringr)\n\n# \u4ece\u5b57\u7b26\u5411\u91cf\u4e2d\u9009\u62e9\u5339\u914d\u6307\u5b9a\u6a21\u5f0f\u7684\u5b50\u96c6\nsubset1 <- str_subset(c(\"apple\", \"banana\", \"orange\"), pattern = \"a\")\nprint(subset1)  \n\n\u8f93\u51fa: \"apple\" \"banana\"\n\nsubset2 <- str_subset(c(\"apple\", \"banana\", \"orange\"), pattern = \"z\")\nprint(subset2)  \n\n\u8f93\u51fa: character(0)\n

\u51fd\u6570\u5b9a\u4e49\uff1a

str_subset(string, pattern)\n

\u53c2\u6570\uff1a

  • string\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u8981\u9009\u62e9\u5b50\u96c6\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\uff0c\u5305\u542b\u8981\u5339\u914d\u7684\u6a21\u5f0f\u3002

\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86stringr\u5305\uff0c\u7136\u540e\u4f7f\u7528str_subset()\u51fd\u6570\u4ece\u5b57\u7b26\u5411\u91cf\u4e2d\u9009\u62e9\u5339\u914d\u6307\u5b9a\u6a21\u5f0f\u7684\u5b50\u96c6\u3002

\u5728\u7b2c\u4e00\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9009\u62e9\u5b57\u7b26\u5411\u91cf\u4e2d\u5339\u914d\u6a21\u5f0f\"a\"\u7684\u5b50\u96c6\u3002\u7531\u4e8e\u5728\u5b57\u7b26\u5411\u91cf\u4e2d\u6709\u4e24\u4e2a\u5143\u7d20\u5305\u542b\u5b57\u6bcd\"a\"\uff08\"apple\"\u548c\"banana\"\uff09\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3a\"apple\"\u548c\"banana\"\u3002

\u5728\u7b2c\u4e8c\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9009\u62e9\u5b57\u7b26\u5411\u91cf\u4e2d\u5339\u914d\u6a21\u5f0f\"z\"\u7684\u5b50\u96c6\u3002\u7531\u4e8e\u5b57\u7b26\u5411\u91cf\u4e2d\u6ca1\u6709\u5143\u7d20\u5305\u542b\u5b57\u6bcd\"z\"\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3a\u7a7a\u5411\u91cf\uff08character(0)\uff09\u3002

\u901a\u8fc7\u4f7f\u7528str_subset()\u51fd\u6570\uff0c\u60a8\u53ef\u4ee5\u65b9\u4fbf\u5730\u4ece\u5b57\u7b26\u5411\u91cf\u4e2d\u9009\u62e9\u5339\u914d\u6307\u5b9a\u6a21\u5f0f\u7684\u5b50\u96c6\uff0c\u4ece\u800c\u8fdb\u884c\u6570\u636e\u7b5b\u9009\u548c\u63d0\u53d6\u7b49\u64cd\u4f5c\u3002

"},{"location":"R/stringr/str_to_lower%28%29/","title":"Str to lower()","text":"

str_to_lower()\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5c0f\u5199\u5f62\u5f0f\u3002\u4ee5\u4e0b\u662f\u5173\u4e8estr_to_lower()\u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_to_lower%28%29/#str_to_lower","title":"str_to_lower\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5c0f\u5199\u5f62\u5f0f\u3002

\u6240\u5c5e\u5305\uff1a str_to_lower\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u53ef\u4ee5\u901a\u8fc7tidyverse\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_to_lower(string)\n

"},{"location":"R/stringr/str_to_lower%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u8f6c\u6362\u4e3a\u5c0f\u5199\u7684\u5b57\u7b26\u5411\u91cf\u3001\u5b57\u7b26\u4e32\u6216\u56e0\u5b50\u3002
"},{"location":"R/stringr/str_to_lower%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_to_lower\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5c0f\u5199\nstr_to_lower(\"Hello, World!\")\n
"},{"location":"R/stringr/str_to_lower%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_to_lower()\u51fd\u6570\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32 \"Hello, World!\" \u8f6c\u6362\u4e3a\u5c0f\u5199\u5f62\u5f0f\u3002\u8fd9\u4e2a\u51fd\u6570\u6ca1\u6709\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5b57\u7b26\u4e32\uff0c\u800c\u662f\u76f4\u63a5\u8f93\u51fa\u8f6c\u6362\u540e\u7684\u7ed3\u679c\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

[1] \"hello, world!\"\n

\u8fd9\u8868\u793a\u5b57\u7b26\u4e32 \"Hello, World!\" \u88ab\u6210\u529f\u8f6c\u6362\u4e3a\u5c0f\u5199\u5f62\u5f0f\u3002\u4f60\u53ef\u4ee5\u7528\u4e0d\u540c\u7684\u5b57\u7b26\u4e32\u66ff\u6362\u793a\u4f8b\u4e2d\u7684\u8f93\u5165\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002

"},{"location":"R/stringr/str_to_title%28%29/","title":"Str to title()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstr_to_title() \u662f stringr \u5305\u4e2d\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32\u7684\u6bcf\u4e2a\u5355\u8bcd\u7684\u9996\u5b57\u6bcd\u5927\u5199\u3002

\u5b9a\u4e49\uff1a

stringr::str_to_title(string, locale = \"en\")\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - string\uff1a\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\u3002

**\u7a7a\u683c\u3001\u9017\u53f7\u3001\u53e5\u53f7\u3001-** \u9694\u5f00\u5b57\u7b26\u90fd\u88ab\u5f53\u4f5c\u5355\u8bcd\uff01**\u4e0b\u5212\u7ebf**\u4e0d\u884c\uff01\n
  • locale\uff1a\u53ef\u9009\uff0c\u6307\u5b9a\u8f6c\u6362\u7684\u533a\u57df\u8bbe\u7f6e\u3002\u9ed8\u8ba4\u4e3a \"en\"\uff08\u82f1\u8bed\uff09\u3002

\u4e3e\u4f8b\uff1a

library(stringr)\nc <- \"hello world, I am a string,helo-word. you are_you.\"\nstr_to_title(c)\n

\u8f93\u51fa\uff1a

[1] \"Hello World, I Am A String,Helo-Word. You Are_you.\"\n

"},{"location":"R/stringr/str_trim%28%29/","title":"Str trim()","text":"

str_trim()\u51fd\u6570\u662fstringr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u79fb\u9664\u5b57\u7b26\u4e32\u5f00\u5934\u548c\u7ed3\u5c3e\u7684\u7a7a\u683c\u3002\u4ee5\u4e0b\u662f\u5173\u4e8estr_trim()\u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_trim%28%29/#str_trim","title":"str_trim\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u79fb\u9664\u5b57\u7b26\u4e32\u5f00\u5934\u548c\u7ed3\u5c3e\u7684\u7a7a\u683c\u3002

\u6240\u5c5e\u5305\uff1a str_trim\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u53ef\u4ee5\u901a\u8fc7tidyverse\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_trim(string, side = c(\"both\", \"left\", \"right\"))\n

"},{"location":"R/stringr/str_trim%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u5904\u7406\u7684\u5b57\u7b26\u5411\u91cf\u3001\u5b57\u7b26\u4e32\u6216\u56e0\u5b50\u3002

  • side\uff1a \u5b57\u7b26\u4e32\u4e24\u4fa7\u8981\u79fb\u9664\u7684\u7a7a\u683c\u7684\u4f4d\u7f6e\u3002\u53ef\u9009\u503c\u6709\"both\"\uff08\u9ed8\u8ba4\uff0c\u8868\u793a\u4e24\u4fa7\u90fd\u79fb\u9664\uff09\u3001\"left\"\uff08\u8868\u793a\u53ea\u79fb\u9664\u5de6\u4fa7\uff09\u3001\"right\"\uff08\u8868\u793a\u53ea\u79fb\u9664\u53f3\u4fa7\uff09\u3002

"},{"location":"R/stringr/str_trim%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_trim\u79fb\u9664\u5b57\u7b26\u4e32\u5f00\u5934\u548c\u7ed3\u5c3e\u7684\u7a7a\u683c\ntext <- \"   Hello, World!   \"\ntrimmed_text <- str_trim(text)\n\n# \u663e\u793a\u5904\u7406\u540e\u7684\u6587\u672c\ncat(trimmed_text)\n
"},{"location":"R/stringr/str_trim%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_trim()\u51fd\u6570\u7528\u4e8e\u79fb\u9664\u5b57\u7b26\u4e32 \" Hello, World! \" \u5f00\u5934\u548c\u7ed3\u5c3e\u7684\u7a7a\u683c\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

Hello, World!\n

\u8fd9\u8868\u793a\u5b57\u7b26\u4e32\u5df2\u7ecf\u88ab\u6210\u529f\u5904\u7406\uff0c\u5f00\u5934\u548c\u7ed3\u5c3e\u7684\u7a7a\u683c\u5df2\u88ab\u79fb\u9664\u3002\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u5b57\u7b26\u4e32\u548c\u53c2\u6570\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002

"},{"location":"R/stringr/str_trunc%28%29/","title":"Str trunc()","text":"

\u5728 R \u8bed\u8a00\u7684 stringr \u5305\u4e2d\uff0cstr_trunc() \u51fd\u6570\u7528\u4e8e\u622a\u65ad\u5b57\u7b26\u4e32\u5230\u6307\u5b9a\u7684\u957f\u5ea6\u3002

# \u4f7f\u7528 str_trunc() \u51fd\u6570\u622a\u65ad\u5b57\u7b26\u4e32\nresult <- str_trunc(\"This is a long sentence.\", width = 10)\n\n\u8f93\u51fa\uff1a\n[1] \"This is...\"\n

\u5b9a\u4e49\uff1a

stringr::str_trunc(string, width, side = c(\"right\", \"left\", \"center\"), ellipsis = \"...\")\n

\u53c2\u6570\u4ecb\u7ecd\uff1a

  • string\uff1a\u8981\u622a\u65ad\u7684\u5b57\u7b26\u4e32\u3002

  • width\uff1a\u8981\u622a\u65ad\u7684\u5bbd\u5ea6\uff0c\u5373\u6700\u7ec8\u5b57\u7b26\u4e32\u7684\u5b57\u7b26\u6570\u3002

  • side\uff1a\u53ef\u9009\uff0c\u6307\u5b9a\u622a\u65ad\u7684\u4f4d\u7f6e\u3002\u53ef\u4ee5\u662f \"right\"\uff08\u9ed8\u8ba4\uff0c\u4ece\u53f3\u8fb9\u622a\u65ad\uff09\uff0c\"left\"\uff08\u4ece\u5de6\u8fb9\u622a\u65ad\uff09\u6216 \"center\"\uff08\u4ece\u4e2d\u95f4\u622a\u65ad\uff09\u3002

  • ellipsis\uff1a\u53ef\u9009\uff0c\u5f53\u622a\u65ad\u5b57\u7b26\u4e32\u65f6\u8981\u6dfb\u52a0\u7684\u7701\u7565\u53f7\uff0c\u9ed8\u8ba4\u4e3a \"...\"\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstr_trunc() \u51fd\u6570\u88ab\u7528\u4e8e\u5c06\u5b57\u7b26\u4e32 \"This is a long sentence.\" \u622a\u65ad\u5230\u5bbd\u5ea6\u4e3a 10\uff0c\u7701\u7565\u53f7 \"...\" \u88ab\u6dfb\u52a0\u5230\u5b57\u7b26\u4e32\u7684\u672b\u5c3e\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u622a\u65ad\u662f\u4ece\u53f3\u8fb9\u5f00\u59cb\u7684\u3002

"},{"location":"R/stringr/str_view%28%29/","title":"Str view()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_view() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u67e5\u770b\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u7b2c\u4e00\u4e2a\u5339\u914d\u9879\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_view() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

library(stringr)\n\nstring <- \"Hello, my name is John. Nice to meet you.\"\npattern <- \"John\"\n\nstr_view(string, pattern)\n\n# \u8f93\u51fa\n[1] \u2502 Hello, my name is <John>. Nice to meet you.\n

library(stringr)\nv <- c(\"Hello\", \"World\", \"I\", \"am\", \"here\")\npattern <- \"e\"\nstr_view(v, pattern)\n\n# \u8f93\u51fa\uff1a\n[1] \u2502 H<e>llo\n[5] \u2502 h<e>r<e>\n
str_view()\u51fd\u6570\u662fR\u8bed\u8a00\u4e2dstringr\u5305\u63d0\u4f9b\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u67e5\u770b\u5b57\u7b26\u4e32\u4e2d\u4e0e\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d\u7684\u90e8\u5206\u3002

\u5b9a\u4e49\uff1a

str_view(string, pattern, match = TRUE, html = FALSE,\n  use_escapes = FALSE)\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - string: \u8981\u67e5\u770b\u7684\u5b57\u7b26\u4e32\u3002

  • pattern: \u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u3002

  • match:

TRUE, the default, shows only elements that match the pattern. NA\u00a0shows all elements. FALSE\u00a0shows only elements that don't match the pattern.

  • ...: \u5176\u4ed6\u53c2\u6570\u3002

html

use_escapes

"},{"location":"R/stringr/str_view_all%28%29/","title":"Str view all()","text":"

\u5728R\u8bed\u8a00\u4e2d\uff0cstr_view_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u7528\u4e8e\u67e5\u770b\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e str_view_all() \u51fd\u6570\u7684\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_view_all%28%29/#str_view_all","title":"str_view_all \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u67e5\u770b\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u6a21\u5f0f\u7684\u6240\u6709\u5339\u914d\u9879\u3002

\u6240\u5c5e\u5305\uff1a str_view_all() \u51fd\u6570\u5c5e\u4e8e stringr \u5305\uff0c\u53ef\u4ee5\u901a\u8fc7 tidyverse \u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_view_all(string, pattern, match = FALSE, ...)\n

"},{"location":"R/stringr/str_view_all%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u3002

  • pattern\uff1a \u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u7528\u4e8e\u5339\u914d\u8981\u67e5\u770b\u7684\u5185\u5bb9\u3002

  • match\uff1a \u4e00\u4e2a\u903b\u8f91\u503c\uff0c\u7528\u4e8e\u6307\u5b9a\u662f\u5426\u8fd4\u56de\u5339\u914d\u7684\u90e8\u5206\uff0c\u9ed8\u8ba4\u4e3a FALSE\u3002 match = TRUE\uff0c\u5219\u8fd4\u56de\u5339\u914d\u7684\u90e8\u5206\u5185\u5bb9\uff0c\u800c\u6ca1\u6709\u4f4d\u7f6e

  • ...\uff1a \u5176\u4ed6\u53c2\u6570\uff0c\u7528\u4e8e\u4f20\u9012\u7ed9 stringr::str_view_all() \u51fd\u6570\u3002

"},{"location":"R/stringr/str_view_all%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_view_all\u67e5\u770b\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\ntext <- \"abc123def456ghi789\"\n\n# \u67e5\u770b\u6240\u6709\u6570\u5b57\u7684\u4f4d\u7f6e\nview_all_result <- str_view_all(text, \"\\\\d\")\n\n# \u663e\u793a\u7ed3\u679c\nprint(view_all_result)\n
"},{"location":"R/stringr/str_view_all%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_view_all() \u51fd\u6570\u7528\u4e8e\u67e5\u770b\u5b57\u7b26\u4e32 \"abc123def456ghi789\" \u4e2d\u6240\u6709\u6570\u5b57\u7684\u4f4d\u7f6e\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u5305\u542b\u76f8\u5e94\u6570\u5b57\u7684\u5339\u914d\u4fe1\u606f\u3002\u793a\u4f8b\u4e2d\u7684\u8f93\u51fa\u7ed3\u679c\u53ef\u80fd\u7c7b\u4f3c\u4e8e\uff1a

[[1]]\n   match start end\n1     1     4   4\n\n[[2]]\n   match start end\n1     2     8   8\n\n[[3]]\n   match start end\n1     3    12  12\n

\u8fd9\u8868\u793a\u6570\u5b57 \"1\" \u4f4d\u4e8e\u4f4d\u7f6e4\uff0c\u6570\u5b57 \"2\" \u4f4d\u4e8e\u4f4d\u7f6e8\uff0c\u6570\u5b57 \"3\" \u4f4d\u4e8e\u4f4d\u7f6e12\u3002\u5982\u679c\u8bbe\u7f6e\u4e86 match = TRUE\uff0c\u5219\u8fd4\u56de\u5339\u914d\u7684\u90e8\u5206\u5185\u5bb9\uff0c\u800c\u4e0d\u662f\u4f4d\u7f6e\u3002

"},{"location":"R/stringr/str_wrap%28%29/","title":"Str wrap()","text":"

str_wrap()\u51fd\u6570\u662fstringr\u5305\u4e2d\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u6307\u5b9a\u7684\u5217\u5bbd\u5ea6\u5185\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u6210\u591a\u884c\u3002\u4ee5\u4e0b\u662f\u5173\u4e8estr_wrap()\u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/str_wrap%28%29/#str_wrap","title":"str_wrap\u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5728\u6307\u5b9a\u7684\u5217\u5bbd\u5ea6\u5185\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u6210\u591a\u884c\u3002

\u6240\u5c5e\u5305\uff1a str_wrap\u51fd\u6570\u5c5e\u4e8estringr\u5305\uff0c\u53ef\u4ee5\u901a\u8fc7tidyverse\u52a0\u8f7d\u3002

\u5b9a\u4e49\uff1a

str_wrap(string, width = 80, indent = 0, exdent = 0, prefix = \"\")\n

"},{"location":"R/stringr/str_wrap%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • string\uff1a \u8981\u62c6\u5206\u7684\u5b57\u7b26\u5411\u91cf\u3001\u5b57\u7b26\u4e32\u6216\u56e0\u5b50\u3002

  • width\uff1a \u4e00\u4e2a\u6574\u6570\uff0c\u6307\u5b9a\u5217\u5bbd\u5ea6\uff0c\u5373\u6bcf\u884c\u7684\u5b57\u7b26\u6570\u3002\u9ed8\u8ba4\u4e3a80\u3002

  • indent\uff1a \u4e00\u4e2a\u6574\u6570\uff0c\u6307\u5b9a\u6bcf\u884c\u7684\u7f29\u8fdb\u5b57\u7b26\u6570\u3002\u9ed8\u8ba4\u4e3a0\u3002

  • exdent\uff1a \u4e00\u4e2a\u6574\u6570\uff0c\u6307\u5b9a\u6bcf\u4e2a\u6bb5\u843d\u7684\u7f29\u8fdb\u5b57\u7b26\u6570\u3002\u9ed8\u8ba4\u4e3a0\u3002

  • prefix\uff1a \u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u6dfb\u52a0\u5230\u6bcf\u884c\u7684\u5f00\u5934\u3002

"},{"location":"R/stringr/str_wrap%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u5b89\u88c5\u5e76\u52a0\u8f7dtidyverse\u5305\ninstall.packages(\"tidyverse\")\nlibrary(tidyverse)\n\n# \u4f7f\u7528str_wrap\u5c06\u5b57\u7b26\u4e32\u62c6\u5206\u6210\u591a\u884c\ntext <- \"This is a long piece of text that we want to wrap to fit within a specified width. Let's see how str_wrap handles this!\"\n\nwrapped_text <- str_wrap(text, width = 30)\n\n# \u663e\u793a\u62c6\u5206\u540e\u7684\u6587\u672c\ncat(wrapped_text)\n
"},{"location":"R/stringr/str_wrap%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\u5728\u4e0a\u8ff0\u793a\u4f8b\u4e2d\uff0cstr_wrap()\u51fd\u6570\u7528\u4e8e\u5c06\u6587\u672c\u62c6\u5206\u6210\u591a\u884c\uff0c\u6bcf\u884c\u4e0d\u8d85\u8fc730\u4e2a\u5b57\u7b26\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a

This is a long piece of text\nthat we want to wrap to fit\nwithin a specified width.\nLet's see how str_wrap handles\nthis!\n

\u8fd9\u8868\u793a\u6587\u672c\u5df2\u7ecf\u88ab\u6210\u529f\u62c6\u5206\u6210\u591a\u884c\uff0c\u6bcf\u884c\u4e0d\u8d85\u8fc730\u4e2a\u5b57\u7b26\u3002\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u6587\u672c\u548c\u53c2\u6570\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002

"},{"location":"R/stringr/stringr%EF%BC%9A%EF%BC%9Aword%28%29/","title":"Stringr\uff1a\uff1aword()","text":"

\u5728 R \u8bed\u8a00\u4e2d\uff0cstringr::word() \u51fd\u6570\u7528\u4e8e\u63d0\u53d6\u6587\u672c\u4e2d\u7684\u5355\u8bcd\u3002\u4ece\u6587\u672c\u4e2d\u63d0\u53d6\u6307\u5b9a\u4f4d\u7f6e\u7684\u5355\u8bcd\u3002

library(stringr)\n\n# \u4f7f\u7528 word() \u51fd\u6570\u63d0\u53d6\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u8bcd\nresult <- word(\"This is a sentence.\", start = 2, end = 4)\n\n# \u6253\u5370\u7ed3\u679c\nprint(result)\n\n\u8f93\u51fa\n[1] \"is\"  \"a\"   \"sentence.\"\n

\u5b9a\u4e49\uff1a

stringr::word(string, start = 1, end = start, sep = \"\\\\s+\")\n

\u53c2\u6570\u4ecb\u7ecd\uff1a - string\uff1a\u8981\u64cd\u4f5c\u7684\u5b57\u7b26\u4e32\u6216\u5b57\u7b26\u5411\u91cf\u3002

  • start\uff1a\u8981\u63d0\u53d6\u7684\u5355\u8bcd\u7684\u8d77\u59cb\u4f4d\u7f6e\u3002

  • end\uff1a\u8981\u63d0\u53d6\u7684\u5355\u8bcd\u7684\u7ed3\u675f\u4f4d\u7f6e\u3002

  • sep\uff1a\u5206\u9694\u7b26\uff0c\u5206\u9694\u5355\u8bcd\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u683c\u3002

\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0cstringr::word() \u51fd\u6570\u88ab\u7528\u4e8e\u4ece\u5b57\u7b26\u4e32 \"This is a sentence.\" \u4e2d\u63d0\u53d6\u4f4d\u7f6e\u4ece 2 \u5230 4 \u7684\u5355\u8bcd\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0csep \u53c2\u6570\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f \"\\s+\"\uff0c\u8868\u793a\u4f7f\u7528\u7a7a\u683c\u4f5c\u4e3a\u5355\u8bcd\u7684\u5206\u9694\u7b26\u3002

"},{"location":"R/stringr/writeLines%28%29/","title":"writeLines()","text":"

writeLines() \u662f R \u4e2d\u7528\u4e8e\u5c06\u6587\u672c\u5199\u5165\u6587\u4ef6\u7684\u57fa\u672c\u51fd\u6570\u3002\u4ee5\u4e0b\u662f\u5173\u4e8e writeLines() \u51fd\u6570\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff1a

"},{"location":"R/stringr/writeLines%28%29/#writelines","title":"writeLines \u51fd\u6570\u6982\u8ff0\uff1a","text":"

\u529f\u80fd\uff1a \u5c06\u5b57\u7b26\u5411\u91cf\u7684\u5185\u5bb9\u5199\u5165\u6587\u4ef6\u4e2d\u3002

\u5b9a\u4e49\uff1a

writeLines(text, con = \"123.txt\")\n

"},{"location":"R/stringr/writeLines%28%29/#_1","title":"\u53c2\u6570\u4ecb\u7ecd\uff1a","text":"
  • text\uff1a \u5305\u542b\u8981\u5199\u5165\u6587\u4ef6\u7684\u5b57\u7b26\u5411\u91cf\u3002

  • con\uff1a \u8981\u5199\u5165\u7684\u6587\u4ef6\u7684\u8fde\u63a5\u3002\u53ef\u4ee5\u662f\u6587\u4ef6\u540d\u7684\u5b57\u7b26\u5b57\u7b26\u4e32\uff0c\u4e5f\u53ef\u4ee5\u662f\u8fde\u63a5\u5230\u5df2\u6253\u5f00\u6587\u4ef6\u7684\u8fde\u63a5\u3002

"},{"location":"R/stringr/writeLines%28%29/#_2","title":"\u793a\u4f8b\uff1a","text":"
# \u521b\u5efa\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf\nlines <- c(\"Line 1\", \"Line 2\", \"Line 3\")\n\n# \u5c06\u5b57\u7b26\u5411\u91cf\u5199\u5165\u6587\u4ef6\nwriteLines(lines, \"output.txt\")\n

\u4e0a\u8ff0\u793a\u4f8b\u521b\u5efa\u4e86\u4e00\u4e2a\u5b57\u7b26\u5411\u91cf lines\uff0c\u7136\u540e\u4f7f\u7528 writeLines() \u51fd\u6570\u5c06\u5176\u5199\u5165\u540d\u4e3a \"output.txt\" \u7684\u6587\u4ef6\u4e2d\u3002

"},{"location":"R/stringr/writeLines%28%29/#_3","title":"\u8f93\u51fa\uff1a","text":"

\"output.txt\" \u6587\u4ef6\u7684\u5185\u5bb9\u5c06\u5982\u4e0b\u6240\u793a\uff1a

Line 1\nLine 2\nLine 3\n

\u8fd9\u8868\u793a\u5b57\u7b26\u5411\u91cf\u4e2d\u7684\u6bcf\u884c\u6587\u672c\u5df2\u6210\u529f\u5199\u5165\u6587\u4ef6\u3002

\u8bf7\u6ce8\u610f\uff0c\u5728\u5b9e\u9645\u4f7f\u7528\u4e2d\uff0c\u4f60\u53ef\u80fd\u9700\u8981\u63d0\u4f9b\u5b8c\u6574\u7684\u6587\u4ef6\u8def\u5f84\uff0c\u6216\u8005\u786e\u4fdd R \u5de5\u4f5c\u76ee\u5f55\u4e0b\u6709\u5199\u5165\u6743\u9650\u3002

"},{"location":"life/","title":"Introduce","text":"

\u6b64\u5904\u7701\u7565...

"},{"location":"life/food-records/","title":"\u5403\u4e0d\u591f","text":"

\u201c\u8fd9\u4e16\u95f4\uff0c\u552f\u6709\u7f8e\u98df\u548c\u7231\u4e0d\u53ef\u8f9c\u8d1f\u201d\u3002

"},{"location":"life/food-records/#_1","title":"\u6821\u5916\u63a8\u8350","text":""},{"location":"life/food-records/#_2","title":"\u715c\u73b2\u53cc\u559c\u94c1\u677f\u70e7(\u4e1c\u6e56\u6751\u603b\u5e97)","text":"

\u6e56\u5317\u7701\u6b66\u6c49\u5e02\u6b66\u660c\u533a\u516b\u4e00\u8def\u4e1c\u6e56\u65b0\u675196\u53f7\u5e95\u5546(\u6b66\u6c49\u5927\u5b66\u65c1)

"},{"location":"life/food-records/#rex-pizza","title":"rex pizza\u96f7\u514b\u65af\u62ab\u8428\u9910\u5385(\u6b66\u5927\u5e97)","text":"

\u6e56\u5317\u7701\u6b66\u6c49\u5e02\u6d2a\u5c71\u533a\u5e7f\u516b\u8def62\u53f79-10\u53f7\u95e8\u9762(\u5e7f\u57e0\u5c6f\u5730\u94c1K\u51fa\u53e3\u5317\u884c180\u7c73)

"},{"location":"life/food-records/#_3","title":"\u6f8e\u6e56\u6e7e\u519c\u5bb6\u83dc(\u516b\u4e00\u8def\u695a\u5929\u5e9c\u5e97)","text":""},{"location":"life/food-records/#_4","title":"\u8001\u5317\u4eac\u6dae\u8089(\u4e1c\u6e56\u5e97)","text":"

\u5f3a\u70c8\u63a8\u8350\u829d\u9ebb\u70e7\u997c\uff0c\u4e0d\u4f1a\u70b9\u53ef\u4ee5\u8ba9\u8001\u677f\u63a8\u8350\uff0c\u5e97\u9762\u6bd4\u8f83\u5c0f\u3002

"},{"location":"life/food-records/#_5","title":"\u91cd\u5e86\u7279\u8272\u51b7\u9505\u9c7c(\u6b66\u5927\u5e97)","text":"

\u6e56\u5317\u7701\u6b66\u6c49\u5e02\u6d2a\u5c71\u533a\u73de\u72ee\u8def8\u53f7\u8363\u6cf0\u5c0f\u533a7\u680b1\u95e8101

"},{"location":"life/food-records/#_6","title":"\u4e49\u6c14\u7f8a\u8089\u7c89","text":"

\u6e56\u5317\u7701\u6b66\u6c49\u5e02\u6b66\u660c\u533a\u6d2a\u5c71\u4fa7\u8def11\u96442\u53f7(\u5f20\u5bb6\u6e7e\u5c0f\u533a\u5357\u95e8\u6b63\u5bf9\u9762)

\u5f3a\u70c8\u63a8\u8350\u8fd9\u5bb6\u7684\u7c73\u9152\u3002

"},{"location":"life/food-records/#_7","title":"\u6821\u56ed\u5185\u63a8\u8350","text":""},{"location":"life/food-records/#_8","title":"\u7530\u56ed\u73c8\u5bb4","text":"

\u7530\u56ed\u98df\u5802

"},{"location":"life/food-records/#_9","title":"\u5477\u54fa\u5477\u54fa\u5c0f\u706b\u9505\u3001\u6cf0\u5f0f\u9910\u5385","text":"

\u6885\u56ed

"},{"location":"life/food-records/#_10","title":"\u73ed\u7ea7\u805a\u9910\u63a8\u8350","text":""},{"location":"life/food-records/#_11","title":"\u6c5f\u5357\u5c0f\u89c2\u56ed\u9910\u5385(\u4e2d\u5546\u5e73\u4ef7\u8d2d\u7269\u5e7f\u573a\u5e97)","text":"

\u6e56\u5317\u7701\u6b66\u6c49\u5e02\u6d2a\u5c71\u533a\u73de\u5357\u8857\u9053\u73de\u73c8\u5c71\u8def19\u53f7\u4e2d\u5546\u5e73\u4ef7\u8d2d\u7269\u5e7f\u573a5\u697c(\u6b66\u6c49\u5927\u5b66\u6b63\u95e8\u5bf9\u9762)

\u611f\u89c9\u8fd9\u5bb6\u6240\u5728\u7684\u5546\u573a\u5feb\u5012\u95ed\u4e86\uff0c\u9700\u8981\u63d0\u524d\u95ee\u95ee\u662f\u5426\u5173\u95e8\u4e86\u3002

"},{"location":"life/food-records/#_12","title":"\u9c7c\u5934\u6ce1\u996d\uff08\u6c34\u679c\u6e56\u5e97\uff09","text":""},{"location":"life/predict/","title":"\u660e\u5929\u4f1a\u4e0b\u96e8","text":"
  • NFC\u975e\u8feb\u9009\u578b\u6027\u683c\u6d4b\u8bd5

  • \u970d\u683c\u6c83\u8328\u5206\u9662\u6d4b\u8bd5

"},{"location":"mysql/","title":"Index","text":"

\u3010\u9ed1\u9a6c\u7a0b\u5e8f\u5458 MySQL\u6570\u636e\u5e93\u5165\u95e8\u5230\u7cbe\u901a\uff0c\u4ecemysql\u5b89\u88c5\u5230mysql\u9ad8\u7ea7\u3001mysql\u4f18\u5316\u5168\u56ca\u62ec\u3011

"},{"location":"mysql/MySQL/","title":"MySQL\u57fa\u7840\u7bc7","text":"

MySQL\u5339\u914d\u73af\u5883\u540e\uff0c\u76f4\u63a5win+R\u8fdbcmd

mysql -u root -p\npassword:xxxx\n
"},{"location":"mysql/MySQL/#_1","title":"\u901a\u7528\u8bed\u6cd5\u53ca\u5206\u7c7b","text":""},{"location":"mysql/MySQL/#ddl","title":"DDL\uff08\u6570\u636e\u5b9a\u4e49\u8bed\u8a00\uff09","text":"

\u6570\u636e\u5e93\u64cd\u4f5c

-- \u6570\u636e\u5e93\u64cd\u4f5c\n/* \u591a\u884c\u6ce8\u91ca */\nshow databases; -- \u67e5\u6240\u6709\u6570\u636e\u5e93\nselect database(); -- \u5f53\u524d\u5728\u54ea\u4e2a\u6570\u636e\u5e93\u4e0b\u64cd\u4f5c\nuse database_name; -- \u4f7f\u7528\u6570\u636e\u5e93\uff0c\u8f6c\u6362\u5230\u9700\u8981\u64cd\u4f5c\u7684\u6570\u636e\u5e93\u5bf9\u8c61\n\ncreate databases [if not exists] database_name charset utf8mb4; -- \u521b\u5efa\u6570\u636e\u5e93\ndrop databases [if exists] database_name; -- \u5220\u9664\u6570\u636e\u5e93\n

\u8868\u7ed3\u6784\u64cd\u4f5c

-- \u8868\u64cd\u4f5c\nshow tables; -- \u67e5\u8be2\u5f53\u524d\u6570\u636e\u5e93\u6240\u6709\u8868\ndesc tb_name;  -- \u67e5\u8be2\u8868\u6846\u67b6\nshow create table tb_name; -- \u770b\u521b\u5efa\u8868\u7684\u5177\u4f53\u8bed\u53e5\n\n-- \u521b\u5efa\u8868\ncreate table tb_name(\nid int [comment \u5b57\u6bb5\u6ce8\u91ca];\nname char(10) [comment \u59d3\u540d];\nage int [comment \u5e74\u9f84];\ngender char(10) [comment \u6027\u522b]\n) comment \u7528\u6237\u8868; -- \u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u540e\u9762\u6ca1\u6709\u9017\u53f7\n\n-- \u8868\u5185\u5bb9\u7684\u589e\u6539\u5220\nalter table tb_name add nickname char(10) [comment '\u6635\u79f0']; \n-- \u6dfb\u52a0\u5b57\u6bb5\nalter table tb_name drop id_change; -- \u5220\u9664\u5b57\u6bb5\nalter table tb_name modify id char(10); -- \u4fee\u6539\u6570\u636e\u7c7b\u578b\nalter table tb_name change id id_change char(10) [comment '\u7528\u6237\u540d']; -- \u4fee\u6539\u5b57\u6bb5\u540d\u548c\u5b57\u6bb5\u7c7b\u578b\nalter table tb_name rename to tb_name_new; -- \u4fee\u6539\u8868\u540d\n\n-- \u5220\u9664\u8868\ndrop table [if exists] tb_name_new; -- \u5220\u9664\u8868\ntruncate table tb_name_new; -- \u5220\u9664\u539f\u8868\u5e76\u521b\u5efa\u4e00\u6837\u8868\u5934\u7684\u65b0\u8868 \n

\u5b57\u6bb5\uff08\u6570\u636e\uff09\u7c7b\u578b

"},{"location":"mysql/MySQL/#dml","title":"DML\uff08\u6570\u636e\u64cd\u4f5c\u8bed\u8a00\uff09","text":"

\u5bf9\u8868\u4e2d\u6570\u636e\u8fdb\u884c\u64cd\u4f5c

-- \u5355\u4e00\u6dfb\u52a0\ninsert into tb_name (field_name1,field_name2... ) values (\u503c1,\u503c2...); -- \u5bf9\u6307\u5b9a\u5b57\u6bb5\u6dfb\u52a0\u6570\u636e\nINSERT INTO tb_name VALUES (\u503c1, \u503c2, ...);  -- \u5bf9\u5168\u90e8\u5b57\u6bb5\u6dfb\u52a0\u6570\u636e\n\n-- \u6279\u91cf\u6dfb\u52a0\nINSERT INTO tb_name (\u5b57\u6bb5\u540d1, \u5b57\u6bb5\u540d2, ...) VALUES (\u503c1, \u503c2, ...), (\u503c1, \u503c2, ...), (\u503c1, \u503c2, ...); -- \u6307\u5b9a\u5b57\u6bb5\nINSERT INTO tb_name VALUES (\u503c1, \u503c2, ...), (\u503c1, \u503c2, ...), (\u503c1, \u503c2, ...); -- \u5168\u90e8\u5b57\u6bb5\n\n-- \u6539\nUPDATE tb_name SET \u5b57\u6bb5\u540d1 = \u503c1, \u5b57\u6bb5\u540d2 = \u503c2, ... \n[ WHERE id = 1];  \n\n-- \u5220\nDELETE FROM \u8868\u540d [ WHERE \u6761\u4ef6 ]; \n

\u6ce8\u610f\u4e8b\u9879

  • \u5b57\u7b26\u4e32\u548c\u65e5\u671f\u7c7b\u578b\u6570\u636e\u5e94\u8be5\u5305\u542b\u5728\u5f15\u53f7\u4e2d

  • \u63d2\u5165\u7684\u6570\u636e\u5927\u5c0f\u5e94\u8be5\u5728\u5b57\u6bb5\u7684\u89c4\u5b9a\u8303\u56f4\u5185

"},{"location":"mysql/MySQL/#dql","title":"DQL\uff08\u6570\u636e\u67e5\u8be2\u8bed\u8a00\uff09","text":"
-- \u7f16\u5199\u987a\u5e8f\uff1a\nselect \u5b57\u6bb5\u5217\u8868 \nfrom \u8868\u540d\u5217\u8868 \nwhere \u6761\u4ef6\u5217\u8868 \ngroup by \u5206\u7ec4\u5b57\u6bb5\u5217\u8868 \nhaving \u5206\u7ec4\u540e\u6761\u4ef6\u5217\u8868 \norder by \u6392\u5e8f\u5b57\u6bb5\u5217\u8868\nlimit \u5206\u9875\u53c2\u6570\uff1b\n\n-- \u6267\u884c\u987a\u5e8f\uff1a\nFROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY -> LIMIT\n\n-- 1\uff0c\u57fa\u7840\u67e5\u8be2\nselect field_name1,field_name2... from tb_name;  -- \u67e5\u8be2\u591a\u4e2a\u5b57\u6bb5\nselect * from tb_name; -- \u67e5\u8be2\u6240\u6709\u5b57\u6bb5\n\nselect field_name1 [as filed_name2] from tb_name; -- \u8bbe\u7f6e\u522b\u540d1\nselect field_name1 filed_name2 from tb_name; -- \u8bbe\u7f6e\u522b\u540d2\n\nselect distinct field_name from tb_name; -- \u53bb\u91cd\n\n-- 2\uff0c\u6761\u4ef6\u67e5\u8be2\n select field_name from tb_name where \u6761\u4ef6\u5217\u8868\uff1b -- \u7ec6\u770b\u4e0b\u9762\u7684\u4e3e\u4f8b\n\n-- \u805a\u5408\u51fd\u6570\nSELECT \u805a\u5408\u51fd\u6570(field_name1,field_name2...) FROM tb_name; -- NULL\u503c\u4e0d\u53c2\u4e0e\u805a\u5408\u51fd\u6570\n\n-- \u5206\u7ec4\u67e5\u8be2\nSELECT field_name1,field_name2... FROM tb_name [ WHERE \u6761\u4ef6\u5217\u8868 ] GROUP BY \u5206\u7ec4\u5b57\u6bb5\u540d [ HAVING \u5206\u7ec4\u540e\u7684\u8fc7\u6ee4\u6761\u4ef6 ]; -- where\u7b5b\u9009\uff0c\u518d\u5206\u7ec4\uff0c\u6267\u884c\u805a\u5408\u51fd\u6570\uff0c\u518d\u6839\u636ehaving\u4e8c\u6b21\u7b5b\u9009\n\n-- \u6392\u5e8f\u67e5\u8be2\nSELECT field_name1,field_name2... FROM tb_name ORDER BY \u5b57\u6bb51 \u6392\u5e8f\u65b9\u5f0f1, \u5b57\u6bb52 \u6392\u5e8f\u65b9\u5f0f2; -- ASC: \u5347\u5e8f\uff08\u9ed8\u8ba4\uff09;DESC: \u964d\u5e8f\n\n-- \u5206\u9875\u67e5\u8be2\n\u8bed\u6cd5\uff1a  \nSELECT field_name1,field_name2... FROM tb_name LIMIT \u8d77\u59cb\u7d22\u5f15, \u67e5\u8be2\u8bb0\u5f55\u6570;\n
"},{"location":"mysql/MySQL/#1","title":"1\uff0c\u57fa\u7840\u67e5\u8be2","text":""},{"location":"mysql/MySQL/#2","title":"2\uff0c\u6761\u4ef6\u67e5\u8be2","text":"

\u8f6c\u4e49\uff1a

SELECT * FROM \u8868\u540d WHERE name LIKE '/_\u5f20\u4e09' ESCAPE '/'

/ \u4e4b\u540e\u7684_\u4e0d\u4f5c\u4e3a\u901a\u914d\u7b26

\u6bd4\u8f83\u8fd0\u7b97\u7b26 \u529f\u80fd > \u5927\u4e8e >= \u5927\u4e8e\u7b49\u4e8e < \u5c0f\u4e8e <= \u5c0f\u4e8e\u7b49\u4e8e = \u7b49\u4e8e <> \u6216 != \u4e0d\u7b49\u4e8e BETWEEN ... AND ... \u5728\u67d0\u4e2a\u8303\u56f4\u5185\uff08\u542b\u6700\u5c0f\u3001\u6700\u5927\u503c\uff09 IN(...) \u5728in\u4e4b\u540e\u7684\u5217\u8868\u4e2d\u7684\u503c\uff0c\u591a\u9009\u4e00 LIKE \u5360\u4f4d\u7b26 \u6a21\u7cca\u5339\u914d\uff08_\u5339\u914d\u5355\u4e2a\u5b57\u7b26\uff0c%\u5339\u914d\u4efb\u610f\u4e2a\u5b57\u7b26\uff09 IS NULL \u662fNULL

\u5173\u4e8ein\u53d6\u8303\u56f4\u503c\uff01

where \u4ea4\u6613\u5361\u53f7IN ('621582xxxxxxxxxxxxx', '6228480xxxxxxxxxxxxx')

\u903b\u8f91\u8fd0\u7b97\u7b26 \u529f\u80fd AND \u6216 && \u5e76\u4e14\uff08\u591a\u4e2a\u6761\u4ef6\u540c\u65f6\u6210\u7acb\uff09 OR \u6216 || \u6216\u8005\uff08\u591a\u4e2a\u6761\u4ef6\u4efb\u610f\u4e00\u4e2a\u6210\u7acb\uff09 NOT \u6216 ! \u975e\uff0c\u4e0d\u662f

\u4f8b\u5b50\uff1a

-- \u5e74\u9f84\u7b49\u4e8e30\nselect * from employee where age = 30;\n-- \u5e74\u9f84\u5c0f\u4e8e30\nselect * from employee where age < 30;\n-- \u5c0f\u4e8e\u7b49\u4e8e\nselect * from employee where age <= 30;\n-- \u6ca1\u6709\u8eab\u4efd\u8bc1\nselect * from employee where idcard is null or idcard = '';\n-- \u6709\u8eab\u4efd\u8bc1\nselect * from employee where idcard;\nselect * from employee where idcard is not null;\n-- \u4e0d\u7b49\u4e8e\nselect * from employee where age != 30;\n-- \u5e74\u9f84\u572820\u523030\u4e4b\u95f4\nselect * from employee where age between 20 and 30;\nselect * from employee where age >= 20 and age <= 30;\n-- \u4e0b\u9762\u8bed\u53e5\u4e0d\u62a5\u9519\uff0c\u4f46\u67e5\u4e0d\u5230\u4efb\u4f55\u4fe1\u606f\nselect * from employee where age between 30 and 20;\n-- \u6027\u522b\u4e3a\u5973\u4e14\u5e74\u9f84\u5c0f\u4e8e30\nselect * from employee where age < 30 and gender = '\u5973';\n-- \u5e74\u9f84\u7b49\u4e8e25\u621630\u621635\nselect * from employee where age = 25 or age = 30 or age = 35;\nselect * from employee where age in (25, 30, 35);\n-- \u59d3\u540d\u4e3a\u4e24\u4e2a\u5b57\nselect * from employee where name like '__';\n-- \u8eab\u4efd\u8bc1\u6700\u540e\u4e3aX\nselect * from employee where idcard like '%X';\nselect * from employee where idcard like '_________________X';\n
"},{"location":"mysql/MySQL/#3","title":"3\uff0c\u805a\u5408\u67e5\u8be2\uff08\u805a\u5408\u51fd\u6570\uff09","text":"

\u5e38\u89c1\u805a\u5408\u51fd\u6570\uff1a

\u51fd\u6570 \u529f\u80fd count \u7edf\u8ba1\u6570\u91cf max \u6700\u5927\u503c min \u6700\u5c0f\u503c avg \u5e73\u5747\u503c,\u4e0d\u662f\u201cmean\u201d sum \u6c42\u548c

\u4f8b\u5b50\uff1a

-- count()\nSELECT count(id) from employee where workaddress = \"\u5e7f\u4e1c\u7701\";\nSELECT count(*) from employee where workaddress = \"\u5e7f\u4e1c\u7701\";\n
"},{"location":"mysql/MySQL/#4","title":"4\uff0c\u5206\u7ec4\u67e5\u8be2","text":"

where \u548c having \u7684\u533a\u522b\uff1a

  • \u6267\u884c\u65f6\u673a\u4e0d\u540c\uff1awhere\u662f\u5206\u7ec4\u4e4b\u524d\u8fdb\u884c\u8fc7\u6ee4\uff0c\u4e0d\u6ee1\u8db3where\u6761\u4ef6\u4e0d\u53c2\u4e0e\u5206\u7ec4\uff1bhaving\u662f\u5206\u7ec4\u540e\u5bf9\u7ed3\u679c\u8fdb\u884c\u8fc7\u6ee4\u3002

  • \u5224\u65ad\u6761\u4ef6\u4e0d\u540c\uff1awhere\u4e0d\u80fd\u5bf9\u805a\u5408\u51fd\u6570\u8fdb\u884c\u5224\u65ad\uff0c\u800chaving\u53ef\u4ee5\u3002

\u6ce8\u610f\u4e8b\u9879\uff1a

  • \u6267\u884c\u987a\u5e8f\uff1awhere > \u805a\u5408\u51fd\u6570 > having

  • \u5206\u7ec4\u4e4b\u540e\uff0c\u67e5\u8be2\u7684\u5b57\u6bb5\u4e00\u822c\u4e3a\u805a\u5408\u51fd\u6570\u548c\u5206\u7ec4\u5b57\u6bb5\uff0c\u67e5\u8be2\u5176\u4ed6\u5b57\u6bb5\u65e0\u4efb\u4f55\u610f\u4e49

\u4f8b\u5b50\uff1a

-- \u6839\u636e\u6027\u522b\u5206\u7ec4\uff0c\u7edf\u8ba1\u7537\u6027\u548c\u5973\u6027\u6570\u91cf\uff08\u53ea\u663e\u793a\u5206\u7ec4\u6570\u91cf\uff0c\u4e0d\u663e\u793a\u54ea\u4e2a\u662f\u7537\u54ea\u4e2a\u662f\u5973\uff09\nselect count(*) from employee group by gender;\n-- \u6839\u636e\u6027\u522b\u5206\u7ec4\uff0c\u7edf\u8ba1\u7537\u6027\u548c\u5973\u6027\u6570\u91cf\nselect gender, count(*) from employee group by gender;\n-- \u6839\u636e\u6027\u522b\u5206\u7ec4\uff0c\u7edf\u8ba1\u7537\u6027\u548c\u5973\u6027\u7684\u5e73\u5747\u5e74\u9f84\nselect gender, avg(age) from employee group by gender;\n-- \u5e74\u9f84\u5c0f\u4e8e45\uff0c\u5e76\u6839\u636e\u5de5\u4f5c\u5730\u5740\u5206\u7ec4\nselect workaddress, count(*) from employee where age < 45 group by workaddress;\n-- \u5e74\u9f84\u5c0f\u4e8e45\uff0c\u5e76\u6839\u636e\u5de5\u4f5c\u5730\u5740\u5206\u7ec4\uff0c\u83b7\u53d6\u5458\u5de5\u6570\u91cf\u5927\u4e8e\u7b49\u4e8e3\u7684\u5de5\u4f5c\u5730\u5740\nselect workaddress, count(*) address_count from employee where age < 45 group by workaddress having address_count >= 3;\n
"},{"location":"mysql/MySQL/#5","title":"5\uff0c\u6392\u5e8f\u67e5\u8be2","text":"

\u6ce8\u610f\u4e8b\u9879

\u5982\u679c\u662f\u591a\u5b57\u6bb5\u6392\u5e8f\uff0c\u5148\u5bf9\u7b2c\u4e00\u4e2a\u5b57\u6bb5\u8fdb\u884c\u6392\u5e8f\uff0c\u5728\u6b21\u57fa\u7840\u4e0a\uff0c\u5728\u76f8\u540c\u7684\u7b2c\u4e00\u5b57\u6bb5\u4e0b\u518d\u5bf9\u7b2c\u4e8c\u5b57\u6bb5\u8fdb\u884c\u6392\u5e8f\uff1b

\u4f8b\u5b50\uff1a

-- \u6839\u636e\u5e74\u9f84\u5347\u5e8f\u6392\u5e8f\nSELECT * FROM employee ORDER BY age ASC;\nSELECT * FROM employee ORDER BY age;\n-- \u4e24\u5b57\u6bb5\u6392\u5e8f\uff0c\u6839\u636e\u5e74\u9f84\u5347\u5e8f\u6392\u5e8f\uff0c\u5165\u804c\u65f6\u95f4\u964d\u5e8f\u6392\u5e8f(\u5982\u679c\u5e74\u9f84\u76f8\u540c\u90a3\u4e48\u5c31\u6309\u8fd9\u4e2a)\nSELECT * FROM employee ORDER BY age ASC, entrydate DESC;\n

"},{"location":"mysql/MySQL/#6","title":"6\uff0c\u5206\u9875\u67e5\u8be2","text":"

\u4f8b\u5b50\uff1a

-- \u67e5\u8be2\u7b2c\u4e00\u9875\u6570\u636e\uff0c\u5c55\u793a10\u6761\nSELECT * FROM employee LIMIT 0, 10;\nSELECT * FROM employee LIMIT    10;\n-- \u67e5\u8be2\u7b2c\u4e8c\u9875\nSELECT * FROM employee LIMIT 10, 10;\n

\u6ce8\u610f\u4e8b\u9879 - \u8d77\u59cb\u7d22\u5f15\u4ece0\u5f00\u59cb\uff0c\u8d77\u59cb\u7d22\u5f15 = \uff08\u67e5\u8be2\u9875\u7801 - 1\uff09 * \u6bcf\u9875\u663e\u793a\u8bb0\u5f55\u6570

  • \u5206\u9875\u67e5\u8be2\u662f\u6570\u636e\u5e93\u7684\u65b9\u8a00\uff0c\u4e0d\u540c\u6570\u636e\u5e93\u6709\u4e0d\u540c\u5b9e\u73b0\uff0cMySQL\u662fLIMIT

  • \u5982\u679c\u67e5\u8be2\u7684\u662f\u7b2c\u4e00\u9875\u6570\u636e\uff0c\u8d77\u59cb\u7d22\u5f15\u53ef\u4ee5\u7701\u7565\uff0c\u76f4\u63a5\u7b80\u5199 LIMIT 10\uff0c\u7701\u7565\u4e860

"},{"location":"mysql/MySQL/#dcl","title":"DCL\u6570\u636e\u63a7\u5236","text":"
-- 1\uff0c\u7ba1\u7406\u7528\u6237\n-- \u67e5\u8be2\u7528\u6237\uff1a\nUSER mysql;\nSELECT * FROM user;\n-- \u521b\u5efa\u7528\u6237:  \nCREATE USER '\u7528\u6237\u540d'@'\u4e3b\u673a\u540d' IDENTIFIED BY '\u5bc6\u7801';\n-- \u4fee\u6539\u7528\u6237\u5bc6\u7801\uff1a  \nALTER USER '\u7528\u6237\u540d'@'\u4e3b\u673a\u540d' IDENTIFIED WITH mysql_native_password BY '\u65b0\u5bc6\u7801';\n-- \u5220\u9664\u7528\u6237\uff1a  \nDROP USER '\u7528\u6237\u540d'@'\u4e3b\u673a\u540d';\n\n\n-- 2\uff0c\u6743\u9650\u63a7\u5236\n-- \u67e5\u8be2\u6743\u9650\uff1a  \nSHOW GRANTS FOR '\u7528\u6237\u540d'@'\u4e3b\u673a\u540d';\n-- \u6388\u4e88\u6743\u9650\uff1a  \nGRANT \u6743\u9650\u5217\u8868 ON \u6570\u636e\u5e93\u540d.\u8868\u540d TO '\u7528\u6237\u540d'@'\u4e3b\u673a\u540d';\n-- \u64a4\u9500\u6743\u9650\uff1a  \nREVOKE \u6743\u9650\u5217\u8868 ON \u6570\u636e\u5e93\u540d.\u8868\u540d FROM '\u7528\u6237\u540d'@'\u4e3b\u673a\u540d';\n

\u6ce8\u610f\u4e8b\u9879

  • \u4e3b\u673a\u540d\u53ef\u4ee5\u4f7f\u7528 % \u901a\u914d

  • \u591a\u4e2a\u6743\u9650\u7528\u9017\u53f7\u5206\u9694

  • \u6388\u6743\u65f6\uff0c\u6570\u636e\u5e93\u540d\u548c\u8868\u540d\u53ef\u4ee5\u7528 * \u8fdb\u884c\u901a\u914d\uff0c\u4ee3\u8868\u6240\u6709

\u6743\u9650 \u8bf4\u660e ALL, ALL PRIVILEGES \u6240\u6709\u6743\u9650 SELECT \u67e5\u8be2\u6570\u636e INSERT \u63d2\u5165\u6570\u636e UPDATE \u4fee\u6539\u6570\u636e DELETE \u5220\u9664\u6570\u636e ALTER \u4fee\u6539\u8868 DROP \u5220\u9664\u6570\u636e\u5e93/\u8868/\u89c6\u56fe CREATE \u521b\u5efa\u6570\u636e\u5e93/\u8868"},{"location":"mysql/MySQL/#_2","title":"\u51fd\u6570","text":"

\u6307\u4e00\u6bb5\u53ef\u4ee5\u76f4\u63a5\u88ab\u53e6\u5916\u4e00\u6bb5\u7a0b\u5e8f\u8c03\u7528\u7684\u7a0b\u5e8f\u6216\u4ee3\u7801\u3002

"},{"location":"mysql/MySQL/#_3","title":"\u5b57\u7b26\u4e32\u51fd\u6570","text":"

\u4ee5\u5b57\u7b26\u4e32\u4e3a\u5355\u4f4d\u8fdb\u884c\u589e\u3001\u6539\u3001\u5220\u7684\u64cd\u4f5c

-- \u62fc\u63a5\nSELECT CONCAT('Hello', 'World');\n-- \u5de6\u586b\u5145\uff0c\u4f7f\u5b57\u7b26\u4e32\u603b\u957f\u5ea6\u8fbe\u52305\u4e2a\u4e3a\u6b62\nSELECT LPAD('01', 5, '-');\n-- \u53f3\u586b\u5145\nSELECT RPAD('01', 5, '-');\n\n-- \u5c0f\u5199\nSELECT LOWER('Hello');\n-- \u5927\u5199\nSELECT UPPER('Hello');\n\n-- \u53bb\u5934\u5c3e\u9664\u7a7a\u683c\nSELECT TRIM(' Hello World ');\n-- \u5207\u7247\uff08\u8d77\u59cb\u7d22\u5f15\u4e3a1\uff09\nSELECT SUBSTRING('Hello World', 1, 5);\n\n-- \u6848\u4f8b\uff1a\u5c06\u5458\u5de5\u7f16\u53f7\u7edf\u4e00\u4fee\u6539\u4e3a5\u4f4d\u6570\uff0c\u59821\u53f7\u5458\u5de5\u5e94\u4e3a00001\nupdate tb_name set field_name1 = lpad(field_name1, 5 , '0')\n
\u51fd\u6570 \u529f\u80fd CONCAT(s1, s2, ..., sn) \u5b57\u7b26\u4e32\u62fc\u63a5\uff0c\u5c06s1, s2, ..., sn\u62fc\u63a5\u6210\u4e00\u4e2a\u5b57\u7b26\u4e32 LPAD(str, n, pad) \u5de6\u586b\u5145\uff0c\u7528\u5b57\u7b26\u4e32pad\u5bf9str\u7684\u5de6\u8fb9\u8fdb\u884c\u586b\u5145\uff0c\u8fbe\u5230n\u4e2a\u5b57\u7b26\u4e32\u957f\u5ea6 RPAD(str, n, pad) \u53f3\u586b\u5145\uff0c\u7528\u5b57\u7b26\u4e32pad\u5bf9str\u7684\u53f3\u8fb9\u8fdb\u884c\u586b\u5145\uff0c\u8fbe\u5230n\u4e2a\u5b57\u7b26\u4e32\u957f\u5ea6 LOWER(str) \u5c06\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5c0f\u5199 UPPER(str) \u5c06\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5927\u5199 TRIM(str) \u53bb\u6389\u5b57\u7b26\u4e32\u5934\u90e8\u548c\u5c3e\u90e8\u7684\u7a7a\u683c SUBSTRING(str, start, len) \u8fd4\u56de\u4ece\u5b57\u7b26\u4e32str\u4ecestart\u4f4d\u7f6e\u8d77\u7684len\u4e2a\u957f\u5ea6\u7684\u5b57\u7b26\u4e32"},{"location":"mysql/MySQL/#_4","title":"\u6570\u503c\u51fd\u6570","text":"
-- \u5411\u4e0a\u53d6\u6574\nselect ceil(1.1)\n\n-- \u5411\u4e0b\u53d6\u6574\nselect floor(1.9)\n\n-- \u6c42\u6a21\uff08\u6c42\u4f59\uff09\nselect mod(7,3)\n\n-- \u53d6\u968f\u673a\u6570\nselect rand()\n\n-- \u4fdd\u7559\u5230\u6307\u5b9a\u4f4d\u5c0f\u6570 \nselect round(x, y)\n\n-- \u6848\u4f8b\uff1a\u901a\u8fc7\u6570\u636e\u5e93\u7684\u51fd\u6570\uff0c\u751f\u6210\u4e00\u4e2a\u516d\u4f4d\u6570\u7684\u968f\u673a\u9a8c\u8bc1\u7801\nselect lpad(round(rand()*1000000, 0), 6, '0')\n
\u51fd\u6570 \u529f\u80fd CEIL(x) \u5411\u4e0a\u53d6\u6574 FLOOR(x) \u5411\u4e0b\u53d6\u6574 MOD(x, y) \u8fd4\u56dex/y\u7684\u6a21 RAND() \u8fd4\u56de0~1\u5185\u7684\u968f\u673a\u6570 ROUND(x, y) \u6c42\u53c2\u6570x\u7684\u56db\u820d\u4e94\u5165\u503c\uff0c\u4fdd\u7559y\u4f4d\u5c0f\u6570"},{"location":"mysql/MySQL/#_5","title":"\u65e5\u671f\u51fd\u6570","text":"
-- \u5f53\u524d\u65e5\u671f\nselect curdate()\n-- \u5f53\u524d\u65f6\u95f4\nselect curtime()\n-- \u5f53\u524d\u65e5\u671f\u548c\u65f6\u95f4\nselect now()\n\n-- \u83b7\u53d6\u65e5\u671f\u7684\u5e74\u3001\u6708\u3001\u65e5\nselect year(now())\nselect month(now())\nselect day(now())\n\n-- \u83b7\u5f97\u63a8\u7b97\u65e5\u671f\nselect date_add(now(), interval 70 year/month/day);\n\n-- \u83b7\u5f97\u65e5\u671f\u95f4\u9694\nselect datediff(date1, date2)\n\n-- \u6848\u4f8b\uff1a\u67e5\u8be2\u6240\u6709\u5458\u5de5\u7684\u5165\u804c\u5929\u6570\uff0c\u5e76\u6839\u636e\u5165\u804c\u5929\u6570\u5012\u5e8f\u6392\u5e8f\nselect datediff(curdate(), field_name1) as \u5165\u804c\u5929\u6570 \nfrom tb_name;\norder by \u5165\u804c\u5929\u6570\n
\u51fd\u6570 \u529f\u80fd CURDATE() \u8fd4\u56de\u5f53\u524d\u65e5\u671f CURTIME() \u8fd4\u56de\u5f53\u524d\u65f6\u95f4 NOW() \u8fd4\u56de\u5f53\u524d\u65e5\u671f\u548c\u65f6\u95f4 YEAR(date) \u83b7\u53d6\u6307\u5b9adate\u7684\u5e74\u4efd MONTH(date) \u83b7\u53d6\u6307\u5b9adate\u7684\u6708\u4efd DAY(date) \u83b7\u53d6\u6307\u5b9adate\u7684\u65e5\u671f DATE_ADD(date, INTERVAL expr type) \u8fd4\u56de\u4e00\u4e2a\u65e5\u671f/\u65f6\u95f4\u503c\u52a0\u4e0a\u4e00\u4e2a\u65f6\u95f4\u95f4\u9694expr\u540e\u7684\u65f6\u95f4\u503c DATEDIFF(date1, date2) \u8fd4\u56de\u8d77\u59cb\u65f6\u95f4date1\u548c\u7ed3\u675f\u65f6\u95f4date2\u4e4b\u95f4\u7684\u5929\u6570\uff0c\u7528\u7b2c\u4e00\u4e2a\u65f6\u95f4\u51cf\u53bb\u7b2c\u4e8c\u4e2a\u65f6\u95f4"},{"location":"mysql/MySQL/#_6","title":"\u6d41\u7a0b\u51fd\u6570","text":"

\u6267\u884c\u6761\u4ef6\u7b5b\u9009\uff0c\u63d0\u9ad8\u8bed\u53e5\u7684\u6548\u7387

-- if\nselect if(true, '1', '0')\n\n-- ifnull\nselect ifnull(null, 'null') -- null\u624d\u80fd\u4ee3\u8868\u7a7a\u503c\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503cnull\nselect ifnull(' ', 'null') -- \u975e\u7a7a\uff0c\u8fd4\u56de\u7a7a\u683c\n\n-- case\n-- \u7b80\u5355\u5f62\u5f0f\nselect\n    name,\n    case workaddress when '\u5317\u4eac\u5e02' then '\u4e00\u7ebf\u57ce\u5e02'\n                      when '\u4e0a\u6d77\u5e02' then '\u4e00\u7ebf\u57ce\u5e02'\n                      else '\u4e8c\u7ebf\u57ce\u5e02' end  as '\u5de5\u4f5c\u5730\u5740'\nfrom employee;\n\n-- \u641c\u7d22\u5f62\u5f0f\nselect\n    name,\n    case when age > 60 then '\u8001\u5e74' \n          when age > 30 then '\u4e2d\u5e74' \n          else '\u9752\u5e74' end as '\u4eba\u7fa4'\nfrom employee;\n
\u51fd\u6570 \u529f\u80fd IF(value, t, f) \u5982\u679cvalue\u4e3atrue\uff0c\u5219\u8fd4\u56det\uff0c\u5426\u5219\u8fd4\u56def IFNULL(value1, value2) \u5982\u679cvalue1\u4e0d\u4e3a\u7a7a\uff0c\u8fd4\u56devalue1\uff0c\u5426\u5219\u8fd4\u56devalue2 CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END \u5982\u679cexpr\u7684\u503c\u7b49\u4e8eval1\uff0c\u8fd4\u56deres1\uff0c... \u5426\u5219\u8fd4\u56dedefault\u9ed8\u8ba4\u503c CASE WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END \u5982\u679cval1\u4e3atrue\uff0c\u8fd4\u56deres1\uff0c... \u5426\u5219\u8fd4\u56dedefault\u9ed8\u8ba4\u503c"},{"location":"mysql/MySQL/#_7","title":"\u7ea6\u675f","text":"

\u7528\u6765\u4f5c\u7528\u4e8e\u8868\u4e2d\u5b57\u6bb5\u4e0a\u7684\u89c4\u5219\uff0c\u7528\u4e8e\u9650\u5236\u5b58\u50a8\u5728\u8868\u4e2d\u7684\u6570\u636e\uff0c\u4ee5\u4fdd\u8bc1\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u7684\u6b63\u786e\u3001\u6709\u6548\u6027\u548c\u5b8c\u6574\u6027

\u7ea6\u675f \u63cf\u8ff0 \u5173\u952e\u5b57 \u4e3b\u952e \u4e3b\u952e\u662f\u4e00\u884c\u6570\u636e\u7684\u552f\u4e00\u6807\u8bc6\uff0c\u8981\u6c42\u975e\u7a7a\u4e14\u552f\u4e00 PRIMARY KEY \u81ea\u52a8\u589e\u957f \u81ea\u52a8\u521b\u5efa\u4e3b\u952e\u5b57\u6bb5\u7684\u503c AUTO_INCREMENT \u975e\u7a7a \u9650\u5236\u8be5\u5b57\u6bb5\u7684\u6570\u636e\u4e0d\u80fd\u4e3anull NOT NULL \u552f\u4e00 \u4fdd\u8bc1\u8be5\u5b57\u6bb5\u7684\u6240\u6709\u6570\u636e\u90fd\u662f\u552f\u4e00\u3001\u4e0d\u91cd\u590d\u7684\uff0c\u53ef\u4ee5\u4e3a\u7a7a UNIQUE \u9ed8\u8ba4\u7ea6\u675f \u4fdd\u5b58\u6570\u636e\u65f6\uff0c\u5982\u679c\u672a\u6307\u5b9a\u8be5\u5b57\u6bb5\u7684\u503c\uff0c\u5219\u91c7\u7528\u9ed8\u8ba4\u503c DEFAULT \u68c0\u67e5\u7ea6\u675f\uff08\u903b\u8f91\u6761\u4ef6\uff09 \u4fdd\u8bc1\u5b57\u6bb5\u503c\u6ee1\u8db3\u67d0\u4e00\u4e2a\u6761\u4ef6 CHECK \u5916\u952e \u7528\u6765\u8ba9\u4e24\u5f20\u8868\u7684\u6570\u636e\u4e4b\u95f4\u5efa\u7acb\u8fde\u63a5\uff0c\u4fdd\u8bc1\u6570\u636e\u7684\u4e00\u81f4\u6027\u548c\u5b8c\u6574\u6027 FOREIGN KEY"},{"location":"mysql/MySQL/#_8","title":"\u5e38\u7528\u7ea6\u675f","text":"
create table user(\n    id int primary key auto_increment comment '\u4e3b\u952e',\n    name varchar(10) not null unique comment '\u59d3\u540d',\n    age int check(age > 0 and age < 120) comment '\u5e74\u9f84',\n    status char(1) default '1' comment '\u72b6\u6001',\n    gender char(1) comment '\u6027\u522b'\n) comment '\u7528\u6237\u8868';\n\n-- \u9a8c\u8bc1\u8868\u683c\u7ea6\u675f\ninsert into user(name, age, status, gender) \n            values ('\u5f20\u4e09', '23', '1', '\u7537'), ('\u674e\u56db', '25', '0', '\u7537') -- \u4e3b\u952e\u4e0d\u7528\u586b\uff0c\u81ea\u52a8\u8865\u5145\u3002\u5373\u4fbf\u6dfb\u52a0\u6570\u636e\u9519\u8bef\uff0c\u76f8\u5e94\u4e3b\u952e\u4e5f\u4f1a\u88ab\u7533\u8bf7\u4f7f\u7528\n
"},{"location":"mysql/MySQL/#_9","title":"\u5916\u952e\u7ea6\u675f\uff1a\u6bd4\u8f83\u7279\u6b8a\u7684\u7ea6\u675f","text":"

\u5916\u952e\u7528\u6765\u8ba9\u4e24\u5f20\u8868\u7684\u6570\u636e\u4e4b\u95f4\u5efa\u7acb\u903b\u8f91\u8fde\u63a5\uff0c\u5b50\u8868\u7684\u5916\u952e\u662f\u7236\u8868(\u4e3b\u8868)\u7684\u4e3b\u952e\u3002\u7236\u8868\u4e2d\u4e3b\u952e\u7f3a\u5931\u4e0b\uff0c\u5b50\u8868\u4e2d\u7684\u6570\u636e\u7684\u5b8c\u6574\u6027\u65e0\u6cd5\u4fdd\u8bc1\u3002

-- 1\uff0c\u521b\u5efa\u8868\u65f6\u540c\u65f6\u6dfb\u52a0\u6307\u5b9a\u5916\u952e\nCREATE TABLE tb_name(\n    \u5b57\u6bb5\u540d \u5b57\u6bb5\u7c7b\u578b,\n    ...\n    [CONSTRAINT] [\u5916\u952e\u540d\u79f0]\uff08fk_\u5b50\u8868\u540d_\u5b57\u6bb5\uff09 FOREIGN KEY (\u5b50\u8868\u7684\u5916\u952e\u5b57\u6bb5) REFERENCES \u4e3b\u8868(\u5173\u8054\u4e0a\u7684\u4e3b\u8868\u5b57\u6bb5)\n);  \n-- 2\uff0c\u5efa\u8868\u540e\uff0c\u5bf9\u8868\u4fee\u6539\u6dfb\u52a0\u5916\u952e\nALTER TABLE \u5b50\u8868 ADD CONSTRAINT \u5916\u952e\u540d\u79f0\uff08fk_\u5b50\u8868\u540d_\u5b57\u6bb5\uff09 FOREIGN KEY (\u5b50\u8868\u7684\u5916\u952e\u5b57\u6bb5) REFERENCES \u4e3b\u8868 (\u5173\u8054\u4e0a\u7684\u4e3b\u8868\u5b57\u6bb5\u540d);\n-- \u66f4\u6539\u5220\u9664/\u66f4\u65b0\u884c\u4e3a\nALTER TABLE \u8868\u540d ADD CONSTRAINT \u5916\u952e\u540d\u79f0\uff08fk_\u5b50\u8868\u540d_\u5b57\u6bb5\uff09 FOREIGN KEY (\u5b50\u8868\u7684\u5916\u952e\u5b57\u6bb5) REFERENCES \u4e3b\u8868\u540d(\u4e3b\u8868\u5b57\u6bb5\u540d) ON UPDATE \u884c\u4e3a ON DELETE \u884c\u4e3a;  \n-- \u5220\u9664\u5916\u952e\uff1a  \nALTER TABLE tb_name DROP FOREIGN KEY \u5916\u952e\u540d\u79f0\uff08fk_\u5b50\u8868\u540d_\u5b57\u6bb5\uff09;\n\n-- \u4f8b\u5b50  \nalter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id);  \n-- \u67e5\u8be2\u5916\u952e\uff1f\uff1f\uff1f\nSELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE constraint_schema = 'fundb' AND table_name = 't_score_math';\n

\u5916\u952e\u540d\u79f0\u4e0e\u5b50\u8868\u5916\u952e\u5b57\u6bb5\u4e0d\u540c\uff0c\u5b50\u8868\u4e2d\u663e\u793a\u7684\u662f\u5b50\u8868\u4e0e\u5916\u952e\u5173\u8054\u7684\u5916\u952e\u5b57\u6bb5\uff0c\u5e76\u4e0d\u4f1a\u663e\u793a\u5916\u952e\u540d\u79f0\u3002\u5982\u679c\u4e0d\u6dfb\u52a0\u5916\u952e\u540d\u79f0\uff0c\u4f1a\u6307\u5b9a\u4e3af_mykey\uff0cconstraint `f_mykey`\u53ef\u4ee5\u7701\u7565\u3002fk_\u5b50\u8868\u540d_\u5b57\u6bb5\u7684\u547d\u540d\u65b9\u5f0f\u53ea\u662f\u4e3a\u4e86\u65b9\u4fbf\u8bc6\u522b\uff01f_\u5b50\u8868\u5916\u952e\u5e94\u8be5\u66f4\u5e38\u89c1

\u884c\u4e3a \u8bf4\u660e NO ACTION \u5f53\u5728\u7236\u8868\u4e2d\u5220\u9664/\u66f4\u65b0\u5bf9\u5e94\u8bb0\u5f55\u65f6\uff0c\u9996\u5148\u68c0\u67e5\u8be5\u8bb0\u5f55\u662f\u5426\u6709\u5bf9\u5e94\u5916\u952e\uff0c\u5982\u679c\u6709\u5219\u4e0d\u5141\u8bb8\u5220\u9664/\u66f4\u65b0\uff08\u4e0eRESTRICT\u4e00\u81f4\uff09 RESTRICT \u5f53\u5728\u7236\u8868\u4e2d\u5220\u9664/\u66f4\u65b0\u5bf9\u5e94\u8bb0\u5f55\u65f6\uff0c\u9996\u5148\u68c0\u67e5\u8be5\u8bb0\u5f55\u662f\u5426\u6709\u5bf9\u5e94\u5916\u952e\uff0c\u5982\u679c\u6709\u5219\u4e0d\u5141\u8bb8\u5220\u9664/\u66f4\u65b0\uff08\u4e0eNO ACTION\u4e00\u81f4\uff09 CASCADE \u5f53\u5728\u7236\u8868\u4e2d\u5220\u9664/\u66f4\u65b0\u5bf9\u5e94\u8bb0\u5f55\u65f6\uff0c\u9996\u5148\u68c0\u67e5\u8be5\u8bb0\u5f55\u662f\u5426\u6709\u5bf9\u5e94\u5916\u952e\uff0c\u5982\u679c\u6709\u5219\u4e5f\u5220\u9664/\u66f4\u65b0\u5916\u952e\u5728\u5b50\u8868\u4e2d\u7684\u8bb0\u5f55 SET NULL \u5f53\u5728\u7236\u8868\u4e2d\u5220\u9664/\u66f4\u65b0\u5bf9\u5e94\u8bb0\u5f55\u65f6\uff0c\u9996\u5148\u68c0\u67e5\u8be5\u8bb0\u5f55\u662f\u5426\u6709\u5bf9\u5e94\u5916\u952e\uff0c\u5982\u679c\u6709\u5219\u8bbe\u7f6e\u5b50\u8868\u4e2d\u8be5\u5916\u952e\u503c\u4e3anull\uff08\u8981\u6c42\u8be5\u5916\u952e\u5141\u8bb8\u4e3anull\uff09 SET DEFAULT \u7236\u8868\u6709\u53d8\u66f4\u65f6\uff0c\u5b50\u8868\u5c06\u5916\u952e\u8bbe\u4e3a\u4e00\u4e2a\u9ed8\u8ba4\u503c\uff08Innodb\u4e0d\u652f\u6301\uff09"},{"location":"mysql/MySQL/#_10","title":"\u591a\u8868\u67e5\u8be2","text":""},{"location":"mysql/MySQL/#_11","title":"\u591a\u8868\u5173\u7cfb","text":"

\u63d0\u5347\u6570\u636e\u8d28\u91cf\uff0c\u5b9e\u4f53\u5b8c\u6574\u6027\u548c\u5efa\u7acb\u8868\u8054\u7cfb\u540e\u7684\u53c2\u7167\u5b8c\u6574\u6027\uff0c\u90fd\u80fd\u63d0\u9ad8\u6570\u636e\u8d28\u91cf\u3002

"},{"location":"mysql/MySQL/#_12","title":"\u4e00\u5bf9\u591a\uff08\u591a\u5bf9\u4e00\uff09","text":"

\u90e8\u95e8\u4e0e\u5458\u5de5\uff0c\u4e00\u4e2a\u90e8\u95e8\u5bf9\u5e94\u591a\u4e2a\u5458\u5de5\uff0c\u4e00\u4e2a\u5458\u5de5\u5bf9\u5e94\u4e00\u4e2a\u90e8\u95e8\uff0c\u5728\u591a\u7684\u4e00\u65b9\u5efa\u7acb\u5916\u952e\uff08\u5458\u5de5\u8868\uff09\uff0c\u6307\u5411\u4e00\u7684\u4e00\u65b9\u7684\u4e3b\u952e\uff08\u90e8\u95e8\u8868\uff09\u3002\u8be6\u89c1\u7ea6\u675f\u5185\u5bb9

"},{"location":"mysql/MySQL/#_13","title":"\u591a\u5bf9\u591a","text":"

\u5b66\u751f\u4e0e\u8bfe\u7a0b\uff0c\u4e00\u4e2a\u5b66\u751f\u53ef\u4ee5\u9009\u591a\u95e8\u8bfe\u7a0b\uff0c\u4e00\u95e8\u8bfe\u7a0b\u4e5f\u53ef\u4ee5\u4f9b\u591a\u4e2a\u5b66\u751f\u9009\u4fee\uff0c\u5efa\u7acb\u7b2c\u4e09\u5f20\u4e2d\u95f4\u8868\uff0c\u4e2d\u95f4\u8868\u81f3\u5c11\u5305\u542b\u4e24\u4e2a\u5916\u952e\uff0c\u5206\u522b\u5173\u8054\u4e24\u65b9\u4e3b\u952e\u3002

create table student_course(\n    id int auto_increment primary key comment '\u4e3b\u952eID' ,\n    studentid int not null comment '\u5b66\u751fID',\n    courseid  int not null comment '\u8bfe\u7a0bID',\n    constraint fk_courseid foreign key (courseid) references course (id),\n    constraint fk_studentid foreign key (studentid) references student (id)\n)comment '\u5b66\u751f\u8bfe\u7a0b\u4e2d\u95f4\u8868';\n\ninsert into student course values (null,1,1),(null,1,2),(null,1,3),(null,2,2),(null,2,3),(null,3,4);\n
"},{"location":"mysql/MySQL/#_14","title":"\u4e00\u5bf9\u4e00","text":"

\u7528\u6237\u4e0e\u7528\u6237\u8be6\u60c5\uff0c\u4e00\u5bf9\u4e00\u5173\u7cfb\uff0c\u591a\u7528\u4e8e\u5355\u8868\u62c6\u5206\uff0c\u5c06\u4e00\u5f20\u8868\u7684\u57fa\u7840\u5b57\u6bb5\u653e\u5728\u4e00\u5f20\u8868\u4e2d\uff0c\u5176\u4ed6\u8be6\u60c5\u5b57\u6bb5\u653e\u5728\u53e6\u4e00\u5f20\u8868\u4e2d\uff0c\u4ee5\u63d0\u5347\u64cd\u4f5c\u6548\u7387\u3002\u5728\u4efb\u610f\u4e00\u65b9\u52a0\u5165\u5916\u952e\uff0c\u5173\u8054\u53e6\u5916\u4e00\u65b9\u7684\u4e3b\u952e\uff0c\u5e76\u4e14\u8bbe\u7f6e\u5916\u952e\u4e3a\u552f\u4e00\u7684\uff08UNIQUE\uff09\uff0c\u4ece\u800c\u4f7f\u5916\u952e\u4e0d\u91cd\u590d\uff0c\u533a\u5206\u4e00\u5bf9\u591a\u7684i\u60c5\u51b5\u3002

create table tb_user(\n    id int auto_increment primary key comment '\u4e3b\u952eID',\n    name varchar(10) comment '\u59d3\u540d'\uff0c\n    age int comment '\u5e74\u9f84'\uff0c\n    gender char(1) comment '1: \u7537 \uff0c2: \u5973'\n    phone char(11) comment '\u624b\u673a\u53f7'\n) comment '\u7528\u6237\u57fa\u672c\u4fe1\u606f\u8868';\n\ncreate table tb_user_edu(\n    id int auto_increment primary key comment '\u4e3b\u952eID',\n    degree varchar(20) comment '\u5b66\u5386'\uff0c\n    major varchar(50) comment'\u4e13\u4e1a',\n    primaryschool varchar(5) comment '\u5c0f\u5b66',\n    middleschool varchar(50) comment '\u4e2d\u5b66',\n    university varchar(50) comment '\u5927\u5b66',\n    userid int unique comment '\u7528\u6237ID',\n    constraint fk_tb_user_edu_userid foreign key (userid) references tb_user(id)\n)comment '\u7528\u6237\u6559\u80b2\u4fe1\u606f\u8868';\n
"},{"location":"mysql/MySQL/#_15","title":"\u591a\u8868\u67e5\u8be2","text":"

\u533a\u522b\u4e4b\u524d\u7684DQL\u5355\u8868\u67e5\u8be2\uff0c\u5728\u591a\u5f20\u8868\u4e0a\u8fdb\u884c\u67e5\u8be2\u3002 \u7b1b\u5361\u5c14\u79ef\uff1a\u4e24\u4e2a\u96c6\u5408A\u96c6\u5408\u548cB\u96c6\u5408\u7684\u6240\u6709\u7ec4\u5408\u60c5\u51b5\uff08\u5728\u591a\u8868\u67e5\u8be2\u65f6\uff0c\u9700\u8981\u6d88\u9664\u65e0\u6548\u7684\u7b1b\u5361\u5c14\u79ef\uff09\u3002

\u5408\u5e76\u67e5\u8be2\uff0c\u7b1b\u5361\u5c14\u79ef\uff0c\u4f1a\u5c55\u793a\u6240\u6709\u7ec4\u5408\u7ed3\u679c\nselect * from employee, dept;\n\n\u6d88\u9664\u65e0\u6548\u7b1b\u5361\u5c14\u79ef\uff1a  \nselect * from employee, dept where employee.dept = dept.id;\n

"},{"location":"mysql/MySQL/#_16","title":"\u8fde\u63a5\u67e5\u8be2","text":"

\u5c06\u76ee\u5149\u805a\u7126\u5728\u8fde\u63a5\u5b57\u6bb5\u4e0a\u6765\u7406\u89e3\u7b1b\u5361\u5c14\u79ef\uff0c\u518d\u6269\u5c55\u5230\u5b57\u6bb5\u6240\u5728\u7684\u884c\u5c31\u662f\u7ed3\u679c\uff01

"},{"location":"mysql/MySQL/#_17","title":"\u5185\u8fde\u63a5\u67e5\u8be2","text":"

\u67e5\u8be2\u7684\u662f\u4e24\u5f20\u8868\u4ea4\u96c6\u7684\u90e8\u5206\u3002\u5b58\u5728\u9690\u5f0f\u5185\u8fde\u63a5\u548c\u663e\u793a\u5185\u8fde\u63a5\u4e24\u79cd\u5f62\u5f0f\uff0c\u5f62\u5f0f\u4e0a\u8868\u73b0\u4e3a\u8868\u7684\u8fde\u63a5\u5f62\u5f0f\u548c\u6761\u4ef6\u8868\u73b0\u5f62\u5f0f\u7684\u5dee\u5f02\uff0c\u663e\u5f0f\u6027\u80fd\u66f4\u9ad8\u3002

\u5982\u679c\u53ea\u9700\u8981\u4ea4\u79ef\u4e0a\u7684\u6570\u636e\uff0c\u53d6\u4ea4\u79ef\u6bd4\u5916\u79ef\u7684\u6548\u7387\u66f4\u9ad8\u4e9b\uff01

1\uff0c\u9690\u5f0f\u5185\u8fde\u63a5\uff1a\nSELECT \u5b57\u6bb5\u5217\u8868 FROM \u88681, \u88682 WHERE \u6761\u4ef6 ...;\n2\uff0c\u663e\u5f0f\u5185\u8fde\u63a5\uff1a\nSELECT \u5b57\u6bb5\u5217\u8868 FROM \u88681 [ INNER ] JOIN \u88682 ON \u8fde\u63a5\u6761\u4ef6 ...;\n\n\n-- \u67e5\u8be2\u5458\u5de5\u59d3\u540d\uff0c\u53ca\u5173\u8054\u7684\u90e8\u95e8\u7684\u540d\u79f0\n-- \u9690\u5f0f\nselect e.name, d.name \nfrom employee as e, dept as d\nwhere e.dept = d.id;\n-- \u663e\u5f0f:\u80fd\u989d\u5916\u518d\u589e\u52a0\u5176\u4ed6\u7b5b\u9009\u6761\u4ef6\nselect e.name, d.name\nfrom employee as e\n[inner] join dept as d\non e.dept = d.id;\n

\u7b80\u5316\u8868\u540d\uff0c\u8d77\u522b\u540d\uff01\u8d77\u4e86\u522b\u540d\uff0c\u8868\u540d\u4fbf\u5931\u6548\u4e86\uff0c\u7b26\u5408\u6267\u884c\u987a\u5e8f\uff01

"},{"location":"mysql/MySQL/#_18","title":"\u5916\u8fde\u63a5\u67e5\u8be2","text":"
1\uff0c\u5de6\u5916\u8fde\u63a5\n\u67e5\u8be2\u5de6\u8868\u6240\u6709\u6570\u636e\uff0c\u4ee5\u53ca\u4e24\u5f20\u8868\u4ea4\u96c6\u90e8\u5206\u6570\u636e\u3002\u76f8\u5f53\u4e8e\u67e5\u8be2\u88681\u7684\u6240\u6709\u6570\u636e\uff0c\u5305\u542b\u88681\u548c\u88682\u4ea4\u96c6\u90e8\u5206\u6570\u636e  \nSELECT \u5b57\u6bb5\u5217\u8868 FROM \u88681 LEFT [ OUTER ] JOIN \u88682 ON \u6761\u4ef6 ...; \n\n2\uff0c\u53f3\u5916\u8fde\u63a5  \n\u67e5\u8be2\u53f3\u8868\u6240\u6709\u6570\u636e\uff0c\u4ee5\u53ca\u4e24\u5f20\u8868\u4ea4\u96c6\u90e8\u5206\u6570\u636e\u3002  \nSELECT \u5b57\u6bb5\u5217\u8868 FROM \u88681 RIGHT [ OUTER ] JOIN \u88682 ON \u6761\u4ef6 ...; \n\n-- \u5de6\nselect e.*, d.name from employee as e left [outer] join dept as d on e.dept = d.id;  \nselect d.name, e.* from dept d left [outer] join emp e on e.dept = d.id;  -- \u8fd9\u6761\u8bed\u53e5\u4e0e\u4e0b\u9762\u7684\u8bed\u53e5\u6548\u679c\u4e00\u6837  \n-- \u53f3\nselect d.name, e.* from employee as e right [outer] join dept as d on e.dept = d.id;  \n
"},{"location":"mysql/MySQL/#_19","title":"\u81ea\u8fde\u63a5\u67e5\u8be2","text":"

\u5f53\u524d\u8868\u4e0e\u81ea\u8eab\u7684\u8fde\u63a5\u67e5\u8be2\uff0c\u81ea\u8fde\u63a5\u5fc5\u987b\u4f7f\u7528\u8868\u522b\u540d\u3002 \u770b\u6210\u4e24\u5f20\u8868\u5b9e\u884c\u5185\u8fde\u63a5\uff0c\u5916\u8fde\u63a5\uff01

\u81ea\u8fde\u63a5\u67e5\u8be2\uff0c\u53ef\u4ee5\u662f\u5185\u8fde\u63a5\u67e5\u8be2\uff0c\u4e5f\u53ef\u4ee5\u662f\u5916\u8fde\u63a5\u67e5\u8be2\nSELECT \u5b57\u6bb5\u5217\u8868 FROM \u8868A \u522b\u540dA JOIN \u8868A \u522b\u540dB ON \u6761\u4ef6 ...; \n\n\n-- \u67e5\u8be2\u5458\u5de5\u53ca\u5176\u6240\u5c5e\u9886\u5bfc\u7684\u540d\u5b57  \nselect a.name, b.name from employee a, employee b where a.manager = b.id;  \n-- \u6ca1\u6709\u9886\u5bfc\u7684\u4e5f\u67e5\u8be2\u51fa\u6765  \nselect a.name, b.name from employee a left join employee b on a.manager = b.id;  \n

"},{"location":"mysql/MySQL/#_20","title":"\u8054\u5408\u67e5\u8be2","text":"

\u628a\u591a\u6b21\u67e5\u8be2\u7684\u7ed3\u679c\u5408\u5e76\uff0c\u5f62\u6210\u4e00\u4e2a\u65b0\u7684\u67e5\u8be2\u96c6\uff0c\u7528\u7684\u8f83\u5c11\uff01

SELECT \u5b57\u6bb5\u5217\u8868 FROM \u8868A ...\nUNION [ALL]\nSELECT \u5b57\u6bb5\u5217\u8868 FROM \u8868B ...\n\nselect * from emp where salary < 5000\nunion all\nselect * from emp where age > 50;\n
  • UNION ALL \u4f1a\u6709\u91cd\u590d\u7ed3\u679c\uff0cUNION \u4e0d\u4f1a

  • \u591a\u5f20\u8868\u7684\u5b57\u6bb5\u540d\u3001\u7c7b\u578b\u3001\u6570\u91cf\u5fc5\u987b\u4e00\u81f4\u624d\u884c

  • \u8054\u5408\u67e5\u8be2\u6bd4\u4f7f\u7528or\u6548\u7387\u9ad8\uff0c\u4e0d\u4f1a\u4f7f\u7d22\u5f15\u5931\u6548

"},{"location":"mysql/MySQL/#_21","title":"\u5b50\u67e5\u8be2","text":"

SQL\u8bed\u53e5\u4e2d\u5d4c\u5957SELECT\u8bed\u53e5\uff0c\u79f0\u8c13\u5d4c\u5957\u67e5\u8be2\uff0c\u53c8\u79f0\u5b50\u67e5\u8be2\u3002\u5b50\u67e5\u8be2\u5916\u90e8\u7684\u8bed\u53e5\u53ef\u4ee5\u662f INSERT / UPDATE / DELETE / SELECT \u7684\u4efb\u4f55\u4e00\u4e2a\u3002

SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2);\n

\u6839\u636e\u5b50\u67e5\u8be2\u7ed3\u679c\u53ef\u4ee5\u5206\u4e3a\uff1a

  • \u6807\u91cf\u5b50\u67e5\u8be2\uff08\u5b50\u67e5\u8be2\u7ed3\u679c\u4e3a\u5355\u4e2a\u503c\uff09

  • \u5217\u5b50\u67e5\u8be2\uff08\u5b50\u67e5\u8be2\u7ed3\u679c\u4e3a\u4e00\u5217\uff09

  • \u884c\u5b50\u67e5\u8be2\uff08\u5b50\u67e5\u8be2\u7ed3\u679c\u4e3a\u4e00\u884c\uff09

  • \u8868\u5b50\u67e5\u8be2\uff08\u5b50\u67e5\u8be2\u7ed3\u679c\u4e3a\u591a\u884c\u591a\u5217\uff09

\u6839\u636e\u5b50\u67e5\u8be2\u4f4d\u7f6e\u53ef\u5206\u4e3a\uff1a

  • WHERE \u4e4b\u540e

  • FROM \u4e4b\u540e

  • SELECT \u4e4b\u540e

"},{"location":"mysql/MySQL/#_22","title":"\u6807\u91cf\u5b50\u67e5\u8be2","text":"

\u5b50\u67e5\u8be2\u8fd4\u56de\u7684\u7ed3\u679c\u662f\u5355\u4e2a\u503c\uff08\u6570\u5b57\u3001\u5b57\u7b26\u4e32\u3001\u65e5\u671f\u7b49\uff09\u3002

\u5e38\u7528\u64cd\u4f5c\u7b26\uff1a- < > > >= < <=

-- \u67e5\u8be2\u9500\u552e\u90e8\u6240\u6709\u5458\u5de5\nselect id from dept where name = '\u9500\u552e\u90e8';\n-- \u6839\u636e\u9500\u552e\u90e8\u90e8\u95e8ID\uff0c\u67e5\u8be2\u5458\u5de5\u4fe1\u606f\nselect * from employee where dept = 4;\n-- \u5408\u5e76\uff08\u5b50\u67e5\u8be2\uff09  \nselect * from employee where dept = (select id from dept where name = '\u9500\u552e\u90e8');  \n\n-- \u67e5\u8be2xxx\u5165\u804c\u4e4b\u540e\u7684\u5458\u5de5\u4fe1\u606f  \nselect * from employee where entrydate > (select entrydate from employee where name = 'xxx');  \n
"},{"location":"mysql/MySQL/#_23","title":"\u5217\u5b50\u67e5\u8be2","text":"\u64cd\u4f5c\u7b26 \u63cf\u8ff0 IN \u5728\u6307\u5b9a\u7684\u96c6\u5408\u8303\u56f4\u5185\uff0c\u591a\u9009\u4e00\u3002\u56e0\u4e3a\u7ed3\u679c\u4e0d\u662f\u4e00\u4e2a\uff0c\u6240\u4ee5\u4e0d\u662f=\u53f7 NOT IN \u4e0d\u5728\u6307\u5b9a\u7684\u96c6\u5408\u8303\u56f4\u5185 ANY \u5b50\u67e5\u8be2\u8fd4\u56de\u5217\u8868\u4e2d\uff0c\u6709\u4efb\u610f\u4e00\u4e2a\u6ee1\u8db3\u5373\u53ef SOME \u4e0eANY\u7b49\u540c\uff0c\u4f7f\u7528SOME\u7684\u5730\u65b9\u90fd\u53ef\u4ee5\u4f7f\u7528ANY ALL \u5b50\u67e5\u8be2\u8fd4\u56de\u5217\u8868\u7684\u6240\u6709\u503c\u90fd\u5fc5\u987b\u6ee1\u8db3
-- \u67e5\u8be2\u9500\u552e\u90e8\u548c\u5e02\u573a\u90e8\u7684\u6240\u6709\u5458\u5de5\u4fe1\u606f  \nselect * from employee where dept in (select id from dept where name = '\u9500\u552e\u90e8' or name = '\u5e02\u573a\u90e8');\n-- \u67e5\u8be2\u6bd4\u7814\u53d1\u90e8 \u4efb\u610f\u4e00\u4eba \u5de5\u8d44\u9ad8\u7684\u5458\u5de5\u4fe1\u606f\nselect * from employee where salary > any (select salary from employee where dept = (select id from dept where name = '\u7814\u53d1\u90e8'));\n-- \u67e5\u8be2\u6bd4\u8d22\u52a1\u90e8 \u6240\u6709\u4eba \u5de5\u8d44\u90fd\u9ad8\u7684\u5458\u5de5\u4fe1\u606f\nselect * from employee where salary > all (select salary from employee where dept = (select id from dept where name = '\u8d22\u52a1\u90e8'));\n
"},{"location":"mysql/MySQL/#_24","title":"\u884c\u5b50\u67e5\u8be2","text":"

\u5e38\u7528\u64cd\u4f5c\u7b26\uff1a=, <, >, IN, NOT IN

select * from employee where salary = 12500 and manager =  1; \n\n-- \u67e5\u8be2\u4e0exxx\u7684\u85aa\u8d44\u53ca\u76f4\u5c5e\u9886\u5bfc\u76f8\u540c\u7684\u5458\u5de5\u4fe1\u606f  \nselect * from employee where (salary, manager) = (12500, 1);  \nselect * from employee where (salary, manager) = (select salary, manager from employee where name = 'xxx');  \n
"},{"location":"mysql/MySQL/#_25","title":"\u8868\u5b50\u67e5\u8be2","text":"

\u5e38\u7528\u64cd\u4f5c\u7b26\uff1aIN \uff0c\u5e38\u5728from\u4e4b\u540e

-- \u67e5\u8be2\u4e0exxx1\uff0cxxx2\u7684\u804c\u4f4d\u548c\u85aa\u8d44\u76f8\u540c\u7684\u5458\u5de5\nselect * from employee where (job, salary) in (select job, salary from employee where name = 'xxx1' or name = 'xxx2');\n-- \u67e5\u8be2\u5165\u804c\u65e5\u671f\u662f2006-01-01\u4e4b\u540e\u7684\u5458\u5de5\uff0c\u53ca\u5176\u90e8\u95e8\u4fe1\u606f\nselect e.*, d.* from (select * from employee where entrydate > '2006-01-01') as e left join dept as d on e.dept = d.id;\n

"},{"location":"mysql/MySQL/#_26","title":"\u4e8b\u52a1","text":"

\u4e8b\u52a1\u662f\u4e00\u7ec4\u64cd\u4f5c\u7684\u96c6\u5408\uff0c\u4e8b\u52a1\u4f1a\u628a\u6240\u6709\u64cd\u4f5c\u4f5c\u4e3a\u4e00\u4e2a\u6574\u4f53\u4e00\u8d77\u5411\u7cfb\u7edf\u63d0\u4ea4\u6216\u64a4\u9500\u64cd\u4f5c\u8bf7\u6c42\uff0c\u5373\u8fd9\u4e9b\u64cd\u4f5c\u8981\u4e48\u540c\u65f6\u6210\u529f\uff0c\u8981\u4e48\u540c\u65f6\u5931\u8d25\u3002

-- 1. \u67e5\u8be2\u5f20\u4e09\u8d26\u6237\u4f59\u989d\nselect * from account where name = '\u5f20\u4e09';\n-- 2. \u5c06\u5f20\u4e09\u8d26\u6237\u4f59\u989d-1000\nupdate account set money = money - 1000 where name = '\u5f20\u4e09';\n-- \u6b64\u8bed\u53e5\u51fa\u9519\u540e\u5f20\u4e09\u94b1\u51cf\u5c11\u4f46\u662f\u674e\u56db\u94b1\u6ca1\u6709\u589e\u52a0\n\u6a21\u62dfsql\u8bed\u53e5\u9519\u8bef\n-- 3. \u5c06\u674e\u56db\u8d26\u6237\u4f59\u989d+1000\nupdate account set money = money + 1000 where name = '\u674e\u56db';\n\n-- \u67e5\u770b\u4e8b\u52a1\u63d0\u4ea4\u65b9\u5f0f\nSELECT @@AUTOCOMMIT;\n-- \u8bbe\u7f6e\u4e8b\u52a1\u63d0\u4ea4\u65b9\u5f0f\uff0c1\u4e3a\u81ea\u52a8\u63d0\u4ea4\uff0c0\u4e3a\u624b\u52a8\u63d0\u4ea4\uff0c\u8be5\u8bbe\u7f6e\u53ea\u5bf9\u5f53\u524d\u4f1a\u8bdd\u6709\u6548\nSET @@AUTOCOMMIT = 0;\n-- \u63d0\u4ea4\u4e8b\u52a1\nCOMMIT;\n-- \u56de\u6eda\u4e8b\u52a1\nROLLBACK;\n\n-- \u8bbe\u7f6e\u624b\u52a8\u63d0\u4ea4\u540e\u4e0a\u9762\u4ee3\u7801\u6539\u4e3a\uff1a\nselect * from account where name = '\u5f20\u4e09';  \nupdate account set money = money - 1000 where name = '\u5f20\u4e09';  \nupdate account set money = money + 1000 where name = '\u674e\u56db';  \ncommit;  \n

\u64cd\u4f5c\u65b9\u5f0f\u4e8c\uff1a

\u5f00\u542f\u4e8b\u52a1\uff1a

START TRANSACTION \u6216 BEGIN TRANSACTION;

\u63d0\u4ea4\u4e8b\u52a1\uff1a

COMMIT;

\u56de\u6eda\u4e8b\u52a1\uff1a

ROLLBACK;

start transaction; \nselect * from account where name = '\u5f20\u4e09';\nupdate account set money = money - 1000 where name = '\u5f20\u4e09';\nupdate account set money = money + 1000 where name = '\u674e\u56db';\ncommit;\n

\u5f00\u542f\u4e8b\u52a1\u540e\uff0c\u53ea\u6709\u624b\u52a8\u63d0\u4ea4\u624d\u4f1a\u6539\u53d8\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u3002

"},{"location":"mysql/MySQL/#acid","title":"\u56db\u5927\u7279\u6027ACID","text":"
  • \u539f\u5b50\u6027(Atomicity)\uff1a\u4e8b\u52a1\u662f\u4e0d\u53ef\u5206\u5272\u7684\u6700\u5c0f\u64cd\u4f5c\u4f46\u613f\uff0c\u8981\u4e48\u5168\u90e8\u6210\u529f\uff0c\u8981\u4e48\u5168\u90e8\u5931\u8d25

  • \u4e00\u81f4\u6027(Consistency)\uff1a\u4e8b\u52a1\u5b8c\u6210\u65f6\uff0c\u5fc5\u987b\u4f7f\u6240\u6709\u6570\u636e\u90fd\u4fdd\u6301\u4e00\u81f4\u72b6\u6001

  • \u9694\u79bb\u6027(Isolation)\uff1a\u6570\u636e\u5e93\u7cfb\u7edf\u63d0\u4f9b\u7684\u9694\u79bb\u673a\u5236\uff0c\u4fdd\u8bc1\u4e8b\u52a1\u5728\u4e0d\u53d7\u5916\u90e8\u5e76\u53d1\u64cd\u4f5c\u5f71\u54cd\u7684\u72ec\u7acb\u73af\u5883\u4e0b\u8fd0\u884c

  • \u6301\u4e45\u6027(Durability)\uff1a\u4e8b\u52a1\u4e00\u65e6\u63d0\u4ea4\u6216\u56de\u6eda\uff0c\u5b83\u5bf9\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u7684\u6539\u53d8\u5c31\u662f\u6c38\u4e45\u7684

"},{"location":"mysql/MySQL/#_27","title":"\u5e76\u53d1\u4e8b\u52a1","text":"\u95ee\u9898 \u63cf\u8ff0 \u810f\u8bfb \u4e00\u4e2a\u4e8b\u52a1\u8bfb\u5230\u53e6\u4e00\u4e2a\u4e8b\u52a1\u8fd8\u6ca1\u63d0\u4ea4\u7684\u6570\u636e \u4e0d\u53ef\u91cd\u590d\u8bfb \u4e00\u4e2a\u4e8b\u52a1\u5148\u540e\u8bfb\u53d6\u540c\u4e00\u6761\u8bb0\u5f55\uff0c\u4f46\u4e24\u6b21\u8bfb\u53d6\u7684\u6570\u636e\u4e0d\u540c \u5e7b\u8bfb \u4e00\u4e2a\u4e8b\u52a1\u6309\u7167\u6761\u4ef6\u67e5\u8be2\u6570\u636e\u65f6\uff0c\u6ca1\u6709\u5bf9\u5e94\u7684\u6570\u636e\u884c\uff0c\u4f46\u662f\u518d\u63d2\u5165\u6570\u636e\u65f6\uff0c\u53c8\u53d1\u73b0\u8fd9\u884c\u6570\u636e\u5df2\u7ecf\u5b58\u5728

\u8fd9\u4e09\u4e2a\u95ee\u9898\u7684\u8be6\u7ec6\u6f14\u793a\uff1ahttps://www.bilibili.com/video/BV1Kr4y1i7ru?p=55cd

\u5e76\u53d1\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\uff1a

\u9694\u79bb\u7ea7\u522b \u810f\u8bfb \u4e0d\u53ef\u91cd\u590d\u8bfb \u5e7b\u8bfb Read uncommitted \u221a \u221a \u221a Read committed \u00d7 \u221a \u221a Repeatable Read(\u9ed8\u8ba4) \u00d7 \u00d7 \u221a Serializable \u00d7 \u00d7 \u00d7
  • \u221a\u8868\u793a\u5728\u5f53\u524d\u9694\u79bb\u7ea7\u522b\u4e0b\u8be5\u95ee\u9898\u4f1a\u51fa\u73b0

  • Serializable \u6027\u80fd\u6700\u4f4e\uff1bRead uncommitted \u6027\u80fd\u6700\u9ad8\uff0c\u6570\u636e\u5b89\u5168\u6027\u6700\u5dee

\u67e5\u770b\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\uff1a

SELECT @@TRANSACTION_ISOLATION;

\u8bbe\u7f6e\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\uff1a

SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE };

SESSION \u662f\u4f1a\u8bdd\u7ea7\u522b\uff0c\u8868\u793a\u53ea\u9488\u5bf9\u5f53\u524d\u4f1a\u8bdd\u6709\u6548\uff0cGLOBAL \u8868\u793a\u5bf9\u6240\u6709\u4f1a\u8bdd\u6709\u6548

"},{"location":"mysql/MySQL/#_28","title":"\u8fdb\u9636\u7bc7","text":"

\u63a8\u8350\u770b\u63a8\u8350\u7684\u9ed1\u9a6c\u7a0b\u5e8f\u733f\u7684MySQL\u6559\u7a0b\u3002

"},{"location":"mysql/%E5%AD%97%E6%AE%B5%EF%BC%88%E6%95%B0%E6%8D%AE%EF%BC%89%E7%B1%BB%E5%9E%8B/","title":"\u5b57\u6bb5\uff08\u6570\u636e\uff09\u7c7b\u578b","text":"

![[Pasted image 20230605144429.png]]

  1. INT\uff1a\u6574\u6570\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u6574\u6570\u503c\uff0c\u53ef\u4ee5\u6307\u5b9a\u957f\u5ea6\uff0c\u5982INT(10)\u8868\u793a\u957f\u5ea6\u4e3a10\u7684\u6574\u6570\u7c7b\u578b\u3002

  2. FLOAT\uff1a\u6d6e\u70b9\u6570\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u5c0f\u6570\u503c\uff0c\u53ef\u4ee5\u6307\u5b9a\u7cbe\u5ea6\u548c\u957f\u5ea6\uff0c\u5982FLOAT(8,2)\u8868\u793a\u603b\u957f\u5ea6\u4e3a8\uff0c\u5c0f\u6570\u70b9\u540e2\u4f4d\u3002

  3. DOUBLE\uff1a\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u6570\u7c7b\u578b\uff0c\u4e0eFLOAT\u7c7b\u4f3c\uff0c\u4f46\u7cbe\u5ea6\u66f4\u9ad8\u3002

  4. DECIMAL\uff1a\u9ad8\u7cbe\u5ea6\u5341\u8fdb\u5236\u6570\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u7cbe\u5ea6\u8981\u6c42\u8f83\u9ad8\u7684\u5c0f\u6570\u503c\uff0c\u53ef\u4ee5\u6307\u5b9a\u7cbe\u5ea6\u548c\u957f\u5ea6\uff0c\u5982DECIMAL(8,2)\u8868\u793a\u603b\u957f\u5ea6\u4e3a8\uff0c\u5c0f\u6570\u70b9\u540e2\u4f4d\u3002

  5. VARCHAR\uff1a\u53ef\u53d8\u957f\u5ea6\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u5b57\u7b26\u4e32\u503c\uff0c\u53ef\u4ee5\u6307\u5b9a\u6700\u5927\u957f\u5ea6\uff0c\u5982VARCHAR(255)\u8868\u793a\u6700\u5927\u957f\u5ea6\u4e3a255\u4e2a\u5b57\u7b26\u3002

  6. CHAR\uff1a\u5b9a\u957f\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u5b57\u7b26\u4e32\u503c\uff0c\u5fc5\u987b\u6307\u5b9a\u957f\u5ea6\uff0c\u5982CHAR(10)\u8868\u793a\u957f\u5ea6\u4e3a10\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\u3002

  7. TEXT\uff1a\u6587\u672c\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u8f83\u957f\u7684\u5b57\u7b26\u4e32\u503c\uff0c\u53ef\u4ee5\u5b58\u50a8\u6700\u5927\u957f\u5ea6\u4e3a65535\u4e2a\u5b57\u7b26\u7684\u6587\u672c\u3002

  8. DATE\uff1a\u65e5\u671f\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u65e5\u671f\u503c\uff0c\u683c\u5f0f\u4e3aYYYY-MM-DD\u3002

  9. TIME\uff1a\u65f6\u95f4\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u65f6\u95f4\u503c\uff0c\u683c\u5f0f\u4e3aHH:MM:SS\u3002

  10. DATETIME\uff1a\u65e5\u671f\u65f6\u95f4\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u65e5\u671f\u548c\u65f6\u95f4\u503c\uff0c\u683c\u5f0f\u4e3aYYYY-MM-DD HH:MM:SS\u3002

  11. TIMESTAMP\uff1a\u65f6\u95f4\u6233\u7c7b\u578b\uff0c\u7528\u4e8e\u5b58\u50a8\u65f6\u95f4\u6233\u503c\uff0c\u683c\u5f0f\u4e3aYYYY-MM-DD HH:MM:SS\u3002

\u5bf9\u4e8e\u5b57\u7b26\u4e32\u7c7b\u578b\u7684\u5b57\u6bb5\uff0c\u5982VARCHAR\u548cCHAR\uff0c\u6307\u5b9a\u7684\u957f\u5ea6\u662f\u5b57\u7b26\u957f\u5ea6\uff0c\u5373\u6700\u591a\u53ef\u4ee5\u5b58\u50a8\u591a\u5c11\u4e2a\u5b57\u7b26\u3002\u800c\u5bf9\u4e8e\u6570\u5b57\u7c7b\u578b\u7684\u5b57\u6bb5\uff0c\u5982INT\u548cFLOAT\uff0c\u6307\u5b9a\u7684\u957f\u5ea6\u662f\u663e\u793a\u5bbd\u5ea6\uff0c\u5373\u7528\u4e8e\u663e\u793a\u8be5\u5b57\u6bb5\u7684\u5b57\u7b26\u5bbd\u5ea6\uff0c\u800c\u4e0d\u662f\u5b58\u50a8\u7684\u6570\u503c\u7684\u957f\u5ea6\u3002\u5728\u6570\u5b57\u7c7b\u578b\u7684\u5b57\u6bb5\u4e2d\uff0c\u957f\u5ea6\u53ea\u662f\u7528\u4e8e\u63a7\u5236\u663e\u793a\u7684\u683c\u5f0f\uff0c\u4e0d\u5f71\u54cd\u5b58\u50a8\u7684\u5b9e\u9645\u6570\u503c\u3002\u56e0\u6b64\uff0c\u5728\u9009\u62e9\u5b57\u6bb5\u7c7b\u578b\u548c\u6307\u5b9a\u957f\u5ea6\u65f6\uff0c\u9700\u8981\u6839\u636e\u5b9e\u9645\u9700\u6c42\u548c\u6570\u636e\u7c7b\u578b\u6765\u9009\u62e9\u3002

"},{"location":"other/","title":"Introduce","text":"

\u6b64\u5904\u7701\u7565...

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/","title":"R\u8bed\u8a00\u5b66\u4e60\u548c\u5e94\u5bf9\u8003\u8bd5\u7684\u4e2a\u4eba\u601d\u8003","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#r","title":"\u4e00\u3001R\u8bed\u8a00\u5b66\u4e60","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#1","title":"1\uff0c\u57fa\u7840","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#11","title":"1.1\uff0c\u6570\u636e\u7c7b\u578b","text":"

\u805a\u7126\u4e8e\u5143\u7d20\u3002

\u6982\u5ff5\uff1a

# 1\uff0c\u6574\u578b\n\u6ca1\u6709\u5c0f\u6570\u90e8\u5206\u7684\u6570\u636e\u3002\n\n# 2\uff0c\u6d6e\u70b9\u578b\n\u5e26\u5c0f\u6570\u4f4d\u7684\u6570\u636e\u3002\u8ddf\u6574\u578b\u7684\u5dee\u522b\u5728\u4e8e\u5b58\u50a8\u5355\u5143\u7684\u5206\u914d\u4e0a\u3002\n\n# 3\uff0c\u5b57\u7b26\u4e32\n\u5b57\u6bcd\u3001\u6c49\u5b57\u3001\u6570\u5b57\u3001\u7b26\u53f7\u7b49\u3002\n\n# 4\uff0c\u5e03\u5c14\u503c\uff0cTrue\uff08\u5176\u4ed6\uff0c\u4e00\u822c\u4e3a1\uff09\uff0cFalse\uff080\uff09\n\u903b\u8f91\u8fd0\u7b97\uff08>,<,==,&,|,~\uff09\uff0c\u5e38\u89c1\u4e8e\u6761\u4ef6\u5224\u522b\u3002\n\n# 5\uff0c\u7279\u6b8a\u503c\n`NA`\uff08not a valueble\uff09,`NULL`,`NaN`,`Inf/-Inf`\n

\u5b9e\u8df5\u4e2d\u7684\u5e94\u7528\uff1a

# \u4f8b\uff1a\u5b57\u7b26\u4e32\nrename(viewers = `Viewers (millions)`, \n       air_date = `Air Date`)\nrename(viewers1 = viewers, \n       air_date1 = air_date1)\n# (1)\u4f5c\u4e3a\u53d8\u91cf\u76f4\u63a5\u7528\u53d8\u91cf\u540d\u8868\u793a\uff0c\u5982\u679c\u653e\u5728\u5217\u8868\u3001\u5411\u91cf\u4e2d\uff0c\u9700\u8981\u52a0\u53cc\u5f15\u53f7\uff0c\u51fd\u6570\u4f1a\u89e3\u6790\u4e3a\u53d8\u91cf\u540d\uff1b\n# (2)\u5e26\u6709\u7279\u6b8a\u7b26\u53f7\u7684\u53d8\u91cf\uff0c\u5982\u5e26\u6709\u7a7a\u683c\u9700\u8981\u52a0\u5355\u5f15\u53f7\u6216\u53cc\u5f15\u4ee5\u8868\u4fbf\u7f16\u8f91\u5668\u8bc6\u522b\u4e3a\u53d8\u91cf\u540d\u3002\n\n\n# \u4f8b\uff1a\u5e03\u5c14\u503c\nsum(...==...) #\u903b\u8f91\u8fd0\u7b97\u6c42\u548c\u6280\u5de7\nmutate(across(is.character, as.factor)) #\u7c7b\u578b\u8f6c\u6362\n# \u5f3a\u70c8\u5efa\u8bae\u4ee5\u540e\u9047\u5230\u903b\u8f91\u8fd0\u7b97\u65f6\u5927\u8111\u9ed8\u8ba4\u5c06\u7ed3\u679c\u8f6c\u6362\u4e3aFALSE\uff080\uff09\uff0cTRUE\uff081\uff09\uff0c\u6709\u52a9\u4e8e\u7406\u89e3\u548c\u8fd0\u7528\u590d\u6742\u7684\u903b\u8f91\u8fd0\u7b97\n\n\n# \u4f8b\uff1a\u7279\u6b8a\u503c\nsum(...,na.rm=FALSE) # Na\u7f3a\u5931\u503c\u9ed8\u8ba4\u662f\u4e0d\u6392\u9664\u7684\uff0c\u5177\u4f53\u89c6\u60c5\u51b5\u800c\u5b9a\n
"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#12","title":"1.2\uff0c\u6570\u636e\u7ed3\u6784","text":"

\u805a\u7126\u4e8e\u5143\u7d20\u95f4\u7684\u5173\u7cfb\uff0c\u4e3a\u4e86\u63d0\u9ad8\u5b58\u50a8\u548c\u8fd0\u7b97\u6548\u7387\u3002

\u6982\u5ff5\uff1a

# 1\uff0c\u5411\u91cf\nc(1, 2, 3) # \u7ecf\u5e38\u5199\u7684\u5411\u91cf\n\n\n# 2\uff0c\u6570\u636e\u6846\uff1a\u7b80\u5355\u7406\u89e3\u4e3aexcel\u8868\u683c\ndata.frame(\nname <- c(\"Alice\", \"Bob\", \"Charlie\")\nage <- c(25, 30, 35)\nheight <- c(165, 175, 185)\n)\n
\u5176\u4ed6\u6570\u636e\u7ed3\u6784\u53ef\u4ee5\u7c7b\u6bd4\u5411\u91cf\u548c\u6570\u636e\u6846\u3002

\u5b9e\u8df5\u4e2d\u7684\u5e94\u7528\uff1a

\u4e3a\u4ec0\u4e48\u552f\u72ec\u5f3a\u8c03\u5411\u91cf\u548c\u6570\u636e\u6846\uff1f\u6570\u636e\u5206\u6790\u4e2d\u592a\u5e38\u7528\u4e86\u3002\u4f60\u53ef\u80fd\u4e0d\u77e5\u9053\u5411\u91cf\u548c\u6570\u636e\u6846\uff0c\u4f46\u4f60\u4e00\u5b9a\u7ecf\u5e38\u5199\u8fd9\u6837\u7684\u4ee3\u7801\u3002

data <- read_csv('C:/./.csv')\n\ndata$column1\n\nggplot(data) +\n  geom_*(aes(x,y))\n

\u6211\u4eec\u5904\u7406\u7684\u6700\u591a\u7684\u5c31\u662f\u5c31\u662f\u7ed3\u6784\u5316\u6570\u636e(Excel\u8868\u683c)\uff0c\u8fd9\u7c7b\u6570\u636e\u4eceexcel\u5bfc\u5165\u540e\u4e00\u822c\u90fd\u5b58\u5728\u4e86\u6570\u636e\u6846\u4e2d\uff0c\u7136\u540e\u6211\u4eec\u518d\u8fdb\u884c\u5904\u7406\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#13","title":"1.3\uff0c\u903b\u8f91\u8bed\u53e5","text":"
# 1\uff0c\u5224\u65ad\u8bed\u53e5\nif(\u6761\u4ef6){\n\n}\n\n# 2\uff0c\u5faa\u73af\u8bed\u53e5\nfor(\u6761\u4ef6){\n\n}\n\n# 3\uff0c\u6761\u4ef6\u8bed\u53e5\n\uff08>,<,==,&,|,~\uff09\n

\u9047\u5230\u6761\u4ef6\u8bed\u53e5\u8f6c\u4e3a\u5e03\u5c14\u503c\uff0cFALSE\u4e3a0\uff0cTrue\u4e3a1\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#14","title":"1.4\uff0c\u5e38\u7528\u51fd\u6570\u548c\u81ea\u5b9a\u4e49\u51fd\u6570","text":"

\uff081\uff09\u5e38\u7528\u51fd\u6570\uff1a

  • \u4e0e\u6570\u636e\u7c7b\u578b\u76f8\u5173\uff0c\u4ee5\u535a\u5ba2\u5185\u5bb9\u4e3a\u4f8b

  • \u4e0e\u6570\u636e\u7ed3\u6784\u76f8\u5173\uff0c\u4ee5\u535a\u5ba2\u5185\u5bb9\u4e3a\u4f8b

    \u6570\u636e\u6846\u4e3a\u4f8b\uff1a\u4e3b\u8981\u7684\u5c31\u662f\u6570\u636e\u6846\u7684\u521b\u5efa\u3001\u751f\u6210\u65b0\u7684\u6570\u636e\u6846\u3001\u5c5e\u6027\u3001\u7d22\u5f15\u3001\u6570\u636e\u6846\u7684\u64cd\u4f5c\uff08\u589e\u3001\u5220\u3001\u6539\u3001\u67e5\uff09\u3002

\u5b9e\u8df5\u4e2d\u7684\u5e94\u7528\uff1a

# \u4fee\u6539\u6570\u636e\u7ed3\u6784\u4e2d\u67d0\u5217\u7684\u6570\u636e\u7c7b\u578b\ndata %>%\n  mutate(across(is.character, as.factor)) \n

\uff082\uff09\u81ea\u5b9a\u4e49\u51fd\u6570\uff1a

# 1\uff0cfunction\u51fd\u6570\u5b9a\u4e49\nfunction\uff08\uff09\n\n# 2\uff0c~\u5b9a\u4e49\u533f\u540d\u51fd\u6570\n\u5b9a\u4e49\u7b80\u5355\u51fd\u6570\n

\u5b9e\u8df5\u4e2d\u7684\u5e94\u7528\uff1a

# 1\uff0cfunction\nsqure1 <- function(x){\n  x^2\n} # \u9ed8\u8ba4\u8fd4\u56de\u6700\u540e\u4e00\u884c\u8ba1\u7b97\u7ed3\u679c\nsqure1 <- function(x){\n  a <- x^2\n  return a  \n} # \u901a\u8fc7return\uff0c\u6307\u5b9a\u8fd4\u56de\u5185\u5bb9\n\n# 2\uff0c\u533f\u540d\u51fd\u6570\nresult <- map(my_list, squrel)\n\nresult <- map(my_list, ~.x^.x) # .x\u4e3a\u5360\u4f4d\u7b26\uff0c\u9010\u5143\u7d20\u8ba1\u7b97\n

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#2packages","title":"2\uff0c\u5305packages","text":"

\u4e3a\u4e86\u4e13\u95e8\u5b9e\u73b0\u67d0\u4e00\u7c7b\u529f\u80fd\uff0c\u5c06\u5404\u79cd\u76f8\u5173\u51fd\u6570\u6253\u5305\u653e\u5728\u4e86\u4e00\u8d77\u3002\u5c31\u50cf\u6211\u4eec\u4e3a\u4e86\u907f\u514d\u5199\u91cd\u590d\u4ee3\u7801\u4e00\u6837\uff0c\u5e94\u7528function()\u5b9a\u4e49\u5e38\u7528\u529f\u80fd\u51fd\u6570\u3002\u8fd9\u79cd\u501f\u9274\u4ed6\u4eba\u6210\u679c\u907f\u514d\u91cd\u590d \u201c\u9020\u8f6e\u5b50\u201d \u7684 \u201c\u62ff\u6765\u4e3b\u4e49\u201d \u8d2f\u7a7f\u7f16\u7a0b\u59cb\u7ec8\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#21","title":"2.1\uff0c\u5185\u7f6e\u5305","text":"

\u5185\u7f6e\u51fd\u6570\u4e3e\u4f8b

\u5185\u7f6e\u51fd\u6570\u5305\u5f80\u5f80\u90fd\u662f\u5e38\u7528\u7684\u57fa\u7840\u529f\u80fd\uff0c\u4f46\u8981\u5b9e\u73b0\u590d\u6742\u7684\u529f\u80fd\u4e86\uff1f

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#22","title":"2.2\uff0c\u7b2c\u4e09\u65b9\u5305\uff1a","text":"

\u968f\u7740\u9700\u6c42\u8d8a\u6765\u8d8a\u591a\uff0c\u5185\u7f6e\u5305\u5185\u5df2\u7ecf\u65e0\u6cd5\u6ee1\u8db3\uff0c\u4e8e\u662f\u975e\u5b98\u65b9\u7684\u4eba\u5458\u7f16\u8f91\u4e86\u5404\u79cd\u5404\u6837\u7684\u51fd\u6570\u5305\uff0c\u4ee5\u6ee1\u8db3\u81ea\u8eab\u9700\u8981\u3002

\u6709\u4e9b\u5305\u975e\u5e38\u597d\u7528\uff0c\u6bd4\u5982R\u4e2d\u8457\u540d\u7684tidyverse\u3002

tidyverse\u662f\u4e00\u4e2aR\u8bed\u8a00\u4e2d\u7684\u6570\u636e\u79d1\u5b66\u548c\u6570\u636e\u5904\u7406\u5de5\u5177\u96c6\u5408\uff0c\u7531\u4e00\u7cfb\u5217\u4e92\u76f8\u4f9d\u8d56\u7684\u7b2c\u4e09\u65b9\u5305\u7ec4\u6210\uff0c\u5305\u62ecdplyr\u3001ggplot2\u3001tidyr\u3001readr\u7b49\u7b49\u3002tidyverse\u7684\u76ee\u6807\u662f\u63d0\u4f9b\u4e00\u79cd\u4e00\u81f4\u4e14\u76f4\u89c2\u7684\u6570\u636e\u5904\u7406\u65b9\u6cd5\uff0c\u4f7f\u5f97\u6570\u636e\u79d1\u5b66\u5bb6\u548c\u5206\u6790\u5e08\u80fd\u591f\u66f4\u8f7b\u677e\u5730\u8fdb\u884c\u6570\u636e\u6e05\u6d17\u3001\u8f6c\u6362\u3001\u53ef\u89c6\u5316\u548c\u5efa\u6a21\u7b49\u64cd\u4f5c\u3002

\u6211\u4eec\u6bcf\u6b21install.packages() \u90fd\u662f\u4ece\u7f51\u4e0a\u4e0b\u8f7d\u7b2c\u4e09\u65b9\u5305\u5230\u672c\u5730\u8f6f\u4ef6\u4e2d\uff0c\u56e0\u6b64\u4e0b\u8f7d\u4e00\u6b21\u540e\u5c31\u4e0d\u7528\u91cd\u590d\u4e0b\u8f7d\uff0c\u8fd9\u4e5f\u662fRstudio\u4e2d\u5199install.packages()\u62a5\u9519\u7684\u539f\u56e0\u4e4b\u4e00\u3002

\u4f7f\u7528\u65f6library() \u544a\u8bc9\u7cfb\u7edf\u6211\u4eec\u8981\u8c03\u5355\u8fd9\u4e2a\u5305\u91cc\u7684\u51fd\u6570\u4e86\uff0c\u8ba9\u5b83\u63d0\u524d\u51c6\u5907\u597d\uff0c\u6587\u4ef6\u5173\u95ed\u540e\u5b58\u5728\u7cfb\u7edf\u7684\u5305\u5c31\u53c8\u88ab\u201c\u653e\u56de\u53bb\u4e86\u201d\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6bcf\u4e2a\u6587\u4ef6\u5f00\u5934\u90fd\u8981\u201c\u914d\u7f6e\u73af\u5883\u201d\uff0c\u5148\u8fd0\u884clibrary()\u624d\u80fd\u4f7f\u7528\u7b2c\u4e09\u65b9\u5305\u5185\u7684\u51fd\u6570\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#3","title":"3\uff0c\u7b97\u6cd5","text":"

\uff08\u8ba1\u7b97\u673a+\u6570\u5b66\uff09\uff1a\u6838\u5fc3\u76ee\u7684\u8282\u7701\u8ba1\u7b97\u8d44\u6e90\u3001\u63d0\u9ad8\u8ba1\u7b97\u6548\u7387\u3001\u5f97\u5230\u7cbe\u786e\u7ed3\u679c\u7b49\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#31","title":"3.1\uff0c\u7b97\u6cd5\u601d\u60f3","text":"

\u56de\u6eaf\uff1a\u52a8\u6001\u89c4\u5212\u4e2d\u7684\u5e94\u7528\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#32","title":"3.2\uff0c\u673a\u5668\u3001\u6df1\u5ea6\u5b66\u4e60\u7b97\u6cd5","text":"

\uff081\uff09\u7ebf\u6027\u56de\u5f52

\\[\\frac1m\\sum_{i=1}^m(y_i-\\hat{y}_i)^2\\]

\u6838\u5fc3\u76ee\u7684\uff1a\u5bfb\u627e\u4e00\u6761\u76f4\u7ebf\u65b9\u7a0b\uff0c\u62df\u5408\u5750\u6807\u70b9\uff0c\u4f7f\u5f97\u5747\u65b9\u5dee\u635f\u5931\u51fd\u6570\u6700\u5c0f\u3002

\u8fd9\u91cc\u9762Loss funtion\u5c31\u6d89\u53ca\u5230\u6570\u5b66\u539f\u7406\u7684\u5e94\u7528\u3002\u4e3a\u4ec0\u4e48\u4e0d\u7528\u7edd\u5bf9\u503c\u8bef\u5dee\uff1f\u56e0\u4e3a\u7528\u5747\u65b9\u5dee\u53ef\u4ee5\u5f97\u5230\u4e00\u6761\u5149\u6ed1\u7684\u66f2\u7ebf\uff0c\u8fdb\u800c\u5fae\u5206\uff0c\u5728\u5bfb\u627e\u6700\u4f18\u89e3\u65f6\u5b9e\u73b0\u9ad8\u6548\u7684\u8fd0\u7b97\u3002

\uff08\u4e0d\u8981\u6c42\u638c\u63e1\uff09\u5173\u4e8e\u6700\u4f18\u89e3\u7684\u5177\u4f53\u8ba1\u7b97\uff0c\u6d89\u53ca\u5230\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\uff08SDG\uff09\uff0c\u5176\u4e2d\u4f1a\u6d89\u53ca\u5230\u56de\u6eaf\u3002

\uff082\uff09AlexNet\u5377\u79ef\u795e\u7ecf\u7f51\u7edc

\u5377\u79ef\u795e\u7ecf\u7f51\u7edc(Convolutional Neural Networks, CNNs)\u7b97\u6cd5\u5728\u5f88\u5927\u7a0b\u5ea6\u4e0a\u63a8\u52a8\u4e86\u56fe\u50cf\u8bc6\u522b\u9886\u57df\uff0c\u7279\u522b\u662f\u4eba\u8138\u8bc6\u522b\u6280\u672f\u7684\u98de\u901f\u53d1\u5c55\u3002CNNs\u901a\u8fc7\u6a21\u4eff\u4eba\u7c7b\u89c6\u89c9\u7cfb\u7edf\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u80fd\u591f\u6709\u6548\u5730\u63d0\u53d6\u548c\u8bc6\u522b\u56fe\u50cf\u4e2d\u7684\u7279\u5f81\uff0c\u4f7f\u5f97\u5b83\u4eec\u5728\u56fe\u50cf\u8bc6\u522b\u4efb\u52a1\u4e2d\u53d6\u5f97\u4e86\u4f18\u5f02\u7684\u6027\u80fd\u3002

\uff08AlaxNet\u7f51\u7edc\uff09

AlexNet (2012): \u7531Alex Krizhevsky\u7b49\u4eba\u5f00\u53d1\u7684AlexNet\u5728ILSVRC 2012\u4e2d\u53d6\u5f97\u4e86\u538b\u5012\u6027\u7684\u80dc\u5229\uff0c\u8fd9\u6807\u5fd7\u7740\u6df1\u5ea6\u5b66\u4e60\u5728\u56fe\u50cf\u8bc6\u522b\u4efb\u52a1\u4e2d\u7684\u4e3b\u5bfc\u5730\u4f4d\u6b63\u5f0f\u786e\u7acb\u3002

\u56fe\u50cf\u8bc6\u522b\u6280\u672f\u7684\u5feb\u901f\u53d1\u5c55\u5927\u6982\u6e90\u4e8e\uff1a

1\uff0c\u786c\u4ef6\u7684\u53d1\u5c55\uff1a\u4ee5GPU\u4e3a\u4ee3\u8868\u7684\u786c\u4ef6\u6027\u80fd\u7684\u63d0\u5347\uff1b

2\uff0c\u6570\u636e\u79ef\u7d2f\uff1a\u6df1\u5ea6\u6570\u636e\u5316\uff0c\u4e14\u79ef\u7d2f\u4e86\u4e0d\u5c11\u6570\u636e\uff1b

3\uff0c\u7b97\u6cd5\u6539\u8fdb\uff1a\u66f4\u9ad8\u6548\u7684\u7b97\u6cd5\u3002

\u56fe\u50cf\u8bc6\u522b\u6280\u672f\u7684\u53d1\u5c55\u4fc3\u8fdb\u9762\u90e8\u8bc6\u522b\u3001\u5546\u54c1\u8bc6\u522b\uff08\u7535\u5546\u7f51\u8d2d\uff09\u3001\u81ea\u52a8\u9a7e\u9a76\uff08\u7279\u65af\u62c9\u3001\u534e\u4e3a\uff09\u7684\u6280\u672f\u53d1\u5c55\u548c\u5e94\u7528\u3002

\uff0828\u53f7\u7684\u5c0f\u7c73\u6c7d\u8f66\u6280\u672f\u53d1\u5e03\u4f1a\uff09

\u8fd9\u4e5f\u5c31\u662f\u6211\u4eec\u540e\u671f\u4f1a\u6df1\u5165\u6d89\u53ca\u5230\u5404\u79cd\u7b97\u6cd5\u7684\u539f\u56e0\uff0c\u56e0\u4e3a\u7b97\u6cd5\u624d\u662f\u524d\u6cbf\u53d1\u5c55\u7684\u7cbe\u534e\u6240\u5728\uff0c\u4e5f\u662f\u6548\u76ca\u7684\u4ee3\u540d\u8bcd\uff01

\u60f3\u8981\u4e86\u89e3\u66f4\u591a\uff0c\u5173\u6ce8\u5b66\u59d4\u5206\u4eab\u7684\u8d44\u6599\uff1a

\u5b66\u59d4\u7684\u63a8\u8350\u7684\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u5206\u7c7b

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#_1","title":"\u4e8c\u3001\u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1","text":"

\u6ce2\u6ce2\u540c\u5b66\u5206\u4eab\u4e0d\u5c11\u5185\u5bb9\uff0c\u5728\u8fd9\u91cc\u5f3a\u70c8\u63a8\u8350\u5176\u4e2d\u7684\u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1\u3001\u7ebf\u6027\u4ee3\u6570\u89c6\u9891\u6559\u7a0b\u3002

https://wngwai.github.io/other/Link/

\u9ad8\u6570\u3001\u7ebf\u4ee3\u3001\u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1\u662f\u673a\u5668\u5b66\u4e60\u3001\u6df1\u5ea6\u5b66\u4e60\u7684\u57fa\u7840\u77e5\u8bc6\uff0c\u53ef\u4ee5\u5c31\u7740\u9700\u8981\u548c\u7a7a\u95f2\u65f6\u95f4\u67e5\u6f0f\u8865\u7f3a\u3002

\u4e4b\u540e\u7684\u8bfe\u7a0b\uff1a\u90fd\u4f1a\u6d89\u53ca\u5230\u76f8\u5173\u77e5\u8bc6\u3002

\u5b66\u671f \u4e13\u4e1a\u8bfe\u7a0b \u7814\u4e00\u4e0b\u5b66\u671f \u300a\u63a2\u7d22\u6027\u6570\u636e\u5206\u6790\u4e0e\u6570\u636e\u53ef\u89c6\u5316\u300b\u300a\u5e94\u7528\u56de\u5f52\u5206\u6790\u300b \u7814\u4e8c\u4e0a\u5b66\u671f \u300a\u673a\u5668\u5b66\u4e60\u4e0e\u9884\u6d4b\u300b\u300a\u5b9e\u9a8c\u8bbe\u8ba1\u4e0e\u56e0\u679c\u63a8\u65ad\u300b

\u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1\u7684\u5185\u5bb9\u975e\u5e38\u591a\uff0c\u6211\u4e5f\u6709\u5f88\u591a\u6ca1\u6709\u641e\u660e\u767d\u3002\u8fd9\u91cc\u53ea\u662f\u7b80\u8981\u4ecb\u7ecd\u4e0b\u6211\u8ba4\u4e3a\u5f53\u524d\u975e\u5e38\u9700\u8981\u5f04\u660e\u767d\u7684\u6838\u5fc3\u6982\u5ff5\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#1_1","title":"1\uff0c\u5047\u8bbe\u68c0\u9a8c\u7684\u6838\u5fc3\u6982\u5ff5","text":"

\u4ee5\u8003\u8bd5\u6210\u7ee9\u4e3a\u6848\u4f8b\uff0c\u5047\u8bbe\u67d0\u6821\u7684\u6210\u7ee9\u6ee1\u8db3\u6b63\u6001\u5206\u5e03\uff0c\u6709\u5b66\u751f1\u4e07\u4eba\uff1a

\uff081\uff09\u603b\u4f53\u5206\u5e03

1\u4e07\u540d\u5b66\u751f\u7684\u6210\u7ee9\u5206\u5e03\u60c5\u51b5\u3002

\uff082\uff09\u6837\u672c\u5747\u503c\u5206\u5e03

\u6837\u672c\u5bb9\u91cf\u4e3a100\u7684\u6837\u672c\u5206\u5e03\u60c5\u51b5\uff1a

\u968f\u673a\u62bd\u53d610000\u4e2a\u6837\u672c\uff0c\u6bcf\u4e2a\u6837\u672c\u5bb9\u91cf\u4e3a100\uff0c\u5c06\u6837\u672c\u5747\u503c\u4f5c\u4e3a\u6570\u636e\u7ed8\u5236\u7684\u76f4\u65b9\u56fe\u5c31\u662f\u6837\u672c\u5747\u503c\u5206\u5e03\uff1a

\u6839\u636e\u4e2d\u5fc3\u6781\u9650\u5b9a\u7406\uff0c\u6837\u672c\u5747\u503c\u8db3\u591f\u591a\u4e0b\uff0c\u6837\u672c\u5747\u503c\u5206\u5e03\u5448\u73b0\u6b63\u6001\u5206\u5e03\uff0c\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u5747\u503c \u4e0e\u603b\u4f53\u5747\u503c\u03bc\u76f8\u7b49\u3002

\u63a5\u53d7\u57df\u3001\u62d2\u7edd\u57df\u3001\u7f6e\u4fe1\u533a\u95f4\u90fd\u662f\u5728\u6837\u672c\u5747\u503c\u5206\u5e03\u4e0a\u770b\u7684\u3002

\u5047\u8bbe\u68c0\u9a8c\u7684\u6838\u5fc3\u601d\u8def\u5c31\u662f\u5c0f\u6982\u7387\u53cd\u8bc1\u6cd5\uff0c\u4ece\u603b\u4f53\u4e2d\u62bd\u53d6\u4e00\u4e2a\u6837\u672c\uff0c\u6837\u672c\u7684\u5747\u503cx_bar\u53ea\u6709\u975e\u5e38\u5c0f\u7684\u6982\u7387\u843d\u5728\u4e86\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u4e24\u4fa7\uff0c\u8fd9\u4e24\u4fa7\u6240\u4ee3\u8868\u7684\u62bd\u6837\u4e8b\u4ef6\u88ab\u79f0\u4e3a\u6781\u7aef\u60c5\u51b5\u3002

\u7c7b\u4f3c\u6211\u8fde\u996e\u6599\u7684\u518d\u6765\u4e00\u74f6\u90fd\u6ca1\u6709\u4e2d\u8fc7\uff0c\u5374\u4e2d\u4e86\u5f69\u7968\uff0c\u8981\u4e48\u6211\u8fd0\u6c14\u7206\u68da\uff0c\u8981\u4e48\u6211\u4e70\u4e86\u5f20\u5047\u5f69\u7968\uff08\u6837\u672c\u4e0d\u6765\u6e90\u603b\u4f53\uff09\uff0c\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u6781\u7aef\u4e8b\u4ef6\u53d1\u751f\u4e86\uff0c\u6211\u4eec\u90fd\u8ba4\u4e3a\u8fd9\u4e2a\u6837\u672c\u4e0d\u5c5e\u4e8e\u603b\u4f53\uff0c\u8fd9\u4e2a\u6837\u672c\u4e2d\u7684\u6570\u636e\u53ef\u80fd\u6765\u6e90\u4e8e\u53e6\u4e00\u4e2a\u5b66\u6821\uff0c\u800c\u6211\u5c31\u662f\u4e70\u5230\u4e86\u4e00\u5f20\u5047\u5f69\u7968\u3002

\u4f46\u4f1a\u4e0d\u4f1a\u6070\u6070\u51fa\u73b0\u4e86\u6781\u7aef\u60c5\u51b5\uff0c\u8fd9\u4e2a\u6837\u672c\u5c31\u662f\u6765\u6e90\u539f\u603b\u4f53\uff1f\u5982\u540c\u6211\u4e70\u5230\u4e86\u4e00\u771f\u7684\u4e2d\u5956\u5f69\u7968\u4e86\uff1f\u4f1a\u7684\uff0c\u6240\u4ee5\u6709\u03b1\u7684\u7684\u6982\u7387\u72af\u53bb\u771f\u7684\u9519\u8bef\uff0c\u4e5f\u5c31\u662f\u6211\u67095%\uff08\u03b1=5%\uff09\u7684\u6982\u7387\u9519\u8fc7\u6210\u4e3a\u5bcc\u4e00\u4ee3\u7684\u673a\u4f1a\u3002

\uff083\uff09t\u5206\u5e03

\u5176\u5b9e\u5230\u4e86\u4e0a\u9762\u90a3\u6b65\u6211\u4eec\u5c31\u8be5\u7ed3\u675f\u4e86\uff0c\u4f8b\u5982\u518d\u6b21\u62bd\u6837\uff0c\u6837\u672c\u5747\u503c\u51fa\u73b0\u5728\u4e24\u7aef\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u8bf4\u8fd9\u4e2a\u6837\u672c\u4e2d\u7684\u6210\u7ee9\u4e00\u6837\u4e0d\u662f\u6211\u4eec\u5b66\u6821\u7684\u3002\u8fd9\u8ddf\u6211\u4eec\u7684\u751f\u6d3b\u7ecf\u9a8c\u662f\u76f8\u7b26\u5408\uff0c\u6211\u4eec\u6839\u636e\u5c0f\u5b69\u8eab\u9ad8\u4f30\u8ba1\u5c0f\u5b69\u5e74\u9f84\u3001\u6839\u636e\u5de5\u9f84\u4f30\u8ba1\u8f93\u5165\u7b49\uff0c\u8eab\u9ad81.7m\u4f60\u4f1a\u6392\u9664\u5c0f\u5b69\u7684\u8303\u7574\uff0c\u5de5\u8d442500\u4f60\u4e0d\u4f1a\u8ba4\u4e3a\u5de5\u9f84\u5f88\u957f\u3002

\u4f46\u6570\u5b66\u5bb6\u6ca1\u6709\u6b62\u6b65\u4e8e\u6b64\uff0c\u6570\u5b66\u5bb6\u60f3\u5982\u679c\u6211\u4e0d\u77e5\u9053\u603b\u4f53\u662f\u4ec0\u4e48\u5206\u5e03\uff0c\u6211\u8be5\u5982\u679c\u5224\u8fd9\u4e2a\u6837\u672c\u662f\u5426\u4ee3\u8868\u6781\u7aef\u60c5\u51b5\u53d1\u751f\uff1f\u4f8b\u5982\uff0c\u6211\u4eec\u4e0d\u77e5\u9053\u5b66\u6821\u603b\u4f53\u6210\u7ee9\u5206\u5e03\u60c5\u51b5\uff0c\u53ea\u6709\u4e00\u4e2a\u6837\u672c\uff0c\u53ea\u77e5\u9053\u603b\u4f53\u6210\u7ee9\u7684\u5747\u503c\u3002

\u901a\u8fc7\u5c06\u6837\u672c\u5747\u503c\u51cf\u53bb\u03bc\u503c\uff08\u5f52\u4e00\u5316\uff09\uff0c\u9664\u4ee5\u6807\u51c6\u8bef\uff08\u53bb\u9664\u5355\u4f4d\u5f71\u54cd\uff09\uff0c\u5c06\u4e0a\u9762\u7684\u6837\u672c\u5747\u503c\u5206\u5e03\u4e2d\u7684\u6570\u636e\u8f6c\u6362\u8fc7\u6765\uff0c\u5c31\u5f97\u5230t\u5206\u5e03\u3002\u7136\u540e\u6570\u5b66\u5bb6\u901a\u8fc7\u62bd\u53d6\u4e0d\u540c\u4e8b\u7269\u7684\u6837\u672c\uff0c\u8ba1\u7b97t\u503c\uff0c\u53d1\u73b0t\u5206\u5e03\u5b58\u5728\u5171\u6027\uff0c\u901a\u8fc7\u590d\u6742\u7684\u6570\u5b66\u8bc1\u660e\uff0c\u8bc1\u660e\u4e86\u8fd9\u79cd\u5171\u6027\u80cc\u540e\u7684\u79d1\u5b66\u6027\u3002\u540c\u6837\u7684\uff0c\u4e2d\u5fc3\u6781\u9650\u5b9a\u7406\uff0c\u4e5f\u662f\u901a\u8fc7\u89c2\u5bdf\u81ea\u7136\u73b0\u8c61\u5f97\u5230\u5f97\u7ed3\u679c\u3002

\\[t=\\frac{\\bar{x}-\\mu}{\\frac s{\\sqrt{\\mathrm{n}}}}\\]

t-value\u3001p-value\u90fd\u662f\u4ecet\u5206\u5e03\u4e0a\u770b\u7684\u3002

  • t\uff08\u5b66\u751f\uff09\u5206\u5e03\u7684\u7531\u6765\uff1a

Gosset\u5728\u5564\u9152\u5382\u5de5\u4f5c\uff0c\u5564\u9152\u82b1\u539f\u6599\u7684\u54c1\u8d28\u4e5f\u5f71\u54cd\u5564\u9152\u7684\u53e3\u611f\uff0c\u800c\u786e\u5b9a\u5564\u9152\u82b1\u7684\u8d28\u91cf\u53c8\u8d39\u65f6\u8d39\u529b\uff0c\u6211\u4eec\u5f53\u4e0b\u4f1a\u60f3\u5230\u53ef\u4ee5\u62bd\u6837\u68c0\u6d4b\uff0c\u4f46\u5f53\u65f6\u662f\u6ca1\u6709\u7406\u8bba\u4f9d\u636e\u7684\uff0cGosset\u7ecf\u8fc7\u5b9e\u9a8c\uff0c\u5f97\u5230\u4e86\u6211\u4eec\u4e0a\u9762\u6240\u8bf4\u7684\u6837\u672c\u5747\u503c\u5206\u5e03\u7684\u7c7b\u4f3c\u7ed3\u679c\uff0c\u53ef\u4ee5\u5224\u65ad\u6781\u7aef\u5dee\u7684\u60c5\u51b5\u3002

\u4f46Gosset\u6ca1\u6709\u6b62\u6b65\u4e8e\u6b64\uff0c\u4ed6\u4e4b\u540e\u53bb\u4e86\u4f26\u6566\u5927\u5b66\u8fdb\u4fee\uff0c\u901a\u8fc7\u4e00\u5e74\u7684\u5b9e\u9a8c\u7814\u7a76\uff0c\u53d1\u8868\u4e86\u4e0b\u9762\u8fd9\u7bc7\u8bba\u6587\uff081908\u5e74\uff09\uff0c\u4e5f\u5c31\u662f\u6211\u4eec\u73b0\u5728\u79f0\u547c\u7684t\u5206\u5e03\u3002\u5564\u9152\u5382\u4e3a\u7ef4\u6301\u5de8\u5927\u7684\u6548\u76ca\uff0c\u907f\u514d\u7ade\u4e89\u5bf9\u624b\u731c\u5230t\u5206\u5e03\u53ef\u4ee5\u7528\u5230\u539f\u6599\u68c0\u6d4b\u4e2d\uff0c\u8001\u677f\u4e0d\u60f3\u8ba9Gosset\u7f72\u540d\u53d1\u8868\uff0c\u6240\u4ee5\u6700\u540e\u7f72\u540dSTUDENT\u3002

\u8fd9\u6216\u8bb8\u5c31\u662f\u6570\u5b66\u7684\u9b45\u529b\uff0c\u6570\u5b66\u5bb6\u901a\u8fc7\u6709\u9650\u7684\u8ba4\u77e5\u63ed\u793a\u4e86\u666e\u904d\u7684\u89c4\u5f8b\uff0c\u56e0\u4e3a\u662f\u6700\u672c\u8d28\u7684\u89c4\u5f8b\uff0c\u6240\u4ee5\u6570\u5b66\u80fd\u5728\u5404\u4e2a\u5b66\u79d1\u4e0a\u90fd\u5f97\u5230\u5e94\u7528\uff0c\u5982\u6750\u6599\u7684\u5b89\u5168\u7cfb\u6570\u3001\u4ea7\u54c1\u8d28\u68c0\u3001\u6295\u8d44\u98ce\u9669\u7ba1\u63a7\u7b49\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#2","title":"2\uff0c\u4e09\u5927\u62bd\u6837\u5206\u5e03","text":"

t\u5206\u5e03\uff0ct\u503c\uff1b\u5361\u65b9\u5206\u5e03\uff0c\u5361\u65b9\u503c\uff1bF\u5206\u5e03\uff0cF\u503c\u7b49\u5176\u4ed6\u5185\u5bb9\u8be6\u89c1\u540e\u9762\u5206\u4eab\u5230\u7fa4\u7684\u601d\u7ef4\u5bfc\u56fe\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#_2","title":"\u4e09\u3001\u5e94\u5bf9\u8003\u8bd5","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#1r","title":"1\uff0cR\u8bed\u8a00\u3001\u6570\u636e\u601d\u7ef4\u4e0e\u5546\u4e1a\u7edf\u8ba1\u4f5c\u4e1a\u6846\u67b6","text":"

\u4f5c\u4e1a\u662f\u6700\u597d\u7684\u8003\u9898\uff0c\u5173\u4e8e\u6570\u636e\u5206\u6790\u7684\u9879\u76ee\u6587\u6863\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#2copilot","title":"2\uff0cCopilot\u7684\u8f85\u52a9","text":"

\u501f\u52a9GPT\u548cCopilot\u3002

\u6f14\u793a\uff1a

\u4f11\u606f\u65f6\u95f4\uff01

2018\u5e74\u53d1\u5e03\u7684\u5e95\u7279\u5f8b\uff1a\u53d8\u4eba

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#copilot","title":"\u56db\u3001\u5173\u4e8eCopilot","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#1copilot","title":"1\uff0cCopilot\u7684\u6ce8\u518c\u4f7f\u7528","text":"
  • \u83b7\u53d6\u7684\u65b9\u5f0f\uff1a

    Copilot\u8fdc\u7a0b\u6388\u6743\uff08\u6211\u4e2a\u4eba\u4f7f\u7528\u7684\u3002\u4e4b\u524d28\u5143\uff0c\u73b0\u572899\u5757\uff0c\u56e2\u8d2d15\u4efd\u4ee5\u4e0a\u67098\u6298\u4f18\u60e0\uff09\uff1b

    \u95f2\u9c7c\u4e0a\u627e\u627e\uff08\u63a8\u8350\uff0c\u6211\u81ea\u5df1\u4e70\u7684\u662f28\u5757/\u5e74\uff09\uff1b

    Github\u4e0a\u6709\u514d\u8d39\u7684\u4e00\u4e2a\u6708\u8bd5\u7528\uff0c\u4f46\u9700\u8981\u7ed1\u5b9a\u56fd\u5916\u7684\u94f6\u884c\u5361\uff1b

    \u5b66\u751f\u9a8c\u8bc1\uff0c\u6709\u5b66\u751f\u90ae\u7bb1\u6700\u4e3a\u65b9\u4fbf\uff0c\u6ca1\u6709\u4e0a\u4f20\u5b66\u751f\u5361\u597d\u50cf\u4e5f\u884c\uff0c\u4e0a\u77e5\u4e4e\u641c\u641c\u3002

  • Rstudio\u7684Copilot\u8bb2\u89e3\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#2aigc","title":"2\uff0cAIGC\u6d45\u8c08","text":"

\u4e0a\u5468\u4e8c\uff0812\u670826\u53f7\uff09\u65bd\u8010\u5fb7\u4f01\u4e1a\u7684\u53c2\u8bbf\uff0c\u770b\u53bb\u7684\u540c\u5b66\u7684\u611f\u60f3\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#21ai","title":"2.1\uff0c\u4ec0\u4e48\u662f\u751f\u6210\u5f0fAI\uff1f","text":"

AIGC\uff08AI Generated Content\uff09\uff1a\u6307\u5229\u7528\u4eba\u5de5\u667a\u80fd\u6280\u672f\u81ea\u52a8\u751f\u6210\u5185\u5bb9\uff0c\u5b83\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u5199\u4f5c\u3001\u505a\u56fe\u3001\u505a\u89c6\u9891\u7b49\u7b49\uff0c\u800cCopilot\u53ea\u662fAIGC\u7684\u4e00\u79cd\u5e94\u7528\u3002

\u300a\u827e\u745e\u54a8\u8be2-2023\u5e74\u4e2d\u56fdAIGC\u4ea7\u4e1a\u5168\u666f\u62a5\u544a\u300b\uff08\u4fb5\u5220\uff09\uff1a

\u827e\u745e\u53d1\u5e03\u300aAIGC\u7cfb\u5217\u62a5\u544a--\u4e2d\u56fdAIGC\u4ea7\u4e1a\u5168\u666f\u62a5\u544a\u300b

\u4ea7\u4e1a\u56fe\u8c31\uff1a

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#22_1","title":"2.2\uff0c\u5e94\u7528\u4e3e\u4f8b","text":"
  • \u4ee5AIGC\u751f\u4ea7\u56fe\u7247\u4e3a\u4f8b\uff1a\u6587\u5fc3\u4e00\u683c

    \u5bf9\u8fd9\u79cd\u7eaf\u6587\u5b57\u7684\u63cf\u8ff0\u5927\u5bb6\u53ef\u80fd\u6ca1\u6709\u5177\u4f53\u7684\u611f\u53d7\uff0c\u6211\u4eec\u4e00\u8d77\u6765\u505a\u4e2a\u8bd5\u9a8c\uff1a

    \u65f6\u95f4\u5730\u70b9\uff1f

    \u4eba\u7269\uff1f

    \u4e8b\u4ef6\uff1f

\uff08\u7ed3\u679c\u5728\u540e\u9762\u63ed\u793a\u3002\uff09

  • \u82f1\u8bed\u5b66\u4e60Call Annie

  • \u76d2\u9a6c\u8bbe\u8ba1\u6848\u4f8b

\uff08\u770b\u524d\u9762AIGC\u751f\u6210\u7684\u56fe\u7247\uff01\uff09

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#23","title":"2.3\uff0c\u5c0f\u7ed3","text":"

\u62bd\u8c61\u6982\u62ec\uff1a

\u79d1\u5b66\u6280\u672f\u662f\u7b2c\u4e00\u751f\u4ea7\u529b\uff0c\u751f\u4ea7\u529b\u51b3\u5b9a\u751f\u4ea7\u5173\u7cfb\uff0c\u751f\u4ea7\u5173\u7cfb\u53c8\u53cd\u4f5c\u7528\u4e8e\u751f\u4ea7\u529b\u3002\u4eba\u7c7b\u793e\u4f1a\u53d1\u5c55\u7684\u7b2c\u4e00\u89c4\u5f8b\uff1a\u751f\u4ea7\u529b\u4e0e\u751f\u4ea7\u5173\u7cfb\u7684\u77db\u76fe\u8fd0\u52a8\u89c4\u5f8b\u3002

\u5f62\u8c61\u6982\u62ec\uff1a

\u4eceOffice\u529e\u516c\u8f6f\u4ef6\u66ff\u4ee3\u7ebf\u4e0b\u8868\u683c\u3001CAD\u753b\u56fe\u8f6f\u4ef6\u66ff\u4ee3\u56fe\u7eb8\u7ed8\u56fe\uff0c\u6570\u636e\u6a21\u578b\u66ff\u4ee3\u624b\u5de5\u8ba1\u91cf\u3001\u7f51\u8d2d\u66ff\u6362\u7ebf\u4e0b\u5546\u573a\u90fd\u662f\u6280\u672f\u8fdb\u6b65\u5e26\u6765\u7684\u751f\u4ea7\u5173\u7cfb\u7684\u8f6c\u53d8\uff0c\u800c\u751f\u4ea7\u5173\u7cfb\u662f\u793e\u4f1a\u5173\u7cfb\u4e2d\u6700\u57fa\u672c\u7684\u5173\u7cfb\uff0c\u5fc5\u7136\u5e26\u6765\u4ea7\u4e1a\u7ed3\u6784\u7684\u8c03\u6574\u3001\u884c\u4e1a\u683c\u5c40\u7684\u6539\u53d8\u3001\u516c\u53f8\u6218\u7565\u7684\u8c03\u6574\u3001\u4eba\u4e8b\u90e8\u95e8\u7684\u53d8\u52a8\u548c\u4eba\u5458\u7684\u5347\u964d\u3002

\u8001\u5e08\u8c08\u5230\u4e1d\u5b9d\u96c6\u56e2\u7684\u6570\u5b57\u5316\u5efa\u8bbe\u4e0d\u5c31\u662f\u5230\u4e86\u4e0d\u5f97\u4e0d\u8fdb\u884c\u91cd\u5927\u6539\u53d8\u7684\u65f6\u5019\u4e86\u5417\uff1f\u53d8\u5bd3\u610f\u7740\u98ce\u9669\uff0c\u53ef\u53d8\u624d\u6709\u673a\u4f1a\u3002

OpenAI\u3001Copilot\u3001Call Annie\u7b49AIGC\u5de5\u5177\u80fd\u5e94\u7528\u5230\u5982\u6b64\u5e7f\u7684\u9886\u57df\uff0c\u7528\u6237\u53c8\u5982\u6b64\u7684\u5bb9\u6613\u4e0a\u624b\u3002\u8fd9\u4e5f\u8ba9\u6211\u66f4\u52a0\u575a\u4fe1\u8fd9\u6b21\u6280\u672f\u53d8\u9769\u5c06\u6df1\u523b\u5f71\u54cd\u73b0\u6709\u7684\u793e\u4f1a\u5173\u7cfb\uff0c\u4e5f\u6df1\u523b\u5730\u5f71\u54cd\u7740\u6bcf\u4e00\u4f4d\u666e\u901a\u4eba\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#_3","title":"\u4e94\u3001\u5176\u4ed6","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#1python","title":"1\uff0c\u5173\u4e8epython\u7684\u5e94\u7528\u6d45\u8c08\uff1a\u8ffd\u6c42\u751f\u4ea7\u529b","text":"

\u5982\u679cCopilot\u6ca1\u6709\u51fa\u73b0\uff0c\u591a\u6570\u4eba\u5176\u5b9e\u6ca1\u5fc5\u8981\u5b66\u4e60Python\uff0c\u4f46Copilot\u5de5\u5177\u7684\u51fa\u73b0\uff0c\u8ba9\u6211\u89c9\u5f97\u53ea\u9700\u8981\u660e\u767d\u57fa\u7840\u7684\u539f\u7406\uff0c\u666e\u901a\u4eba\u5c31\u80fd\u7528Python\u5199\u51fa\u89e3\u51b3\u5de5\u4f5c\u3001\u751f\u6d3b\u4e2d\u91cd\u590d\u95ee\u9898\u548c\u7528\u4e8e\u8f85\u52a9\u51b3\u7b56\u7684\u4ee3\u7801\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#11python","title":"1.1\uff0cpython\uff08\u87d2\u86c7\uff09","text":"

\uff081\uff09\u7b80\u7565

python\u8bed\u8a00\u8ddfR\u8bed\u8a00\u90fd\u662f\u4e00\u79cd\u7f16\u7a0b\u8bed\u8a00\uff0cR\u8bed\u8a00\u4e3b\u8981\u9488\u5bf9\u7edf\u8ba1\u5206\u6790\uff0c\u800cpython\u8bed\u8a00\u7684\u5e94\u7528\u8303\u56f4\u975e\u5e38\u5e7f\u9614\u3002

\uff082\uff09\u63a8\u8350\u7406\u7531\uff1a\u9002\u5408\u4ea4\u53c9\u5e94\u7528\u7684\u4e2a\u6027\u5316\u5de5\u5177

R\u8bed\u8a00\u5728\u751f\u6d3b\u4e2d\u53d1\u6325\u7684\u4f5c\u7528\u592a\u6d45\u4e86\uff0c\u6211\u4eec\u5f88\u96be\u5e94\u7528\u5230\u5b9e\u9645\u4e2d\uff0c\u4f46python\u4e0d\u540c\uff0c\u5b83\u8ddf\u5de5\u4f5c\u3001\u751f\u6d3b\u975e\u5e38\u8d34\u8fd1\uff01

\u4ece\u5f53\u524d\u9636\u6bb5\u4e0a\u770b\uff0cpython\u5177\u6709\u6613\u4e0a\u624b\u3001\u529f\u80fd\u5168\uff08\u524d\u3001\u540e\u7aef\uff09\u3001\u7b2c\u4e09\u65b9\u5e93\u591a\uff08\u6570\u636e\u5206\u6790\u3001\u6295\u8d44\u5206\u6790\u3001\u673a\u5668\u5b66\u4e60\u3001\u6df1\u5ea6\u5b66\u4e60\u7b49\u4e0d\u540c\u9886\u57df\uff09\u7b49\u4f18\u70b9\uff1b

Python\u5728TIOBE\u6392\u884c\u699c\u4e2d\u8fd1\u51e0\u5e74\u90fd\u4f4d\u5c45\u7b2c\u4e00\u4f4d\u3002

TIOBE\u6392\u884c\u699c

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#12_1","title":"1.2\uff0c\u4f7f\u7528\u7684\u601d\u8def","text":"

\u6309\u7167\u4e2a\u4eba\u4f7f\u7528\u9636\u6bb5\u4ecb\u7ecd\uff1a

\uff081\uff09Excel\u8868\u683c\u3001\u6570\u636e\u900f\u89c6\u8868

\uff082\uff09python\u7684\u6570\u636e\u900f\u89c6\u8868\u5e94\u7528\uff1a

\u6f14\u793a

\u6211\u4eec\u5de5\u4f5c\u4f1a\u63a5\u89e6\u5927\u91cf\u91cd\u590d\u6574\u7406\u4fe1\u606f\u5de5\u4f5c\uff0c\u800c\u8fd9\u4e9b\u5de5\u4f5c\u5176\u5b9e\u90fd\u53ef\u4ee5\u8fdb\u884c\u68b3\u7406\u7b80\u5316\uff0c\u4ea4\u7ed9\u7a0b\u5e8f\u5b8c\u6210\u3002\u6211\u4e2a\u4eba\u5f53\u524d\u63a5\u89e6\u4e86\u4e0d\u5c11\u6570\u636e\u91cd\u590d\u5904\u7406\u7684\u4efb\u52a1\uff0c\u901a\u8fc7\u4ee3\u7801\u5316\u8282\u7701\u4e86\u4e0d\u5c11\u65f6\u95f4\u3002

\u4eba\u5de5+\u81ea\u52a8\u5316\u7684\u87ba\u65cb\u4e0a\u5347\u539f\u5219\uff1a\u4f1a\u591a\u5c11\u7528\u591a\u5c11\uff0c\u4ee5\u4fbf\u5f62\u6210\u6b63\u5faa\u73af\u3002

\uff083\uff09\u6570\u636e\u53ef\u89c6\u5316

\uff08\u8fc7\uff09

\uff084\uff09SQL

\u7ed3\u6784\u5316\u6570\u636e\uff0c\u7b80\u5355\u7406\u89e3\u5c31\u662fExcel\u4e2d\u6309\u8868\u683c\u5b58\u50a8\u7684\u6570\u636e\uff0c\u53ea\u662fSQL\u80fd\u5b58\u66f4\u591a\u7684\u6570\u636e\uff0c\u4e5f\u65b9\u4fbf\u64cd\u4f5c\u3002

\u4eceSQL\u8bfb\u53d6\u6570

\uff085\uff09\u722c\u866b

SQL\u4e2d\u7684\u6570\u636e\u4ece\u4f55\u800c\u6765\uff1f\u5b9a\u671f\u722c\u53d6\u6570\u636e\uff0c\u5b58\u5230SQL\u4e2d\u3002

\u767e\u5ea6\u641c\u7d22\u5c31\u662f\u722c\u866b\uff0cAPP\u4e2d\u7684\u641c\u7d22\u6846\u90fd\u542b\u6709\u722c\u866b\u7684\u539f\u7406\u3002

\u4e0d\u613f\u610f\u9519\u8fc7\u60ca\u5929\u5927\u74dc\uff08\u516b\u5366\u4fe1\u606f\uff09\u3001\u6d0b\u8471\u65b0\u95fb\u3001\u80a1\u4ef7\u4fe1\u606f\u3001\u4f18\u60e0\u5238\u3001\u670d\u88c5\u6d41\u884c\u6b3e\u5f0f\u3001\u5fae\u4fe1\u7ea2\u5305\u7b49\u4fe1\u606f\uff0c\u90fd\u53ef\u4ee5\u722c\u53d6\u6c47\u603b\u3002

  • \u4ee5\u4e8c\u624b\u623f\u4fe1\u606f\u722c\u53d6\u4e3a\u4f8b\u3002

  • \u5728\u4e91\u670d\u52a1\u5668\u4e2d\u90e8\u7f72\u7f51\u7edc\u722c\u866b\u3002

\uff086\uff09Web

\u4e2a\u4eba\u7684\u7b80\u6613\u535a\u5ba2\u5e95\u5c42\u662fmarkdown\u6587\u4ef6\uff0c\u7c7b\u4f3c\u6211\u4eec\u7f16\u5199\u7684Rmd\u6587\u4ef6\uff0c\u901a\u8fc7\u540e\u671f\u8f6c\u5316\uff0c\u4ece\u800c\u5448\u73b0\u4e86\u6bd4\u8f83\u597d\u770b\u7684\u6548\u679c\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u6bdb\u576f\u623f\u548c\u7cbe\u88c5\u4fee(Web)\uff0c\u800cWeb\u5c31\u662f\u5c06\u4e0a\u9762\u7684\u201c\u6bdb\u576f\u201d\u9aa8\u67b6\u53d8\u6210\u65b9\u4fbf\u4f7f\u7528\u7684\u64cd\u4f5c\u5e94\u7528\u3002

\u94fe\u63a5

\u5c0f\u7ed3\uff1a

\u722c\u866b(Python)-SQL-Python(\u6570\u636e\u6e05\u6d17\u3001\u5904\u7406\u3001\u53ef\u89c6\u5316\u3001\u673a\u5668\u5b66\u4e60\u3001\u6df1\u5ea6\u5b66\u4e60)-Web(Python)\u3002

AIGC\u8f85\u52a9\u5168\u7a0b\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#13_1","title":"1.3\uff0c\u4e00\u5b9a\u8981\u7ed3\u5408\u4e2a\u4eba\u4e1a\u52a1","text":"

Python\u4ec0\u4e48\u90fd\u6709\uff0c\u4f46\u53c8\u4ec0\u4e48\u90fd\u4e0d\u201c\u7cbe\u201d\uff0c\u5927\u516c\u53f8\u5f88\u5c11\u7528\u5b83\uff0c\u4f46\u5bf9\u4e8e\u4e2a\u4eba\u3001\u5c0f\u516c\u53f8\u5b83\u5374\u7ef0\u7ef0\u6709\u4f59\u3002

Python\u4f5c\u4e3a\u5de5\u5177\uff08\u751f\u4ea7\u529b\uff09\uff0c\u4f7f\u7528\u5de5\u5177\u662f\u4e3a\u4e86\u63d0\u9ad8\u89e3\u51b3\u95ee\u9898\u7684\u6548\u7387\uff01\u5411\u5de5\u5177\u8981\u751f\u4ea7\u529b\uff0c\u8fd9\u662f\u6211\u4e2a\u4eba\u5b66\u4e60python\u7684\u539f\u5219\u3002

Python\u548cR\u7684\u5e95\u5c42\u903b\u8f91\u76f8\u8fd1\uff0c\u4f46\u8fd8\u662f\u6709\u4e0d\u5c11\u5dee\u5f02\uff0c\u867d\u7136\u6613\u4e0a\u624b\uff0c\u4f46\u60f3\u8981\u719f\u7ec3\u5e94\u7528\u8fd8\u662f\u9700\u8981\u82b1\u8d39\u4e9b\u65f6\u95f4\u548c\u7cbe\u529b\uff0c\u6211\u4e2a\u4eba\u5efa\u8bae\u5927\u5bb6\u7ed3\u5408\u81ea\u8eab\u5b9e\u9645\u9700\u6c42\u548c\u5b66\u4e60\u8fdb\u5c55\u7efc\u5408\u8003\u8651\uff0c\u91c7\u7528\u6548\u76ca\u6700\u5927\u5316\u539f\u5219\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#2_1","title":"2\uff0c\u4e2a\u4eba\u601d\u8003","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#21_1","title":"2.1\uff0c\u4e2a\u4eba\u7684\u5b66\u4e60\u5efa\u8bae","text":"

\u6309\u9636\u6bb5\u6765\u3002

\uff081\uff09\u5e94\u5bf9\u8003\u8bd5\uff1a\u4ee5\u4f5c\u4e1a\u9898\u4e3a\u51c6\uff0c\u5e38\u7528\u51fd\u6570\u7684\u53c2\u6570\u8bbe\u7f6e\u548c\u95ee\u9898\u5904\u7406\uff0c\u518d\u501f\u52a9GPT\u548cCopilot\uff1b

\uff082\uff09\u5e94\u7528\u673a\u5668\u5b66\u4e60\u3001\u6df1\u5ea6\u5b66\u4e60\uff1a

\u5230\u8fd9\u91cc\u5c31\u4e0d\u5c40\u9650\u4e8e\u5e38\u7528R\u5305\u4e86\uff0c\u6d89\u53ca\u7684\u51fd\u6570\u4e94\u82b1\u516b\u95e8\u3002\u53ef\u7528obsidian\u7b49\u7b14\u8bb0\u8f6f\u4ef6\u8fdb\u884c\u6574\u7406\uff0c\u5bf9\u4e8e\u96f6\u661f\u51fd\u6570\uff0c\u79ef\u5c11\u6210\u591a\uff0c\u968f\u65f6\u95f4\u589e\u5220\u7cbe\u7b80\u3002

\u9700\u8981\u6df1\u5165\u4e86\u89e3\u51fd\u6570\u53c2\u6570\uff0c\u4e86\u89e3\u53c2\u6570\u6240\u4ee3\u8868\u7684\u6570\u5b66\u539f\u7406\uff0c\u4ee5t.test\u53c2\u6570\u4e3a\u4f8b\u3002

\uff083\uff09\u6df1\u5ea6\u5e94\u7528\uff08\u5de5\u4f5c\uff09\uff1a\u968f\u7740\u79ef\u7d2f\u7684\u51fd\u6570\u589e\u591a\uff0c\u8d44\u6599\u5e93\u53ef\u4ee5\u4f5c\u4e3a\u5b57\u5178\u3002\u4ee5\u5b9e\u9645\u4e2d\u5e38\u7528\u9879\u76ee\u6c47\u603b\u51fd\u6570\uff0c\u5982\u4e0a\u9762\u5206\u6790\u7684\u6570\u636e\u5206\u6790\u9879\u76ee\uff0c\u6216\u4e13\u95e8\u7684\u722c\u866b\u9879\u76ee\u7b49\u3002

\u79ef\u5c11\u6210\u591a\u8fdb\u884c\u53ca\u65f6\u5f52\u7eb3\uff0c\u589e\u91cf\u5b66\u4e60\uff0c\u7f51\u72b6\u8bb0\u5fc6\uff01\u4e5f\u80fd\u9632\u6b62\u8bb0\u4e71

\uff084\uff09\u6210\u4e3a\u4e2a\u4eba\u5de5\u5177\uff08\u5de5\u5177\u5316\uff09\uff1a\u201c\u501f\u9274\u201d\u4ed6\u4eba\u6210\u679c\uff0c\u907f\u514d\u91cd\u590d\u201c\u9020\u8f6e\u5b50\u201d\uff01\u5f88\u591a\u95ee\u9898\u7684\u89e3\u51b3\u90fd\u6709\u73b0\u6210\u7684\u5185\u5bb9\uff0c\u5982\u679c\u6ca1\u6709\u73b0\u6210\u7684\u5185\u5bb9\u90a3\u4e48\u606d\u559c\u4f60\uff0c\u8981\u4e48\u6ca1\u6709\u4ef7\u503c\uff0c\u8981\u4e48\u4ef7\u503c\u72ec\u7279\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#22_2","title":"2.2\uff0c\uff08\u540e\u9762\u4f1a\u5220\u9664\uff09","text":""},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#1_2","title":"1\uff0c\u52a8\u529b\u4e0d\u80fd\u53ea\u6765\u6e90\u4e8e\u538b\u529b\uff1a","text":"

\u5728\u884c\u52a8\u7684\u8fc7\u7a0b\u538b\u529b\u9010\u6b65\u5f97\u5230\u91ca\u653e\uff0c\u4f1a\u8d8a\u6765\u8d8a\u5c0f\uff0c\u8fbe\u5230\u4e34\u754c\u70b9\u540e\u53cd\u800c\u4f1a\u53d8\u6210\u62d6\u7d2f\u3002\u4f53\u73b0\u5728\u8d8a\u5230\u8003\u8bd5\u524d\u8d8a\u52a8\u529b\u5341\u8db3\uff0c\u8003\u8bd5\u540e\u538c\u70e6\u7684\u6076\u6027\u5faa\u73af\u4e2d\u3002

\u800c\u5174\u8da3\u5b8c\u5168\u76f8\u53cd\uff0c\u968f\u7740\u884c\u52a8\uff0c\u79bb\u76ee\u6807\u8d8a\u8fd1\uff0c\u5f15\u529b\u8d8a\u5927\uff0c\u52a8\u529b\u8d8a\u5927\u3002

\u6240\u4ee5\uff0c\u6211\u7684\u7b2c\u4e00\u6761\u5efa\u8bae\u662f\uff1a\u5982\u679c\u4f60\u8981\u957f\u65f6\u95f4\u4e0d\u5f97\u4e0d\u9762\u5bf9\u4e00\u4ef6\u4e8b\uff0c\u5177\u6709\u538b\u529b\u7684\u540c\u65f6\u4e0d\u8981\u5fd8\u4e86\u57f9\u517b\u5174\u8da3\uff0c\u538b\u529b\u662f\u542f\u52a8\u65f6\u7684\u63a8\u529b\uff0c\u5174\u8da3\u662f\u8fc7\u7a0b\u4e2d\u7684\u5438\u529b\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#2_2","title":"2\uff0c\u5982\u4f55\u57f9\u517b\u5174\u8da3\uff1f","text":"

\uff081\uff09\u5bfb\u627e\u201c\u63a5\u89e6\u70b9\u201d

\u6210\u5e74\u4eba\u5bf9\u5f88\u591a\u4e8b\u7269\u662f\u5e76\u6ca1\u6709\u5929\u7136\u7684\u5174\u8da3\uff0c\u4f46\u5174\u8da3\u662f\u80fd\u57f9\u517b\u7684\u3002\u800c\u57f9\u517b\u7684\u5173\u952e\u5c31\u662f\u627e\u5230\u9002\u5408\u4e2a\u4eba\u7684\u5174\u8da3\u6216\u8005\u4e0d\u592a\u538c\u6076\u7684\u201c\u63a5\u89e6\u70b9\u201d\u3002

\u6211\u4ee5\u5b66\u4e60\u722c\u866b\u4e3a\u4f8b\uff0c\u4f60\u7684\u5174\u8da3\u70b9\u5728\u90a3\uff1f\u62a2\u7ea2\u5305\u3001\u6f14\u5531\u4f1a\u95e8\u7968\u3001\u597d\u73a9\u63a8\u8350\u3001\u5f71\u7247\u56fe\u4e66\u6392\u884c\u699c\u3001\u81ea\u52a8\u7b7e\u5230\u3001\u6536\u96c6\u6574\u7406\u6bcf\u65e5\u8d44\u6599\u3001\u8fdb\u884c\u6295\u8d44\u51b3\u7b56\u7b49\uff0c\u603b\u80fd\u627e\u5230\u5173\u8054\u70b9\uff01\u6211\u5bf9\u4e8epython\u7684\u5174\u8da3\u70b9\u662f\u8282\u7701\u5de5\u4f5c\u65f6\u95f4\u548c\u63d0\u9ad8\u4e2a\u4eba\u6548\u7387\uff0c\u4ece\u800c\u6709\u65f6\u95f4\u505a\u4e9b\u522b\u7684\u4e8b\u60c5\u3002

\u53c8\u4f8b\u5982\u5927\u5bb6\u90fd\u597d\u50cf\u5bf9\u8d5a\u94b1\u611f\u5174\u8da3\uff0c\u4f46\u5176\u5b9e\u672a\u5fc5\u559c\u6b22\u94b1\u672c\u8eab\uff0c\u53ea\u662f\u559c\u6b22\u94b1\u6240\u5e26\u6765\u7684\u201c\u81ea\u7531\u201d\u3002

\uff082\uff09\u5173\u6ce8\u4e2a\u4eba\u80fd\u529b\u548c\u4f18\u52bf

\u5176\u5b9e\u5f88\u591a\u5174\u8da3\u7684\u6765\u6e90\u6e90\u4e8e\u4e2a\u4eba\u7684\u7279\u957f\u548c\u4f18\u52bf\u3002\u5927\u90e8\u5206\u4eba\u5bf9\u6253\u6e38\u620f\u4f1a\u6bd4\u8f83\u611f\u5174\u8da3\uff0c\u4f46\u5982\u679c\u8bbe\u4e0a\u4e00\u4e2a\u96be\u5ea6\u76ee\u6807\uff0c\u5f88\u591a\u4eba\u4f1a\u611f\u5230\u975e\u5e38\u75db\u82e6\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#3_1","title":"3\uff0c\u5904\u7406\u538b\u529b","text":"

\u4f1a\u6709\u4eba\u8bf4\u6211\u5bf9\u67d0\u4e8b\u6beb\u65e0\u5174\u8da3\uff0c\u4e5f\u627e\u4e0d\u5230\u80fd\u5438\u5f15\u4f60\u7684\u5730\u65b9\uff0c\u4f46\u53c8\u4e0d\u5f97\u4e0d\u957f\u65f6\u95f4\u9762\u5bf9\uff0c\u8fd9\u65f6\u5c31\u8981\u505a\u597d\u538b\u529b\u7684\u5904\u7406\u3002

\uff081\uff09\u533a\u5206\u5173\u6ce8\u5708\u548c\u5f71\u54cd\u5708

  • \u6ce8\u610f\u529b\u5728\u5f71\u54cd\u5708\u5916\uff1a\u5fc3\u6709\u4f59\u800c\u529b\u4e0d\u8db3\uff0c\u800c\u5f88\u5927\u4e00\u90e8\u5206\u538b\u529b\u6765\u6e90\u4e8e\u6b64\uff1b
  • \u6ce8\u610f\u529b\u5728\u5f71\u54cd\u5708\u5185\uff1a\u6539\u53d8\u81ea\u5df1\u80fd\u6539\u53d8\u7684\uff0c\u624d\u80fd\u6e10\u6e10\u6269\u5927\u5f71\u54cd\u5708\uff1b
  • \u5f71\u54cd\u5708\u5927\u4e8e\u5173\u6ce8\u5708\uff1a\u5f71\u54cd\u529b\u6ca1\u80fd\u53d1\u6325\u51fa\u6765\u3002

\u300a\u9ad8\u6548\u80fd\u4eba\u58eb\u7684\u4e03\u4e2a\u4e60\u60ef\u300b

\uff082\uff09\u62c6\u89e3\u76ee\u6807\uff0c\u4fc3\u8fdb\u884c\u4e3a

\u6539\u53d8\u81ea\u5df1\u80fd\u6539\u53d8\u7684\uff0c\u4e3a\u4ec0\u4e48\u80fd\u6e10\u6e10\u6269\u5927\u5f71\u54cd\u5708\uff1f\u53ef\u4ee5\u770b\u4e0b\u4e0b\u9762\u7684\u5185\u5bb9\u3002

\u300a\u798f\u683c\u884c\u4e3a\u6a21\u578b\u300b\uff0cB\uff08\u884c\u4e3a\uff09=M\uff08\u52a8\u673a\uff09+A\uff08\u80fd\u529b\uff09+P\uff08\u63d0\u793a\uff09

\u5f53\u52a8\u673a\u8f83\u5927\u65f6\u3002

\u5f53\u52a8\u673a\u8f83\u5c0f\u65f6\uff0c\u80fd\u529b\u7684\u5f71\u54cd\u3002

\u4e0d\u65ad\u91cd\u590d\u4e00\u79cd\u884c\u4e3a\uff0c\u4f1a\u8ba9\u5b83\u53d8\u5f97\u66f4\u5bb9\u6613\u505a\u5230\u3002

\u62c6\u89e3\u5927\u7684\u76ee\u6807\uff0c\u76f4\u5230\u6ee1\u8db3\u81ea\u8eab\u80fd\u529b\uff0c\u4ea7\u751f\u884c\u52a8\u4e3a\u6b62\uff0c\u6700\u7ec8\u91cd\u590d\u884c\u4e3a\u5f97\u5230\u52a8\u673a\u548c\u80fd\u529b\u7684\u63d0\u5347\uff0c\u5b9e\u73b0\u87ba\u65cb\u5f0f\u4e0a\u5347\uff01\u8fd9\u662f\u5bf9\u201c\u6ce8\u610f\u529b\u5728\u5f71\u54cd\u5708\u5185\uff0c\u80fd\u6e10\u6e10\u6269\u5927\u5f71\u54cd\u5708\u7684\u201d\u4e2a\u4eba\u89e3\u8bfb\u3002\u4ee5\u6211\u4e2a\u4eba\u8dd1\u6b65\u4e3a\u4f8b\u3002

\uff083\uff09\u9002\u5f53\u7684\u953b\u70bc\uff1a\u57f9\u517b\u8010\u5fc3

\u953b\u70bc\u672c\u8eab\u5c31\u662f\u5fcd\u8010\u75db\u82e6\u548c\u83b7\u5f97\u6210\u5c31\u611f\u7684\u87ba\u65cb\u4e0a\u5347\u8fc7\u7a0b\u3002\u5373\u4fbf\u662f\u5750\u4e45\u4e86\uff0c\u7ad9\u8d77\u6765\u8212\u5c55\u7b4b\u9aa8\u90fd\u662f\u4e0d\u9519\u7684\u65b9\u5f0f\u3002

\uff084\uff09\u95f4\u63a5\u6027\u4f11\u606f\uff1a

\u4e2a\u4eba\u6ce8\u610f\u529b\u96be\u4ee5\u957f\u65f6\u95f4\u96c6\u4e2d\uff0c\u5982\u679c\u5f00\u4e86\u5c0f\u5dee\u3001\u5982\u679c\u5b9e\u5728\u4e0d\u60f3\u505a\uff0c\u5c31\u5148\u653e\u4e0b\u3002\u6709\u65f6\u81ea\u5df1\u957f\u65f6\u95f4\u505a\u4e00\u4ef6\u4e8b\u65f6\uff0c\u4f1a\u5f88\u5fc3\u70e6\uff0c\u4f1a\u5fcd\u4e0d\u4f4f\u62ff\u8d77\u624b\u673a\uff0c\u4f46\u5176\u5b9e\u770b\u624b\u673a\u5185\u5fc3\u4e5f\u96be\u4ee5\u5b89\u5b9a\uff0c\u5176\u5b9e\u8fd9\u4e2a\u65f6\u95f4\u7a7f\u63d2\u522b\u7684\u4e8b\u60c5\uff0c\u6216\u8005\u8d77\u6765\u8d70\u52a8\u8d70\u52a8\uff0c\u8ba9\u81ea\u5df1\u653e\u677e\u653e\u677e\u4f1a\u975e\u5e38\u6709\u6548\u3002

\u300a\u8ba4\u77e5\u89c9\u9192\u300b\uff0c\u6ce8\u610f\u529b\u66f2\u7ebf\uff0c\u6ce8\u610f\u529b\u968f\u65f6\u95f4\u9012\u51cf

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#4","title":"4\uff0c\u6700\u540e\u7684\u5efa\u8bae","text":"

\uff081\uff09\u80af\u5b9a\u81ea\u5df1\uff1a

\u5b8c\u6210\u5c0f\u4efb\u52a1\u540e\uff0c\u8bf7\u53ca\u65f6\u201c\u80af\u5b9a\u201d\u81ea\u5df1\u3002

\u53ca\u65f6\uff1a\u4e00\u65e6\u505a\u6210\u67d0\u4ef6\u4e8b\u60c5\uff0c\u5c31\u8981\u53ca\u65f6\u201c\u80af\u5b9a\u81ea\u5df1\u201d\uff1b

\u80af\u5b9a\uff1a\u4e0d\u662f\u53ea\u6709\u7269\u8d28\u5956\u52b1\uff0c\u884c\u4e3a\u6697\u793a\u4e5f\u884c\uff0c\u6bd4\u5982\u634f\u7d27\u62f3\u5934\u505a\u51fa\u9f13\u821e\u7684\u59ff\u52bf\u3002

\u66f4\u591a\u7684\u5185\u5bb9\u53ef\u4ee5\u770b\u300a\u798f\u683c\u884c\u4e3a\u6a21\u578b\u300b\uff0c\u5f53\u4e2a\u4eba\u5efa\u7acb\u66f4\u591a\u7684\u4fe1\u5fc3\u65f6\uff0c\u6709\u4e9b\u4e8b\u5c31\u81ea\u7136\u800c\u7136\u80fd\u591f\u505a\u4e0b\u53bb\uff01

\uff082\uff09\u63a5\u53d7\u81ea\u5df1\uff1a

\u6539\u53d8\u81ea\u5df1\u80fd\u591f\u6539\u53d8\u7684\uff0c\u63a5\u53d7\u81ea\u5df1\u4e0d\u80fd\u6539\u53d8\u7684\uff01\u6bd5\u7adf\u5927\u5bb6\u538b\u529b\u5df2\u7ecf\u591f\u5927\u4e86\u3002

"},{"location":"other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/#_4","title":"\u7ed3\u675f\u8bed","text":"

\u611f\u8c22\u5927\u5bb6\u7684\u89c2\u770b\u3002\u9884\u795d\u5927\u5bb6\u5143\u65e6\u5feb\u4e50\uff01\u8eab\u4f53\u5065\u5eb7\uff0c\u606d\u559c\u53d1\u8d22\uff01

"},{"location":"other/AI/","title":"\u5916\u7f51\u548cAI","text":""},{"location":"other/AI/#vpn","title":"VPN","text":"

\u897f\u897f\u91cc

Yahaha LTD \u8be6\u7ec6\u64cd\u4f5c\u53ef\u770b\u5fae\u4fe1\u7fa4\u4e2d\u6587\u4ef6\u201c\u5de5\u5177.pdf\u201d

\u84dd\u706f

V.P.N\u8f6f\u4ef6\u6392\u884c\u699c

\u82f9\u679c\u624b\u673aV.P.N\u514d\u8d39

"},{"location":"other/AI/#ai","title":"AI","text":"
  • \u5916\u7f51

    Poe\u65e0\u9700\u624b\u673a\u9a8c\u8bc1\u96c6\u6210\u591a\u4e2a\u4eba\u5de5\u667a\u80fd\u5e73\u53f0\u4e8e\u4e00\u4f53\u7684\u5728\u7ebf\u7f51\u7ad9\uff0c\u53ef\u7528QQ\u90ae\u7bb1\u6ce8\u518c\uff0cGPT3.5\u7b49\u8bf8\u591a\u6a21\u578b\u514d\u8d39

    ForeFront\u96c6\u6210\u591a\u4e2a\u4eba\u5de5\u667a\u80fd\u5e73\u53f0\u4e8e\u4e00\u4f53\u7684\u5728\u7ebf\u7f51\u7ad9\uff08\u624b\u673a\u53f7\u4f1a\u6536\u4e0d\u5230\u9a8c\u8bc1 \u7801\uff0c\u4e0d\u77e5\u9053\u662f\u4e0d\u662f\u7279\u4f8b\uff09

    GPT\u6e90\u7f51\u5740\uff0c\u6ce8\u518c\u4ecb\u7ecd\u89c1\uff08\u65b0\u7fa4\u4e2d\uff1aFS CBU ChatGPT\u6ce8\u518c\u64cd\u4f5c\u624b\u518c--\u7b80\u6613\u7248.pdf\uff09

  • \u5185\u7f51

    \u6587\u5fc3\u4e00\u8a00

    \u514d\u767b\u5f55\uff0cGPT3.0

  • \u6d4f\u89c8\u5668\u63d2\u4ef6

    iTab\u63d2\u4ef6\u9700\u8981\u6ce8\u518c\u90ae\u7bb1\uff0c\u81ea\u5e26Chat-GPT3.5\uff0c \u65f6\u7075\u65f6\u4e0d\u7075

    Wetab\u63d2\u4ef6\u9700\u8981\u6ce8\u518c\u90ae\u7bb1\uff0c\u81ea\u5e26Chat-GPT3.5\uff0c \u65f6\u7075\u65f6\u4e0d\u7075

"},{"location":"other/Link/","title":"\u63a8\u8350\u89c6\u9891","text":""},{"location":"other/Link/#_1","title":"\u6570\u5b66\u76f8\u5173","text":"
  • \u7ebf\u4ee3\uff1a

    UP\u4e3b\u6c49\u8bed\u914d\u97f3-\u3010\u7ebf\u6027\u4ee3\u6570\u7684\u672c\u8d28\u3011\u5408\u96c6-\u8f6c\u8f7d\u4e8e3Blue1Brown\u5b98\u65b9\u53cc\u8bed

    \u3010\u7ebf\u6027\u4ee3\u6570\u7684\u672c\u8d28\u3011

  • \u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1\uff1a

    \u3010\u901a\u4fd7\u7edf\u8ba1\u5b66\u539f\u7406\u5165\u95e86 \u5173\u952e\u4e00\u6b65 \u4ece\u5747\u503c\u62bd\u6837\u5206\u5e03\u5230t\u5206\u5e03\u3011

    \u3010\u591a\u5143\u7edf\u8ba1\u5206\u6790\u8bfe\u7a0b\u4ecb\u7ecd\u3011

"},{"location":"other/Link/#_2","title":"\u53e3\u8bed","text":"
  • Call AnnieAI\u804a\u5929\uff08\u591a\u79cd\u8bed\u8a00\uff09

  • SMSReceiveFree\u514d\u8d39\u7684\u63a5\u7801\u5e73\u53f0\uff0c\u8ddf\u4e0a\u9762\u914d\u5957

"},{"location":"other/Link/#_3","title":"\u56fe\u4e66\u9986\u8d44\u6e90","text":"
  • \u77e5\u7f51\u5165\u53e3

  • \u5386\u5c4a\u8bba\u6587\u67e5\u627e\u5165\u53e3

"},{"location":"other/Link/#_4","title":"\u6570\u636e\u7ed3\u6784\u57fa\u7840\u548c\u7b97\u6cd5\u8bb2\u89e3","text":"
  • \u6570\u636e\u7ed3\u6784\u96f6\u57fa\u7840\u6559\u7a0b\u6570\u636e\u7ed3\u6784\u4e0e\u7b97\u6cd5 \uff08\u6570\u636e\u7ed3\u6784\u8003\u7814\u6570\u636e\u7ed3\u6784\u7b97\u6cd5\u4e0e\u57fa\u7840 2022\u6570\u636e\u7ed3\u6784\u4e25\u851a\u654f \u6570\u636e\u7ed3\u6784c\u8bed\u8a00\u7248 \u6570\u636e\u7ed3\u6784\u5b66\u4e60\u590d\u4e60\u5165\u95e8\u6559\u7a0b\u5c0f\u767d \u6570\u636e\u7ed3\u6784\u4e0e\u7b97\u6cd5\u57fa\u7840\uff09

  • \u6e05\u534e\u5927\u5b66\u535a\u58eb\u8bb2\u89e3Python\u6570\u636e\u7ed3\u6784\u4e0e\u7b97\u6cd5\uff08\u5b8c\u6574\u7248\uff09\u5168\u5957100\u8282

"},{"location":"other/Link/#python","title":"python\u57fa\u7840\u77e5\u8bc6","text":"

\u6210\u7cfb\u7edf\u7684\u57fa\u7840\u7684\u6570\u636e\u6316\u6398\u3001\u5206\u6790\u3001\u53ef\u89c6\u5316\u5b9e\u6218\uff0c\u53ef\u80fd\u9700\u8981\u8865\u5145\u4e00\u4e9b\u57fa\u7840\u77e5\u8bc6\u3002 - \u3010Python\u8bfe\u7a0b\u5929\u82b1\u677f,Python\u5165\u95e8+Python\u722c\u866b+Python\u6570\u636e\u5206\u67905\u5929\u9879\u76ee\u5b9e\u64cd/Python\u57fa\u7840.Python\u6559\u7a0b\u3011

python\u57fa\u7840\u6559\u7a0b\uff0c\u7ed3\u6784\u6e05\u6670\u6613\u61c2\uff0c\u53ef\u4ee5\u4f5c\u4e3a1\u7684\u8865\u5145\uff0c\u6216\u8005\u5148\u542c\u8fd9\u4e2a\u3002 - \u3010\u9ed1\u9a6c\u7a0b\u5e8f\u5458Python\u6559\u7a0b\uff0c4\u5929\u5feb\u901f\u5165\u95e8Python\u6570\u636e\u6316\u6398\uff0c\u7cfb\u7edf\u7cbe\u8bb2+\u5b9e\u6218\u6848\u4f8b\u3011

\u4e5f\u662fpython\u7684\u57fa\u7840\u6559\u7a0b\u8865\u5145\uff0c\u4f5c\u4e3a\u4e0a\u9762\u7684\u8865\u5145\u3002 - \u3010\u82b1\u4e862\u4e07\u591a\u4e70\u7684Python\u6559\u7a0b\u5168\u5957\uff0c\u73b0\u5728\u5206\u4eab\u7ed9\u5927\u5bb6\uff0c\u5165\u95e8\u5230\u7cbe\u901a(Python\u5168\u6808\u5f00\u53d1\u6559\u7a0b)\u3011

python\u4e2d\u91cd\u8981\u7684\u57fa\u7840\u77e5\u8bc6\u70b9\u7684\u6df1\u5ea6\u89e3\u6790\u3002\u76ee\u524d\u627e\u5230\u7684\u89e3\u91caimport\u5e95\u5c42\u903b\u8f91\u8f83\u6e05\u6670\u660e\u767d\u7684up\u4e3b\u3002 - \u3010python\u3011\u5173\u4e8eimport\u4f60\u9700\u8981\u77e5\u9053\u7684\u4e00\u5207\uff01\u4e00\u4e2a\u89c6\u9891\u8db3\u591f\u4e86\u3011

"},{"location":"other/Link/#_5","title":"\u8f6f\u4ef6\u4e0b\u8f7d","text":"

\u5fae\u4fe1\u516c\u4f17\u53f7\uff1a\u51b0\u51b7\u7684\u5e0c\u671b

"},{"location":"other/communites/","title":"\u5546\u4e1a/\u91d1\u878d\u6570\u636e\u5206\u6790\u793e\u533a","text":""},{"location":"other/communites/#_2","title":"\u5185\uff1a","text":"
  • \u548c\u9cb8\u793e\u533a\u91cc\u9762\u6709R\u548cpython\u4e24\u79cd\u4ee3\u7801\uff0c\u4ee5\u53ca\u5bcc\u6587\u672cMarkDown\u7f16\u8f91

    \u4e8c\u624b\u8f66\u4ea4\u6613\u4ef7\u683c\u9884\u6d4b\u2014\u5929\u6c60\u5927\u6570\u636e\u6bd4\u8d5b

  • \u963f\u91cc\u7684\u5929\u6c60\u5e73\u53f0

  • Model scope \u9b54\u5854\u793e\u533a

"},{"location":"other/communites/#_3","title":"\u5916\uff1a","text":"
  • Kaggle\u91cc\u9762\u6709R\u548cpython\u4e24\u79cd\u4ee3\u7801\uff0c\u4ee5\u53ca\u5bcc\u6587\u672cMarkDown\u7f16\u8f91\uff1b

    # Titanic - Prediction DL VS ML\u6cf0\u5766\u5c3c\u514b\u53f7\u83b7\u6551\u9884\u6d4b

  • \u8c37\u6b4c\u7684Colaboratory

"},{"location":"other/%E7%9B%B8%E5%85%B3%E5%88%86%E4%BA%AB/","title":"\u540c\u5b66\u8fc7\u5f80\u5206\u4eab","text":""},{"location":"other/%E7%9B%B8%E5%85%B3%E5%88%86%E4%BA%AB/#20231202-_-2023","title":"20231202-\u4f55\u5a75\u5e08\u59d0_\u540e\u6d6a\u6fc0\u8361-\u7ed92023\u7ea7\u540c\u5b66\u7684\u5b66\u4e60\u5efa\u8bae","text":""},{"location":"other/%E7%9B%B8%E5%85%B3%E5%88%86%E4%BA%AB/#_1","title":"\u300a\u73de\u73c8\u8bba\u8bed\u300b\u5f80\u671f\u96c6\u9526","text":"\u5206\u4eab\u5609\u5bbe \u65b0\u95fb\u7a3f\u94fe\u63a5 \u6240\u5c5e\u5355\u4f4d \u6240\u5c5e\u5e74\u7ea7 \u6240\u5c5e\u4e13\u4e1a \u502a\u9605\u5176 \u7b2c\u4e00\u671f\uff1a2021/7/10 \u502a\u9605\u5176\u300a\u5927\u6570\u636e\u900f\u89c6\u623f\u5730\u4ea7\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u738b\u4e30 \u7b2c\u4e8c\u671f\uff1a2021/7/25 \u738b\u4e30\u300a\u6f2b\u8c08\u5927\u6570\u636e\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u9648\u70af\u660a \u7b2c\u4e09\u671f\uff1a2021/08/01\u9648\u70af\u660a\u300a\u5927\u6570\u636e\u9a71\u52a8\u7684\u884c\u4e1a\u6848\u4f8b\u63a2\u8ba8\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u9648\u666f \u7b2c\u56db\u671f\uff1a2021/08/07\u9648\u666f\u300a\u8f66\u8054\u7f51\u7684\u53d1\u5c55\u73b0\u72b6\u53ca\u5927\u6570\u636e\u5e94\u7528\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u5085\u9a8f \u7b2c\u4e94\u671f\uff1a2021/08/21\u5085\u9a8f\u300a\u5546\u4e1a\u6570\u636e\u5728\u4f9b\u5e94\u94fe\u91d1\u878d\u4e2d\u7684\u5b9e\u8df5\u5206\u4eab\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u9093\u7acb\u541b \u7b2c\u516d\u671f\uff1a2021/08/28\u9093\u7acb\u541b\u300a\u4ece\u3008\u7406\u60f3\u4e4b\u57ce\u3009\u770b\u5927\u6570\u636e\u65f6\u4ee3\u7684\u5de5\u7a0b\u9020\u4ef7\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u5b59\u6d9b \u7b2c\u4e03\u671f\uff1a2021/09/04 \u5b59\u6d9b\u300a\u667a\u6167\u57ce\u5e02\u57fa\u4e8e\u8bed\u4e49\u667a\u80fd\u7684\u591a\u6570\u636e\u878d\u5408\u6cbb\u7406\u300b \u70fd\u706b \u3010\u7279\u9080\u3011 \u9646\u6cc9 \u7b2c\u516b\u671f\uff1a2021/09/05 \u9646\u6cc9\uff08\u6559\u6388 \u535a\u5bfc\uff09\u300a\u6570\u5b57\u8d4b\u80fd\u667a\u6167\u5065\u5eb7\u300b \u6b66\u6c49\u5927\u5b66\u6559\u6388 \u535a\u5bfc \u3010\u7279\u9080\u3011 \u5218\u6ce2 \u7b2c\u4e5d\u671f\uff1a2021/09/08 \u5218\u6ce2\u300a\u6570\u636e\u65f6\u4ee3\u7684\u4e2a\u4f53\u4ef7\u503c\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u90b1\u67ef\uff0c\u79e6\u5cad \u7b2c\u5341\u671f\uff1a2021/09/11 \u8fa9\u8bba\u8d5b\u300a\u5927\u6570\u636e\u65f6\u4ee3\u8ba9\u4eba\u66f4\u81ea\u7531\u8fd8\u662f\u66f4\u4e0d\u81ea\u7531\uff1f\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u5218\u535a \u7b2c\u5341\u4e00\u671f\uff1a2021/10/18 \u5218\u535a\uff08\u540c\u6d4e\u533b\u9662\uff09\u300a\u5927\u6570\u636e\u80cc\u666f\u4e0b\u80bf\u7624\u7684\u9884\u9632\u548c\u8bca\u65ad\u300b \u540c\u6d4e\u533b\u9662 \u3010\u7279\u9080\u3011 \u738b\u4e2d\u5174 \u7b2c\u5341\u4e8c\u671f\uff1a2021/10/25 \u738b\u4e2d\u5174\u300a\u6570\u636e\u5206\u6790\u4e0e\u54c1\u724c\u7535\u5546\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM \u80e1\u6842\u73b2 \u7b2c\u5341\u4e09\u671f\uff1a2021/10/30\u300a\u5927\u6570\u636e\u52a9\u529b\u63d0\u5347\u56fd\u9645\u7269\u6d41\u670d\u52a1\u6548\u7387\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u7c9f\u56db\u7ef4 \u7b2c\u5341\u56db\u671f\uff1a2021/11/08\u300a\u8ba9\u4eba\u751f\u66f4\u7cbe\u5f69\u7684\u65c5\u884c\u4f53\u9a8c\u300b \u7c9f\u56db\u7ef4 \u5229\u7269\u6d66\u5927\u5b66\u535a\u5bfc \u3010\u7279\u9080\u3011 \u90ed\u5cf0 \u7b2c\u5341\u4e94\u671f\uff1a2021/11/10\u300a\u6c60\u9c7c\u4e4b\u6b83\uff1a\u4e0a\u5e02\u516c\u53f8\u793e\u4ea4\u5a92\u4f53\u8054\u7ed3\u4e0e\u80a1\u4ef7\u6ea2\u51fa\u6548\u5e94\u300b \u90ed\u5cf0 \u4e0a\u6d77\u8d22\u7ecf\u5927\u5b66\u535a\u5bfc \u3010\u7279\u9080\u3011 \u8d3e\u9e4f\u98de \u7b2c\u5341\u516d\u671f\uff1a2021/11/13\u300a\u6211\u7684\u6b66\u6c49\u5927\u5b66\u7814\u7a76\u751f\u6c42\u5b66\u7ecf\u5386\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MBA \u5c39\u4fca \u7b2c\u5341\u4e03\u671f\u300a\u57fa\u4e8eNLP\u81ea\u7136\u8bed\u4e49\u5904\u7406\u7684\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u300b\u7814\u8ba8\u4f1a\u8bba\u575b\u6210\u529f\u4e3e\u529e \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u4f55\u5a75 \u7b2c\u5341\u516b\u671f\u300a\u5c0f\u7c73\u6570\u636e\u4e2d\u53f0\u4ea7\u54c1\u67b6\u6784\u89e3\u6790\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u674e\u6021\u7487 \u7b2c\u5341\u4e5d\u671f\u300a\u4e0a\u5e02\u516c\u53f8\u8d22\u52a1\u62a5\u544a\u6570\u636e\u5206\u6790\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u5f90\u5148\u8389\u3001\u50e7\u6b63\u5357 \u7b2c\u4e8c\u5341\u671f\u300a\u6df1\u5ea6\u62c6\u89e3\u76f4\u64ad\u7535\u5546\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MBA \u738b\u601d\u601d \u7b2c\u4e8c\u5341\u4e00\u671f\u300a\u5730\u65b9\u878d\u8d44\u5efa\u8bbe\u6a21\u5f0f\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u80e1\u6c34\u8363 \u7b2c\u4e8c\u5341\u4e8c\u671f\u300a\u6570\u636e\u5206\u6790\u5728\u836f\u54c1\u9500\u552e\u7ba1\u7406\u4e2d\u7684\u5e94\u7528\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u738b\u6d0b \u7b2c\u4e8c\u5341\u4e09\u671f\u300a\u5927\u6570\u636e\u6df1\u5ea6\u5b66\u4e60\u5165\u95e8\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u5468\u5b50\u6db5 \u7b2c\u4e8c\u5341\u56db\u671f\u300a\u6b66\u6c49\u5e02\u6570\u5b57\u667a\u6167\u57ce\u5e02\u5efa\u8bbe\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u9ec4\u4f9d\u7136 \u7b2c\u4e8c\u5341\u4e94\u671f\u300a\u6587\u672c\u5206\u6790\u6846\u67b6\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u6613\u654f \u7b2c\u4e8c\u5341\u516d\u671f\u300a\u6570\u5b57\u7ecf\u6d4e\u4e0b\u7684\u65b0\u578b\u8425\u9500\u6a21\u5f0f\u63a2\u7d22\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u5f90\u9ad8\u745e \u7b2c\u4e8c\u5341\u4e03\u671f\uff1a\u300a\u6c7d\u8f66\u884c\u4e1a\u6570\u5b57\u5316\u8f6c\u578b\u63a2\u7d22\uff08\u5f90\u9ad8\u745e\uff09\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u5f20\u9752\u5c71 \u7b2c\u4e8c\u5341\u516b\u671f\uff1a\u300a\u6570\u5b57\u7ecf\u6d4e\u201c\u5341\u56db\u4e94\u201d\u89c4\u5212\u89e3\u8bfb\uff08\u5f20\u9752\u5c71\uff09\u300b \u6b66\u6c49\u5927\u5b66 19\u7ea7 MBA \u8521\u6587\u752b&\u5468\u4f0d\u8c6a \u7b2c\u4e8c\u5341\u4e5d\u671f\uff1a|\u300a\u6d45\u8c08\u5927\u6570\u636e\u80cc\u666f\u4e0b\u7684\u82af\u7247\u8bbe\u8ba1\u4e0e\u5236\u9020\uff08\u8521\u6587\u752b \u5468\u4f0d\u8c6a\uff09\u300b \u4e2d\u82af\u56fd\u9645\u7814\u53d1\u5de5\u7a0b\u5e08 \u3010\u7279\u9080\u3011 \u738b\u8fbd\u6d77 \u7b2c\u4e09\u5341\u671f\uff1a\u300a\u623f\u5730\u4ea7\u7a0e\u7acb\u6cd5\u6539\u9769\u8bd5\u70b9\u4e13\u9898\u7814\u7a76\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MBA \u738b\u5a67 \u7b2c\u4e09\u5341\u4e00\u671f\uff1a\u300a\u5927\u6570\u636e\u80cc\u666f\u4e0b\u4e2d\u56fd\u5546\u4e1a\u822a\u5929\uff08\u706b\u7bad\uff09\u7684\u63a2\u7d22\uff08\u6768\u8dc3 \u738b\u5a67\uff09\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u5b59\u4f73\u7ef4 \u7b2c\u4e09\u5341\u4e8c\u671f\u300a\u86cb\u767d\u5076\u8054\u7269\u836f\u7269\u7684\u53d1\u5c55\u300b\uff08\u5b59\u4f73\u7ef4\uff09 \u5317\u5927\u535a\u58eb\u540e \u3010\u7279\u9080\u3011 \u5ed6\u6770 \u7b2c\u4e09\u5341\u4e09\u671f\u300a\u201c\u53cc\u51cf\u201d\u653f\u7b56\u4e0b\uff0c\u5982\u4f55\u63d0\u5347\u5b66\u751f\u6838\u5fc3\u7ade\u4e89\u529b\u300b\uff08\u5ed6\u6770\uff09 \u6b66\u6c49\u5927\u5b66 21\u7ea7 MBA \u4f55\u5a75&\u5c39\u4fca \u7b2c\u4e09\u5341\u56db\u671f\u300a\u6c7d\u8f66\u884c\u4e1a\u4e0e\u6280\u672f\u53d1\u5c55\u7545\u8c08\u300b \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u4e8e\u7855 \u7b2c\u4e09\u5341\u4e94\u671f\u300a\u91d1\u878d\u79d1\u6280\u4e0e\u524d\u6cbf\u6280\u672f\u300b\uff08\u4e8e\u7855\uff09 \u6b66\u6c49\u5927\u5b66 22\u7ea7 MEM \u7126\u701a\u8339 \u7b2c\u4e09\u5341\u516d\u671f\u300a30\u5206\u949f\u5e26\u4f60\u73a9\u8f6c\u6296\u97f3\u300b\uff08\u7126\u701a\u8339\uff09 \u6b66\u6c49\u5927\u5b66 21\u7ea7 MBA \u9c81\u6f47\u8983 \u7b2c\u4e09\u5341\u516d\u671f\u300a\u5256\u6790\u521b\u6295\u57fa\u91d1\u8fd0\u4f5c\u65b9\u5f0f\uff08\u9c81\u6f47\u8983\uff09\u300b \u70fd\u706b\u79d1\u6280\u6295\u8d44\u603b\u76d1 \u3010\u7279\u9080\u3011 \u6613\u660e \u7b2c\u4e09\u5341\u516b\u671f\u300a\u6e20\u9053\u8425\u9500\u6570\u5b57\u5316\u8f6c\u578b\u6d45\u6790\u300b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MBA \u9648\u71b9 39\uff1a\u897f\u85cf\u65c5\u6e38\u5fc3\u5f97 \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u90b9\u5e0c\u8c6a 40\uff1a\u517c\u804c\u8bba\u6587\u5199\u4f5c\u6cd5 \u6b66\u5927\u4f20\u5a92\u7855\u58eb \u5c0f\u7c73PM \u3010\u7279\u9080\u3011 \u97e9\u5e86\u82f1 41\uff1a\u4f01\u4e1a\u878d\u8d44\uff08\u4e00\uff09 \u6b66\u6c49\u5927\u5b66 20\u7ea7 MEM \u738b\u5175 42 \uff1a\u9a6c\u5e94\u9f99\u836f\u4e1a \u6b66\u6c49\u5927\u5b66 21\u7ea7 MBA \u6613\u660e 43\uff1a\u5feb\u6d88 \u6b66\u6c49\u5927\u5b66 21\u7ea7 MBA \u4f55\u5a75 44\uff1a\u5927\u6570\u636e\u96c6\u7fa4\u6982\u8ff0 \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u4f59\u51e1 45\uff1a\u722c\u866b \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u4f55\u5a75 46\uff1a\u6570\u4ed3\u5206\u5c42 \u6b66\u6c49\u5927\u5b66 21\u7ea7 MEM \u5b81\u8d24\u661f 47\uff1a\u6211\u4eec\u4e3a\u4ec0\u4e48\u4e0d\u4f1a\u7406\u8d22 \u6b66\u6c49\u5927\u5b66 20\u7ea7 EMBA \u9122\u7136 48\uff1a\u5982\u4f55\u5199\u51fa\u4e00\u7bc7\u5408\u683c\u7684\u4e13\u7855\u8bba\u6587 \u6b66\u6c49\u5927\u5b66 19\u7ea7 MBA \u5218\u6d0b 49\uff1a\u4e13\u7855\u8bba\u6587\u5feb\u95ee\u5feb\u7b54 \u6b66\u6c49\u5927\u5b66 19\u7ea7 MBA \u738b\u4e30 50\uff1a\u8bba\u6587\u4e00\u5f20\u7eb8 \u6b66\u6c49\u5927\u5b66 19\u7ea7 MEM"},{"location":"other/%E7%9B%B8%E5%85%B3%E5%88%86%E4%BA%AB/#_2","title":"\u738b\u4e30\u5e08\u5144\u7684\u7b80\u4e66\u535a\u5ba2","text":"

\u8bb0\u5f55\u4e86\u738b\u4e30\u5e08\u5144\u8bf8\u591a\u7684\u4e2a\u4eba\u7b14\u8bb0\uff0c\u5b66\u59d4\u5f3a\u70c8\u63a8\u8350\u3002

"},{"location":"other/%E7%9B%B8%E5%85%B3%E5%88%86%E4%BA%AB/#54","title":"\u5609\u6b23\u540c\u5b66\u768454\u671f\u73de\u73c8\u8bba\u8bed\u5206\u4eab","text":"

\u5173\u4e8ePython\u548cPowerBI\u8bb2\u89e3

"},{"location":"tool/Git/","title":"\u5173\u4e8eRtudio\u4eceGithub\u4e2d\u514b\u9686\u4ed3\u5e93\u548c\u540c\u6b65\u6587\u4ef6\u7684\u6d41\u7a0b\u7b80\u4ecb","text":""},{"location":"tool/Git/#rstudiogithub","title":"\u4e00\u3001\u5728Rstudio\u4e2d\u514b\u9686Github\u4e0a\u7684\u9879\u76ee","text":""},{"location":"tool/Git/#1github","title":"1\uff0c\u767b\u5f55Github\u8d26\u53f7\uff1a","text":"

https://github.com/login

"},{"location":"tool/Git/#2","title":"2\uff0c\u627e\u5230\u4f5c\u4e1a\u4ed3\u5e93","text":""},{"location":"tool/Git/#1","title":"\uff081\uff09\u786e\u4fdd\u81ea\u5df1\u5df2\u7ecf\u94fe\u63a5\u5230\u8001\u5e08\u7ed9\u7684\u4f5c\u4e1a\u4ed3\u5e93\uff1b","text":""},{"location":"tool/Git/#2_1","title":"\uff082\uff09\u767b\u5f55\u4e2a\u4eba\u8d26\u53f7\u540e\u5728\u4e2a\u4eba\u4ed3\u5e93\u627e\u5230\u4f5c\u4e1a\u4ed3\u5e93\uff0c\u524d\u7f00\u57fa\u672c\u4e00\u6837\uff1a","text":""},{"location":"tool/Git/#3httpsurl","title":"3\uff0c\u590d\u5236\u4e2a\u4eba\u4f5c\u4e1a\u4ed3\u5e93HTTPS\uff08URL\u5730\u5740\uff09","text":""},{"location":"tool/Git/#4rstudio","title":"4\uff0c\u6253\u5f00\u4e2a\u4ebaRstudio\u8f6f\u4ef6","text":"

\u6309\u7167File->New Project->Version Control->Git\u7684\u987a\u5e8f\u6253\u5f00\u514b\u9686Github\u4ed3\u5e93\u7684\u754c\u9762\uff1a

"},{"location":"tool/Git/#5github","title":"5\uff0c\u5c06Github\u4e2d\u7684\u4e2a\u4eba\u4f5c\u4e1a\u4ed3\u5e93\u5185\u5bb9\u514b\u9686\u5230\u672c\u5730","text":"

\u7c98\u8d34\u4e0a\u9762\u590d\u5236\u7684\u4e2a\u4eba\u4f5c\u4e1a\u4ed3\u5e93\u7684URL\u5730\u5740\uff0c\u70b9\u51fbcreatproject\u521b\u5efaR\u9879\u76ee\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u5c06Github\u4e2d\u7684\u4e2a\u4eba\u4f5c\u4e1a\u4ed3\u5e93\u5185\u5bb9\u514b\u9686\u5230\u672c\u5730\u4e86\uff01

\u6ce8\u610f\uff1a\u9700\u8981\u4fdd\u8bc1\u81ea\u5df1\u8fde\u63a5\u5230\u5916\u7f51\uff0c\u4e4b\u524d\u7fa4\u91cc\u5206\u4eab\u7684fastgithub\u8f6f\u4ef6\u53ea\u80fd\u8fde\u63a5\u5230Github\u7f51\u9875\u3002

"},{"location":"tool/Git/#rstudiogit","title":"\u4e8c\u3001\u8bbe\u7f6eRstudio\u7684Git\u9009\u9879\u5361","text":"

\u5b9e\u73b0Rstudio\u6587\u4ef6\u4e0eGithub\u4ed3\u5e93\u6587\u4ef6\u540c\u6b65

"},{"location":"tool/Git/#1rstudiogit","title":"1\uff0cRstudio\u8f6f\u4ef6\u4e2d\u6ca1\u6709\u770b\u5230Git\u9009\u9879\u5361\uff1a","text":"

\u9700\u8981\u5148\u88c5Git\u8f6f\u4ef6\uff0c\u5728QQ\u7fa4\u91cc\u67e5\u627e\u5bf9\u5e94Git\u5b89\u88c5\u7a0b\u5e8f\uff0c\u6216\u767b\u5f55https://git-scm.com/\u4e0b\u8f7d\u3002

\u6ce8\u610f\uff1aGit\u5b89\u88c5\u7684\u6587\u4ef6\u76ee\u5f55\u9700\u8981\u8bb0\u4f4f\uff0c\u540e\u9762\u8981\u7528\u3002

"},{"location":"tool/Git/#2rstudiogit","title":"2\uff0c\u5728Rstudio\u4e2d\u914d\u7f6eGit\u73af\u5883\uff1a","text":"

\u6309\u7167Tool->Global Options...->Git/SVN\u7684\u987a\u5e8f\u627e\u5230Rsudio\u4e2d\u7684Git\u9009\u9879\u3002\u4e00\u822c\u5b89\u88c5\u5b8cGit\u540e\uff0cRstudio\u5e94\u8be5\u4f1a\u81ea\u52a8\u94fe\u63a5\u5230git.exe\u7a0b\u5e8f\uff0c\u5982\u679c\u6ca1\u6709\uff0c\u4ece\u4e4b\u524d\u5b89\u88c5\u7684Git\u7684\u6587\u4ef6\u76ee\u5f55\u4e2d\u6309\u56fe\u4e2d\u9014\u5f84\u624b\u52a8\u6dfb\u52a0\u3002

\u987a\u5e26\u521b\u5efaSSH key\uff08\u8fdc\u7a0b\u8fde\u63a5\u670d\u52a1\u94a5\u5319\uff1f\uff09\uff0c\u590d\u5236\uff0c\u4e0b\u4e00\u6b65\u5907\u7528\u3002

"},{"location":"tool/Git/#3rstudiongithub","title":"3\uff0c\u5b9e\u73b0Rstudion\u4e0eGithub\u7684\u5173\u8054","text":"

\u901a\u8fc7\u4e00\u30011\u4e2d\u767b\u5f55Github\u8d26\u53f7\uff0c\u627e\u5230SSH\uff0c\u914d\u7f6e\u8fdc\u7a0b\u8fde\u63a5\u3002

\u8f93\u5165\u4e4b\u524d\u590d\u5236\u7684SHH key\uff0c\u70b9\u51fb\u6dfb\u52a0\uff0c\u914d\u7f6e\u5b8c\u6210\uff0c\u5b9e\u73b0Rstudio\u8ddf\u4e2a\u4eba\u7684Github\u5173\u8054\u3002

"},{"location":"tool/Git/#rstudiogithub_1","title":"\u4e09\u3001\u5728Rstudio\u4e2d\u5b9e\u73b0\u672c\u5730\u514b\u9686\u6587\u4ef6\u4e0eGitHub\u4e2d\u5bf9\u5e94\u4ed3\u5e93\u6587\u4ef6\u7684\u540c\u6b65","text":""},{"location":"tool/Git/#1debugrmdpdfpdfqi","title":"1\uff0c\u5728\u672c\u5730\u4f5c\u4e1a\u6587\u4ef6\u4e2d\u6dfb\u52a0debug.Rmd\u548c\u5bf9\u5e94\u7684pdf\u6587\u4ef6\uff08pdf\u6587\u4ef6\u5bfc\u51fa\u8be6\u89c1\u7fa4\u4e2d\u5434qi\u540c\u5b66\u5206\u4eab\u7684\u6307\u5357\uff09\u3002","text":"

\u5bf9\u6bd4Github\u4e2d\u7684\u539f\u4ed3\u5e93\u6587\u4ef6\uff0c\u539f\u4ed3\u5e93\u6587\u4ef6\u6ca1\u6709\u6539\u52a8\u3002

"},{"location":"tool/Git/#2_2","title":"2\uff0c\u5c06\u4fee\u6539\u7684\u6587\u4ef6\u8fdb\u884c\u7f13\u5b58","text":""},{"location":"tool/Git/#3github","title":"3\uff0c\u5c06\u7f13\u5b58\u533a\u6587\u4ef6\u5185\u5bb9\u63d0\u4ea4\u5230GitHub\u4e2d\u8fde\u63a5\u7684\u8fdc\u7a0b\u4ed3\u5e93","text":""},{"location":"tool/Git/#1commitgithub","title":"\uff081\uff09\u53ef\u4ee5\u770b\u5230commit\u540eGitHub\u5bf9\u5e94\u4ed3\u5e93\u4e2d\u6587\u4ef6\u6ca1\u6709\u66f4\u65b0\u3002","text":""},{"location":"tool/Git/#2history","title":"\uff082\uff09\u770bHistory\uff0c\u63d0\u4ea4\u8bb0\u5f55\u4e2d\u662f\u6709\u63d0\u4ea4\u4fe1\u606f\u7684\u3002","text":""},{"location":"tool/Git/#3pushgithub","title":"\uff083\uff09\u5c06\u7f13\u5b58\u6587\u4ef6push\u5230GitHub\u7684\u8fdc\u7a0b\u4ed3\u5e93\u4e2d","text":"

\u6ce8\u610f\uff1a\u8981\u4fdd\u8bc1\u80fd\u8fde\u5230\u5916\u7f51\u3002

\u5237\u65b0\uff0c\u518d\u770b\u8fdc\u7a0b\u4ed3\u5e93\u5c31\u6709\u6587\u4ef6\u3002commit\u63d0\u4ea4\u7684\u4fe1\u606f\u5747\u6709\u663e\u793a\u3002

"},{"location":"tool/Obsidian/","title":"Obsidian","text":"

Obsidian\u9ed1\u66dc\u77f3\u5b98\u7f51

Obsidian\u82f1\u6587\u8bba\u575b

Obsidian\u4e2d\u6587\u8bba\u575b

\u5185\u7f51\u5b89\u88c5\u5305

\u5185\u7f51\u63d2\u4ef6

  • \u53f7\u79f0\u7b2c\u4e8c\u5927\u8111
  • \u6838\u5fc3\u4eae\u70b9\uff1a
    • \u5b9e\u73b0\u4e2a\u4eba\u7b14\u8bb0\u5b58\u50a8\u672c\u5730\u5316\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u4e91\u540c\u6b65\uff1b
    • \u4ee5md\u6587\u6863\u4e3a\u7f16\u8f91\u8bed\u8a00\uff0c\u9ad8\u5ea6\u7684\u81ea\u7531\u6027\uff0c\u53ef\u4ee5\u63d2\u5165\u4ee3\u7801\u3001PDF\u3001\u56fe\u7247\u3001\u89c6\u9891\u7b49\uff1b
    • \u627f\u8bfa\u6c38\u4e45\u514d\u8d39\u4f7f\u7528\uff0c\u5f00\u53d1\u7684\u7b2c\u4e09\u65b9\u63d2\u4ef6\u591a\uff0c\u6269\u5c55\u6027\u5f3a\uff1b
    • \u53ef\u4ee5\u4e0e\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u534f\u540c\u4f7f\u7528\u3002
  • \u89c6\u9891\u6559\u5b66 \u521d\u63a2
  • \u6587\u6863 \u4e2d\u6587\u6559\u7a0b
"},{"location":"tool/Obsidian/#_1","title":"\u521d\u59cb\u4f7f\u7528","text":"

\u5176\u5b9e\u6700\u6709\u4ef7\u503c\u7684\u4f7f\u7528\u5c31\u662f\u201c\u501f\u9274\u201d\u4ed6\u4eba\u7684\u6210\u679c\uff0c\u5316\u4e3a\u5df1\u7528\u3002

\u201c\u628a\u5927\u8c61\u653e\u8fdb\u51b0\u7bb1\u7684\u4e09\u6b65\u201d\uff0c\u4fd7\u79f0Obsdian\u4e09\u677f\u65a7\uff1a

"},{"location":"tool/Obsidian/#1obsidian","title":"1\uff0c\u8d2d\u4e70\u4e2a\u51b0\u7bb1\uff1a\u5b89\u88c5Obsidian;","text":"

\u89c1\u4e0a\u9762\u7684\u5185\u7f51\u5b89\u88c5\u5305\u6216\u5b98\u7f51\u3002

"},{"location":"tool/Obsidian/#2","title":"2\uff0c\u6253\u5f00\u51b0\u7bb1\uff1a\u521b\u5efa\u65b0\u5e93\uff1b","text":"

\u5efa\u8bbe\u65b0\u5e93\u2014\u2014\u51b0\u7bb1\u3002

\u8fd9\u6837\u4f60\u5c31\u6709\u4e2a\u201c\u7a7a\u51b0\u7bb1\u201d\u4e86\u3002

"},{"location":"tool/Obsidian/#3","title":"3\uff0c\u653e\u5927\u8c61\uff1a\u5c06\u4ed6\u4eba\u7684\u6587\u4ef6\u53d8\u6210\u81ea\u5df1\u7684\uff1b","text":"
  • \u70b9\u51fb\u535a\u5ba2\u53f3\u4e0a\u89d2\u6216\u76f4\u63a5\u8fdb\u5165github\u4e2a\u4eba\u4ed3\u5e93\u4e3b\u9875\uff0c\u627e\u5230\u5927\u8c61

https://github.com/WngWai/wngwai.github.io.git

  • \u5c06\u5927\u8c61\u653e\u8fdb\u51b0\u7bb1

\u606d\u559c\uff0c\u8fd9\u6837\u6211\u5fd9\u788c\u591a\u65f6\u6574\u7406\u7684\u6210\u679c\u5c31\u662f\u4f60\u7684\u4e86\uff01\u53ef\u4ee5\u968f\u610f\u589e\u8865\u5185\u5bb9\u3001\u8c03\u6574\u6587\u7ae0\u94fe\u63a5\u7b49\u3002

\u56e0\u4e3aGithub\u4e2d\u5f88\u591a\u7b14\u8bb0\u90fd\u662fmd\u6587\u4ef6\u6216\u8005\u53ef\u4ee5\u8f6c\u6362\u6210md\u6587\u4ef6\uff0c\u6240\u4ee5\u6709\u5f88\u591a\u73b0\u6210\u7684\u6210\u679c\u53ef\u4ee5\u501f\u9274\u3002Obsidian\u6587\u4ef6\u7684\u53ef\u642c\u8fc1\u6027\u4e0d\u4ec5\u5c40\u9650\u4e8emd\u6587\u4ef6\uff0c\u5305\u62ec\u4e3b\u9898\u6837\u5f0f\u8bbe\u7f6e\u3001\u63d2\u4ef6\u3001\u5176\u4ed6\u6587\u4ef6\u90fd\u53ef\u4ee5\u76f4\u63a5\u501f\u9274\u8fc7\u6765\u3002

"},{"location":"tool/Obsidian/#_2","title":"\u8fdb\u9636","text":"

\u5f85\u66f4\u3002

"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..2e967373 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,1418 @@ + + + + https://wngwai.github.io/ + 2024-01-10 + daily + + + https://wngwai.github.io/ML/ + 2024-01-10 + daily + + + https://wngwai.github.io/ML/ML-Link/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/00%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/01%20%E5%9F%BA%E7%A1%80%E5%87%BD%E6%95%B0%E5%92%8C%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/02%20%E5%BB%BA%E6%A8%A1/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/03%20readr/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/04%20dplyr/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/05%20ggplot2/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/06%20stringr/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/%E9%A1%B9%E7%9B%AE1-%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/%24/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/IQR%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/TukeyHSD%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/ad.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/anova%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/aov%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/append%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/array%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/as.character%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/as.factor%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/as.integer%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/as.logical%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/as.numeric%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/as.vector%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/barplot%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/bartlett.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/binom.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/c%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/cat%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/chisq.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/cluster%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/colnames%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/cummean%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/cumprod%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/cumsum%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/data.frame%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/dchisq%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/density%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/df%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/df%E7%B4%A2%E5%BC%95/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/dim%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/dimnames%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/dnorm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/droplevels%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/dt%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/duplicated%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/expand.grid%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/factor%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/factor/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/format%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/function%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/getwd%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/glm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/head%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/hist%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/interval%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/is.infinite%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/is.logical%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/is.na%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/is.nan%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/is.null%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/is.numeric%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/ks.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/lambda/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/lapply%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/last%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/length%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/levels%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/leveneTest%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/list%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/lm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/matrix%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/mean%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/merge%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/mode%28%29%E4%BC%97%E6%95%B0/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/na.omit%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/names%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/ncol%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/nlevels%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/nrow%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/optim%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/options%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/order%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/order%28x%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/par%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/paste%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/pchisq%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/pf%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/pie%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/pnorm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/predict%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/print%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/print%28%29%E3%80%81printf%28%29%E3%80%81sprintf%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/prop.table%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/pt%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/qchisq%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/qf%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/qnorm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/qqline%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/qqnorm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/qt%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/quantile%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/range%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rank%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rbind%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rchisq%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/relevel%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/reorder%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rep%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rev%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rnorm%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/round%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rownames%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/rt%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/runif%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sample%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sapply%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sd%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/seq%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/seq_along%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/set_names%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/setwd%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/shapiro.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sort%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sort%28x%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sprintf%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/str%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/sum%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/summary%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/t.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/table%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/tibble%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/typeof%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/unique%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/var%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/var.test%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/which.max%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/~/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/%E5%88%97%E8%A1%A8%E7%9A%84%E7%B4%A2%E5%BC%95/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/%E5%90%91%E9%87%8F%E7%9A%84%E7%B4%A2%E5%BC%95/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/%E6%95%B0%E6%8D%AE%E6%A1%86%E7%B4%A2%E5%BC%95/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/%E7%89%B9%E6%AE%8A%E5%80%BC/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/base-content/%E7%9F%A9%E9%98%B5%E7%9A%84%E7%B4%A2%E5%BC%95/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/across%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/anti_join%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/arrange%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/count%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/cut%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/distinct%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/facet_%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/filter%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/full_join%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/glimpse%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/group_by%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/inner_join%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/lag%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/lead%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/left_join%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/min_rank%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/mutate%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/n%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/n_distinct%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/rename%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/right_join%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/sample_frac%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/sample_n%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/select%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/select_if%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/semi_join%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/slice_max%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/slice_sample%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/summarize%28%29%E3%80%81summarise%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/top_n%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/transmute%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/tribble%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/ungroup%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/dplyr/vars%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/aes%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/color%E8%AF%A6%E6%83%85/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/coord_cartesian%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/coord_flip%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/coord_polar%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/facet_%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/facet_grid%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/facet_wrap%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_bar%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_boxplot%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_col%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_density%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_freqpoly%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_function%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_histogram%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_line%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_point%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_smooth%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_text%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/geom_vline%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/ggplot%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/labs%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/scale_%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/scale_color_manual%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/scale_fill_%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/scale_x_continuous%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/scale_y_continuous%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/stat_density%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/stat_function%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/stat_summary%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/ggplot2/theme%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-EnvStats/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-car/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-e1071/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-gvlma/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-infer/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-kableExtra/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-knitr/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-lubridate/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-pander/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-readxl/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-sampling/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-scales/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-skimr/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-stargazar/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/other%20packages/package-stats/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/readr/read_csv%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/readr/read_excel%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/readr/readxl%EF%BC%9A%EF%BC%9Aread_excel%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/readr/scan%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/readr/write_csv%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/identical%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_c%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_conv%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_count%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_detect%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_dup%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_extract%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_extract_all/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_flatten%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_flatten_comma%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_glue%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_glue_data%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_length/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_locate%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_locate_all%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_match%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_order%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_pad%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_remove%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_replace%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_replace_all%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_sort%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_split%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_split_fixed%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_sub%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_subset%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_to_lower%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_to_title%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_trim%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_trunc%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_view%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_view_all%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/str_wrap%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/stringr%EF%BC%9A%EF%BC%9Aword%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/R/stringr/writeLines%28%29/ + 2024-01-10 + daily + + + https://wngwai.github.io/life/ + 2024-01-10 + daily + + + https://wngwai.github.io/life/food-records/ + 2024-01-10 + daily + + + https://wngwai.github.io/life/hotel/ + 2024-01-10 + daily + + + https://wngwai.github.io/life/predict/ + 2024-01-10 + daily + + + https://wngwai.github.io/mysql/ + 2024-01-10 + daily + + + https://wngwai.github.io/mysql/MySQL/ + 2024-01-10 + daily + + + https://wngwai.github.io/mysql/%E5%AD%97%E6%AE%B5%EF%BC%88%E6%95%B0%E6%8D%AE%EF%BC%89%E7%B1%BB%E5%9E%8B/ + 2024-01-10 + daily + + + https://wngwai.github.io/other/ + 2024-01-10 + daily + + + https://wngwai.github.io/other/20231230-R%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BA%94%E5%AF%B9%E8%80%83%E8%AF%95%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83/ + 2024-01-10 + daily + + + https://wngwai.github.io/other/AI/ + 2024-01-10 + daily + + + https://wngwai.github.io/other/Link/ + 2024-01-10 + daily + + + https://wngwai.github.io/other/communites/ + 2024-01-10 + daily + + + https://wngwai.github.io/other/%E7%9B%B8%E5%85%B3%E5%88%86%E4%BA%AB/ + 2024-01-10 + daily + + + https://wngwai.github.io/tool/ + 2024-01-10 + daily + + + https://wngwai.github.io/tool/Git/ + 2024-01-10 + daily + + + https://wngwai.github.io/tool/Obsidian/ + 2024-01-10 + daily + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 00000000..24ceb7d0 Binary files /dev/null and b/sitemap.xml.gz differ diff --git a/tool/Git/index.html b/tool/Git/index.html new file mode 100644 index 00000000..57f4d4e6 --- /dev/null +++ b/tool/Git/index.html @@ -0,0 +1,1751 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 关于Rtudio从Github中克隆仓库和同步文件的流程简介 - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

关于Rtudio从Github中克隆仓库和同步文件的流程简介

+

一、在Rstudio中克隆Github上的项目

+

1,登录Github账号:

+

https://github.com/login +Pasted image 20231102143038

+

2,找到作业仓库

+

(1)确保自己已经链接到老师给的作业仓库;

+

(2)登录个人账号后在个人仓库找到作业仓库,前缀基本一样:

+

Pasted image 20231102143045

+

Pasted image 20231102143058

+

3,复制个人作业仓库HTTPS(URL地址

+

Pasted image 20231102142630 

+

4,打开个人Rstudio软件

+

按照File->New Project->Version Control->Git的顺序打开克隆Github仓库的界面: +Pasted image 20231102143112

+

Pasted image 20231102143117

+

Pasted image 20231102143127

+

5,将Github中的个人作业仓库内容克隆到本地

+

粘贴上面复制的个人作业仓库的URL地址,点击creatproject创建R项目,这样就可以将Github中的个人作业仓库内容克隆到本地了!

+

注意:需要保证自己连接到外网,之前群里分享的fastgithub软件只能连接到Github网页。

+

Pasted image 20231102143142

+

Pasted image 20231102143202

+

二、设置Rstudio的Git选项卡

+

实现Rstudio文件与Github仓库文件同步

+

1,Rstudio软件中没有看到Git选项卡:

+

需要先装Git软件,在QQ群里查找对应Git安装程序,或登录https://git-scm.com/下载。

+

注意:Git安装的文件目录需要记住,后面要用。

+

Pasted image 20231102143226

+

Pasted image 20231102143240

+

Pasted image 20231102143252

+

2,在Rstudio中配置Git环境:

+

按照Tool->Global Options...->Git/SVN的顺序找到Rsudio中的Git选项。一般安装完Git后,Rstudio应该会自动链接到git.exe程序,如果没有,从之前安装的Git的文件目录中按图中途径手动添加。

+

Pasted image 20231102143302

+

Pasted image 20231102143311

+

顺带创建SSH key(远程连接服务钥匙?),复制,下一步备用。

+

Pasted image 20231102143330

+

Pasted image 20231102143338

+

3,实现Rstudion与Github的关联

+

通过一、1中登录Github账号,找到SSH,配置远程连接。

+

Pasted image 20231102143353

+

Pasted image 20231102143401

+

Pasted image 20231102143413

+

输入之前复制的SHH key,点击添加,配置完成,实现Rstudio跟个人的Github关联。

+

Pasted image 20231102143426

+

Pasted image 20231102143433

+

三、在Rstudio中实现本地克隆文件与GitHub中对应仓库文件的同步

+

1,在本地作业文件中添加debug.Rmd和对应的pdf文件(pdf文件导出详见群中吴qi同学分享的指南)。

+

对比Github中的原仓库文件,原仓库文件没有改动。

+

Pasted image 20231102143458

+

Pasted image 20231102143506

+

2,将修改的文件进行缓存

+

Pasted image 20231102143516

+

Pasted image 20231102143527

+

3,将缓存区文件内容提交到GitHub中连接的远程仓库

+

(1)可以看到commit后GitHub对应仓库中文件没有更新。

+

Pasted image 20231102142818

+

(2)看History,提交记录中是有提交信息的。

+

Pasted image 20231102143538

+

(3)将缓存文件push到GitHub的远程仓库中

+

注意:要保证能连到外网。

+

Pasted image 20231102143548

+

Pasted image 20231102143607

+

刷新,再看远程仓库就有文件。commit提交的信息均有显示。

+

Pasted image 20231102143614

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tool/Obsidian/index.html b/tool/Obsidian/index.html new file mode 100644 index 00000000..19378e45 --- /dev/null +++ b/tool/Obsidian/index.html @@ -0,0 +1,1592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Obsidian - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 跳转至 + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + +

Obsidian

+ +
+

Obsidian黑曜石官网

+

Obsidian英文论坛

+

Obsidian中文论坛

+

内网安装包

+

内网插件

+
+
    +
  • 号称第二大脑
  • +
  • 核心亮点:
      +
    • 实现个人笔记存储本地化,也可以实现云同步;
    • +
    • 以md文档为编辑语言,高度的自由性,可以插入代码、PDF、图片、视频等;
    • +
    • 承诺永久免费使用,开发的第三方插件多,扩展性强;
    • +
    • 可以与第三方软件协同使用。
    • +
    +
  • +
  • 视频教学 + 初探
  • +
  • 文档 + 中文教程
  • +
+

初始使用

+

其实最有价值的使用就是“借鉴”他人的成果,化为己用。

+

“把大象放进冰箱的三步”,俗称Obsdian三板斧:

+

1,购买个冰箱:安装Obsidian;

+

见上面的内网安装包或官网。

+

2,打开冰箱:创建新库;

+

建设新库——冰箱。

+

Pasted image 20231102094431

+

Pasted image 20231102094548

+

Pasted image 20231102094625 +这样你就有个“空冰箱”了。

+

3,放大象:将他人的文件变成自己的;

+
    +
  • 点击博客右上角或直接进入github个人仓库主页,找到大象
  • +
+

Pasted image 20231102094849

+

https://github.com/WngWai/wngwai.github.io.git +Pasted image 20231102095137

+

Pasted image 20231102095237

+
    +
  • 将大象放进冰箱
  • +
+

Pasted image 20231102095304 +Pasted image 20231102095455

+

恭喜,这样我忙碌多时整理的成果就是你的了!可以随意增补内容、调整文章链接等。

+

因为Github中很多笔记都是md文件或者可以转换成md文件,所以有很多现成的成果可以借鉴。Obsidian文件的可搬迁性不仅局限于md文件,包括主题样式设置、插件、其他文件都可以直接借鉴过来。

+
+

进阶

+

待更。

+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tool/attachments/Pasted image 20231102094431.png b/tool/attachments/Pasted image 20231102094431.png new file mode 100644 index 00000000..be66f68e Binary files /dev/null and b/tool/attachments/Pasted image 20231102094431.png differ diff --git a/tool/attachments/Pasted image 20231102094548.png b/tool/attachments/Pasted image 20231102094548.png new file mode 100644 index 00000000..aab330c5 Binary files /dev/null and b/tool/attachments/Pasted image 20231102094548.png differ diff --git a/tool/attachments/Pasted image 20231102094625.png b/tool/attachments/Pasted image 20231102094625.png new file mode 100644 index 00000000..b3e38881 Binary files /dev/null and b/tool/attachments/Pasted image 20231102094625.png differ diff --git a/tool/attachments/Pasted image 20231102094849.png b/tool/attachments/Pasted image 20231102094849.png new file mode 100644 index 00000000..25577b16 Binary files /dev/null and b/tool/attachments/Pasted image 20231102094849.png differ diff --git a/tool/attachments/Pasted image 20231102095059.png b/tool/attachments/Pasted image 20231102095059.png new file mode 100644 index 00000000..56854b97 Binary files /dev/null and b/tool/attachments/Pasted image 20231102095059.png differ diff --git a/tool/attachments/Pasted image 20231102095137.png b/tool/attachments/Pasted image 20231102095137.png new file mode 100644 index 00000000..1629d8e1 Binary files /dev/null and b/tool/attachments/Pasted image 20231102095137.png differ diff --git a/tool/attachments/Pasted image 20231102095237.png b/tool/attachments/Pasted image 20231102095237.png new file mode 100644 index 00000000..965996a5 Binary files /dev/null and b/tool/attachments/Pasted image 20231102095237.png differ diff --git a/tool/attachments/Pasted image 20231102095304.png b/tool/attachments/Pasted image 20231102095304.png new file mode 100644 index 00000000..39bcd678 Binary files /dev/null and b/tool/attachments/Pasted image 20231102095304.png differ diff --git a/tool/attachments/Pasted image 20231102095455.png b/tool/attachments/Pasted image 20231102095455.png new file mode 100644 index 00000000..f2699f03 Binary files /dev/null and b/tool/attachments/Pasted image 20231102095455.png differ diff --git a/tool/attachments/Pasted image 20231102142630.png b/tool/attachments/Pasted image 20231102142630.png new file mode 100644 index 00000000..f7fb020c Binary files /dev/null and b/tool/attachments/Pasted image 20231102142630.png differ diff --git a/tool/attachments/Pasted image 20231102142818.jpg b/tool/attachments/Pasted image 20231102142818.jpg new file mode 100644 index 00000000..35a645e0 Binary files /dev/null and b/tool/attachments/Pasted image 20231102142818.jpg differ diff --git a/tool/attachments/Pasted image 20231102143017.png b/tool/attachments/Pasted image 20231102143017.png new file mode 100644 index 00000000..13e32ae6 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143017.png differ diff --git a/tool/attachments/Pasted image 20231102143038.png b/tool/attachments/Pasted image 20231102143038.png new file mode 100644 index 00000000..f03b3e3f Binary files /dev/null and b/tool/attachments/Pasted image 20231102143038.png differ diff --git a/tool/attachments/Pasted image 20231102143045.png b/tool/attachments/Pasted image 20231102143045.png new file mode 100644 index 00000000..375730ea Binary files /dev/null and b/tool/attachments/Pasted image 20231102143045.png differ diff --git a/tool/attachments/Pasted image 20231102143058.png b/tool/attachments/Pasted image 20231102143058.png new file mode 100644 index 00000000..07a889b6 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143058.png differ diff --git a/tool/attachments/Pasted image 20231102143112.png b/tool/attachments/Pasted image 20231102143112.png new file mode 100644 index 00000000..7876a911 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143112.png differ diff --git a/tool/attachments/Pasted image 20231102143117.png b/tool/attachments/Pasted image 20231102143117.png new file mode 100644 index 00000000..9076692f Binary files /dev/null and b/tool/attachments/Pasted image 20231102143117.png differ diff --git a/tool/attachments/Pasted image 20231102143127.png b/tool/attachments/Pasted image 20231102143127.png new file mode 100644 index 00000000..becb6e7b Binary files /dev/null and b/tool/attachments/Pasted image 20231102143127.png differ diff --git a/tool/attachments/Pasted image 20231102143142.png b/tool/attachments/Pasted image 20231102143142.png new file mode 100644 index 00000000..a94d2c40 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143142.png differ diff --git a/tool/attachments/Pasted image 20231102143202.png b/tool/attachments/Pasted image 20231102143202.png new file mode 100644 index 00000000..dcc1da80 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143202.png differ diff --git a/tool/attachments/Pasted image 20231102143226.png b/tool/attachments/Pasted image 20231102143226.png new file mode 100644 index 00000000..0468804e Binary files /dev/null and b/tool/attachments/Pasted image 20231102143226.png differ diff --git a/tool/attachments/Pasted image 20231102143240.png b/tool/attachments/Pasted image 20231102143240.png new file mode 100644 index 00000000..007593cd Binary files /dev/null and b/tool/attachments/Pasted image 20231102143240.png differ diff --git a/tool/attachments/Pasted image 20231102143252.png b/tool/attachments/Pasted image 20231102143252.png new file mode 100644 index 00000000..384a42ad Binary files /dev/null and b/tool/attachments/Pasted image 20231102143252.png differ diff --git a/tool/attachments/Pasted image 20231102143302.png b/tool/attachments/Pasted image 20231102143302.png new file mode 100644 index 00000000..619e2651 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143302.png differ diff --git a/tool/attachments/Pasted image 20231102143311.png b/tool/attachments/Pasted image 20231102143311.png new file mode 100644 index 00000000..42f4e5ff Binary files /dev/null and b/tool/attachments/Pasted image 20231102143311.png differ diff --git a/tool/attachments/Pasted image 20231102143330.png b/tool/attachments/Pasted image 20231102143330.png new file mode 100644 index 00000000..4c13d0b6 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143330.png differ diff --git a/tool/attachments/Pasted image 20231102143338.png b/tool/attachments/Pasted image 20231102143338.png new file mode 100644 index 00000000..233fd014 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143338.png differ diff --git a/tool/attachments/Pasted image 20231102143353.png b/tool/attachments/Pasted image 20231102143353.png new file mode 100644 index 00000000..2711a950 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143353.png differ diff --git a/tool/attachments/Pasted image 20231102143401.png b/tool/attachments/Pasted image 20231102143401.png new file mode 100644 index 00000000..3a5d14e3 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143401.png differ diff --git a/tool/attachments/Pasted image 20231102143413.png b/tool/attachments/Pasted image 20231102143413.png new file mode 100644 index 00000000..d2a16d8c Binary files /dev/null and b/tool/attachments/Pasted image 20231102143413.png differ diff --git a/tool/attachments/Pasted image 20231102143426.png b/tool/attachments/Pasted image 20231102143426.png new file mode 100644 index 00000000..9224592f Binary files /dev/null and b/tool/attachments/Pasted image 20231102143426.png differ diff --git a/tool/attachments/Pasted image 20231102143433.png b/tool/attachments/Pasted image 20231102143433.png new file mode 100644 index 00000000..8a35d533 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143433.png differ diff --git a/tool/attachments/Pasted image 20231102143458.png b/tool/attachments/Pasted image 20231102143458.png new file mode 100644 index 00000000..f5b3d71c Binary files /dev/null and b/tool/attachments/Pasted image 20231102143458.png differ diff --git a/tool/attachments/Pasted image 20231102143506.png b/tool/attachments/Pasted image 20231102143506.png new file mode 100644 index 00000000..948a2adc Binary files /dev/null and b/tool/attachments/Pasted image 20231102143506.png differ diff --git a/tool/attachments/Pasted image 20231102143516.png b/tool/attachments/Pasted image 20231102143516.png new file mode 100644 index 00000000..b3771d12 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143516.png differ diff --git a/tool/attachments/Pasted image 20231102143527.png b/tool/attachments/Pasted image 20231102143527.png new file mode 100644 index 00000000..dd8cd0ff Binary files /dev/null and b/tool/attachments/Pasted image 20231102143527.png differ diff --git a/tool/attachments/Pasted image 20231102143538.png b/tool/attachments/Pasted image 20231102143538.png new file mode 100644 index 00000000..d632774f Binary files /dev/null and b/tool/attachments/Pasted image 20231102143538.png differ diff --git a/tool/attachments/Pasted image 20231102143548.png b/tool/attachments/Pasted image 20231102143548.png new file mode 100644 index 00000000..4086293b Binary files /dev/null and b/tool/attachments/Pasted image 20231102143548.png differ diff --git a/tool/attachments/Pasted image 20231102143607.png b/tool/attachments/Pasted image 20231102143607.png new file mode 100644 index 00000000..022de9fc Binary files /dev/null and b/tool/attachments/Pasted image 20231102143607.png differ diff --git a/tool/attachments/Pasted image 20231102143614.png b/tool/attachments/Pasted image 20231102143614.png new file mode 100644 index 00000000..67c4a927 Binary files /dev/null and b/tool/attachments/Pasted image 20231102143614.png differ diff --git a/tool/index.html b/tool/index.html new file mode 100644 index 00000000..5c2b38ec --- /dev/null +++ b/tool/index.html @@ -0,0 +1,1479 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Index - WngWai的简易博客 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + +

Index

+ + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file

《珞珈论语》往期集锦