版权声明:本套课程材料开源,使用和分享必须遵守「创作共用许可协议 CC BY-NC-SA」(来源引用-非商业用途使用-以相同方式共享)。
bruceR (v2026.1)
Broadly Useful Convenient and Efficient R functions
Packages also loaded:
✔ dplyr ✔ data.table
✔ tidyr ✔ emmeans
✔ stringr ✔ lmerTest
✔ forcats ✔ effectsize
✔ ggplot2 ✔ performance
✔ cowplot ✔ interactions
Main functions of `bruceR`:
cc() Describe() TTEST()
add() Freq() MANOVA()
.mean() Corr() EMMEANS()
set.wd() Alpha() PROCESS()
import() EFA() model_summary()
print_table() CFA() lavaan_summary()
For full functionality, please install all dependencies:
install.packages("bruceR", dep=TRUE)
Online documentation:
https://psychbruce.github.io/bruceR
To use this package in publications, please cite:
Bao, H. W. S. (2021). bruceR: Broadly useful convenient and efficient R functions (Version 2026.1) [Computer software]. https://doi.org/10.32614/CRAN.package.bruceR
“万物皆对象,万事皆函数。” —— John Chambers(R语言创始人之一)
data.frame(包括data.table)展开的函数知识点
c():生成任何类型向量(合并一组同类型的数据)⭐️
seq():生成数值序列rep():重复向量元素as.factor():将任意类型向量转换为因子型向量⭐️
[1] 1
[1] 1 2 3 4 5
[1] 1 2 3 4 5
[1] 1 2 3 4 5 10 15
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
[1] 1 2 1 2 1 2
[1] 1 1 1 2 2 2
[1] 2 0 0 0 6 2
[1] 2 0 6
[1] 2 0 0 0 6 2
Levels: 0 2 6
[1] "0" "2" "6"
函数知识点
length():计算对象内的元素个数nchar():计算字符串的字符个数str():显示R对象的内部结构(常用于探索数据结构)⭐️factor():比as.factor()更完整的因子型向量设定⭐️
levels:定义因子水平顺序labels:定义因子取值标签cc():比c()更方便的字符向量设定
[1] "1" "2" "3" "4" "5" "10.5" "next"
[1] "Psychology"
[1] "Psychology"
character(0)
[1] NA
[1] 10
[1] "Psychology" "ECNU" "Shanghai" "China"
[1] 4
[1] 10 4 8 5
[1] "character"
chr [1:4] "Psychology" "ECNU" "Shanghai" "China"
[1] Psychology ECNU Shanghai China
Levels: China ECNU Psychology Shanghai
[1] Psychology ECNU Shanghai China
Levels: China Shanghai ECNU Psychology
factor(
a,
levels = c("China", "Shanghai", "ECNU", "Psychology"),
labels = c("CN", "SH", "ECNU", "Psy")
)[1] Psy ECNU SH CN
Levels: CN SH ECNU Psy
[1] "心理学" "社会学" "教育学" "管理学" "计算机" "人工智能"
[1] "心理学" "社会学" "教育学" "管理学" "计算机" "人工智能"
函数知识点
as.logical():0转换为FALSE,非0转换为TRUEas.character():转换为字符向量as.numeric():转换为数值向量(无法转换的记为NA缺失值)%>%:管道操作符⭐️(tidyverse系列包的通用函数)
.占位没有"%>%"这个函数,请library(bruceR)或library(tidyverse)[1] FALSE TRUE TRUE TRUE TRUE TRUE
[1] "0" "1" "2" "3" "4" "5"
[1] -1.5 0.0 1.5
Warning: 强制改变过程中产生了NA
[1] 1.20 -0.12 NA
[1] Psychology ECNU Shanghai China
Levels: China ECNU Psychology Shanghai
[1] Psychology ECNU Shanghai China
Levels: China ECNU Psychology Shanghai
[1] 3 2 4 1
[1] 3 2 4 1 200062
[1] 3 2 4 1 200062
[1] 200062 3 2 4 1
函数知识点
names():对象元素名称或命名
x[...]:[]操作符取对象元素内容
x[逻辑/数值向量]:取对应位置元素(若为负数,则删除对应元素)x[字符向量]:取对应名称元素rev():向量反向排列sort():按照数值大小或字母序重新排列unique():取向量中的所有独特元素(去重复值)table():向量元素频次统计 [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
[20] "T" "U" "V" "W" "X" "Y" "Z"
NULL
A B C D E
1 2 3 4 5
[1] "A" "B" "C" "D" "E"
E
5
A C E
1 3 5
B C D E
2 3 4 5
A E
1 5
[1] 2 6 0 0 0 2
[1] 0 0 0 2 2 6
[1] 2 0 6
[1] 6 2 0
x
0 2 6
3 2 1
[1] TRUE FALSE FALSE FALSE FALSE TRUE
[1] 2 2
[1] NA 0 0 0 6 NA
函数知识点
sum()、mean():对一个向量对象求和、求平均值paste():把向量元素拼接在一起
sep参数:多个输入之间的黏合字符collaspe参数:向量不同元素之间的黏合字符[1] 2 3 4 5 6
[1] 2 4 6 8 10
[1] 1 4 9 16 25
[1] 5 8 9 8 5
[1] 1 0 1 0 1
[1] 5050
[1] 50.5
[1] "1 2 3 4 5"
[1] "1 2 3 4 5"
[1] "1+2+3+4+5+6+7+8+9+10"
1+2+3+4+5+6+7+8+9+10 = 55
[1] 0.5724
[1] 0.5724
[1] 0.5724
函数知识点
list():建立一个列表对象,可存储任意类型、任意结构的对象
$:根据元素名称,取列表中的元素内容(Tab键弹出所有元素名称)[[...]]:取列表中对应位置的元素内容(不同于[...])unlist():解除列表结构,还原为向量lapply():批量应用函数,返回为列表$Year
[1] 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
[16] 2015
$Month
[1] 1 2 3 4 5 6 7 8 9 10 11 12
$Day
[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 25
[26] 26 27 28 29 30 31
$Letter
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
[20] "T" "U" "V" "W" "X" "Y" "Z"
[1] "Year" "Month" "Day" "Letter"
[1] 4
[1] 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
[16] 2015
$Month
[1] 1 2 3 4 5 6 7 8 9 10 11 12
[1] 1 2 3 4 5 6 7 8 9 10 11 12
Year1 Year2 Year3 Year4 Year5 Year6 Year7 Year8
"2000" "2001" "2002" "2003" "2004" "2005" "2006" "2007"
Year9 Year10 Year11 Year12 Year13 Year14 Year15 Year16
"2008" "2009" "2010" "2011" "2012" "2013" "2014" "2015"
Month1 Month2 Month3 Month4 Month5 Month6 Month7 Month8
"1" "2" "3" "4" "5" "6" "7" "8"
Month9 Month10 Month11 Month12 Day1 Day2 Day3 Day4
"9" "10" "11" "12" "1" "2" "3" "4"
Day5 Day6 Day7 Day8 Day9 Day10 Day11 Day12
"5" "6" "7" "8" "9" "10" "11" "12"
Day13 Day14 Day15 Day16 Day17 Day18 Day19 Day20
"13" "14" "15" "16" "17" "18" "19" "20"
Day21 Day22 Day23 Day24 Day25 Day26 Day27 Day28
"21" "22" "23" "24" "25" "26" "27" "28"
Day29 Day30 Day31 Letter1 Letter2 Letter3 Letter4 Letter5
"29" "30" "31" "A" "B" "C" "D" "E"
Letter6 Letter7 Letter8 Letter9 Letter10 Letter11 Letter12 Letter13
"F" "G" "H" "I" "J" "K" "L" "M"
Letter14 Letter15 Letter16 Letter17 Letter18 Letter19 Letter20 Letter21
"N" "O" "P" "Q" "R" "S" "T" "U"
Letter22 Letter23 Letter24 Letter25 Letter26
"V" "W" "X" "Y" "Z"
$Year
[1] 16
$Month
[1] 12
$Day
[1] 31
$Letter
[1] 26
Warning in mean.default(X[[i]], ...): 参数不是数值也不是逻辑值:返回NA
$Year
[1] 2008
$Month
[1] 6.5
$Day
[1] 16
$Letter
[1] NA
[1] 1 4 9 16 25
[[1]]
[1] 1
[[2]]
[1] 4
[[3]]
[1] 9
[[4]]
[1] 16
[[5]]
[1] 25
[1] 1 4 9 16 25
function(...):函数接收输入参数,内部操作后,返回输出结果
{ }:大括号内定义所有形式参数(形参)的操作过程return(...):显式返回invisible(...):隐式返回func = function(param1, param2, ...) {
## 函数内部操作
results = param1 + param2
cat(param1, "+", param2, "=", results, "\n")
## 函数返回结果
return(results)
# 也可以隐式返回:
# invisible(results)
}
func(16, 9)16 + 9 = 25
[1] 25
[1] -0.0471
[1] 0.981
[1] FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
[13] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[25] FALSE FALSE FALSE FALSE FALSE TRUE
[1] 1.559 1.715 1.224 1.787 1.254
[1] 3 6 11 16 30
[1] 0.01613
[1] 0.9917
函数知识点
cli是命令行交互的专业R包,系统性提供了各种输出文本设定函数
[1] "Hello World!"
Hello World!
Hello World!
Hello World!
── Hello World! ────────────────────────────────────────────────────────────────
── Hello World! ──
── Hello World!
→ Hello World!
✔ Hello World!
ℹ Hello World!
! Hello World!
✖ Hello World!
问题情境:一枚硬币,连续抛了N次都是正面朝上,再抛一次反面朝上的概率是多少?
作业要求:
平台提交: