课上脚本 Flashcards

(96 cards)

1
Q

用pie作饼图

A

pie(rep(1,12),col=rainbow(12))

rainbow(12)是一种颜色
pie的第一项是一个向量 the values in x are displayed as the areas of pie slices

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

命名函数(给向量命名)

A

names(x)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

绝对路径读取文件

A

scan(“D:/data.txt, what=””)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

只存两个变量

A

save(a,b,file=“”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

存全部变量

A

save.image()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

数据类型 mode typeof

A

mode:numeric character logical complex

typeof:double integer character logical complex

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

因子

A

分类变量的正数表示 每个分类称之为“水平”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

把文字转换成因子

A

factor()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

等差数列只希望有10个数

A

seq(from=, to= , length.out= 10)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

sample取样函数怎么用

A

sample(取样范围;去多少个;replace=T,prob=c(0.3,0.7))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

table是干嘛的 怎么用

A

table(x)
x是上面取样好的结果
table会告诉你 每一个结果各取了多少样(分类统计)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

均匀分布

A

runif(1000,min=,max=)
1000为取出的数的量 也是横轴
min max控制着纵轴
画图的时候直接plot(x)即可

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

正态分布

A

rnorm(1000,sd=,mean=)

不写的话默认均值和方差为0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

pmin

A

pmin(score,100)

意思是把score中大于100的数换成100

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

向量内积

A

%*%

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

阶乘

A

factorial

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

floor ceiling trunc round

A

floor 求一个比这个数更小的整数
ceiling 求一个比这个数更大的整数(向上取整)
trunc 把小数部分截去
round 四舍五入

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

sqrt(-16)

A

NaN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

0/0

A

NaN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

-5/0

A

-Inf

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

all(x%%2==0)any which

A

all 判断集合里是否都为偶数
any 判断集合中是否存在偶数
which 集合中哪个为偶数(第几个)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

如何排序

A

sort(x)这是从小到大排

sort(x,decreasing=T)就是从大到小排

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

求平均数

A

mean()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

求中位数

A

median()

如果为偶数中位数就是中间两个的平均数

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
所以数求乘积
prod()
26
方差
var()
27
标准差
sd()
28
summary是干嘛的
把下四分之一点 中值 上四分之一 max都求出来 | 比fivenum可以多求出一个数字 均值
29
fivenum(x)
minimum lower-hinge median upper-hinge maximum | 上四分之一的意思
30
pmin(x,y) | pmax
逐项比较 取每一次比较中较小的值
31
筛选集合s中的一部分
``` 1⃣️s[s>90] 2⃣️subset(s, s>90) 正常情况下是一样的 区别: 当集合里有NA的时候,[ ]替换符号无论如何也会把NA保留 而subset可以把NA给去掉 ```
32
判断哪些是NA | 哪些不是NA
is.na(y) | !is.na(y)
33
矩阵
matrix(矩阵中的所有数,nrow= ,ncol= ,dimnames=list(c(),c()) 这里默认是按列安放数字 如果想要按行安放 就要加上 byrow=T dimnames只能传递一个列表 或者也可以用置换函数rownames(x)
34
看这个是数字 向量 矩阵 还是数组
class(x) | 会出现integer or vector or matrix or array
35
求维数
dim(x) | 数字维数为NULL
36
筛选矩阵的时候如果只筛选一行 就会自动降维 class变成integer了 那怎么不降?
加一个drop=F
37
在原有矩阵中多加几行 然后每行起新的行名 原有矩阵:fruit
方法一: rbind(fruit,Melon=c(,,,)) 方法二:多行 f
38
原有矩阵中加列
cbind 用法见rbind
39
矩阵乘法
* 指的是两个矩阵对应元素相乘 | %*% 指的是数学上的 两个矩阵相乘
40
提取矩阵M对角线元素
diag(M)
41
得到对角线上为3 5 7 其他地方为0的矩阵
diag(c(3,5,7))
42
diag(6) 得到啥
6*6 矩阵 对角线是1 其他位置是0
43
矩阵A求逆
solve(A)
44
求解线性方程组
构造系数矩阵A: | A
45
3*4的矩阵m dim(m)结果
3 4
46
矩阵m | 每行数据(每列数据)求和(求均值)
rowSums(m) colSums(m) rowMeans(m) colMeans(m)
47
构造数组
array(所有数据,dim=c( , ,))
48
x是一个向量 cumsum(x) cumprod cummax
运行结果得到五个数 | 分别是第一个数求和 前两个数求和 前三个数求和…
49
求导
D(expression(关于x的表达式),“x”)后面那项是对x求导的意思 如果前面那项是关于x y的表达式 也可以求偏导 expression后面的那个是一个表达式
50
查看导数的值
eval( D(e1,”x”)) | e1是表达式
51
构造列表
a
52
所以你列表中某个组件
双层方括号索引 s[[1]] 若要选去某个组件的其中一部分 之后在[[1]]的基础上再加别的正常的[ ]即可
53
定义列表时给出组件的名称
a
54
列表中单层方括号索引的作用
求子列表
55
双层方括号可以选去多个组件吗?
no
56
paste0
无脑粘贴 paste0(“A”,1:5) 为 A1 A2 A3 A4 A5
57
列表增加组件
方法1: | s$ Weight
58
删除列表中的组件
s$Weight
59
unname(s)
产生一个新的没有名字的对象 原来对象名字没变
60
直接去掉原有列表中每个组件的名字
names(s)
61
unlist(x)
把列表中的每一个组件的每一个元素弄出来 变成了一堆单个的元素 class() character
62
将x y两个列表连接起来
c(x,y) | 如果加一个recursive=T 那就又变成一堆元素了
63
列表与数据框 概念
列表是一维的 有一堆组件 | 数据框相当于是一个二维列表
64
读取数据框
read.csv(”D:\…”,stringsAsFactors=F) | 若不想转化成因子 只读字符串 就用后面这个
65
查看数据框内部结构
str(s) 他会告诉你有几个变量 几个观测 每一列都是啥 变量是指列数 观测指行数 也可以看到每个变量的数据类型 是因子 字符串 整数还是啥
66
数据框索引
数据框可以以矩阵的形式进行索引 s[5:8,2:3] Or s$ Major
67
获取数据框行数列数
nrow(s) | ncol(s)
68
查看前六行 查看前10行 查看后10行
head(s) head(s,n=10) tail(…)
69
创建数据框
data.frame( ,,) 每一个元素长度必须一样 每一个元素是指每一列的元素 按列排放
70
查看数据框列的名字 | 给列起名字
names(d) | 起名字就用置换函数直接命名
71
让数据框中的某一列由因子变成字符串
s$Name
72
把数据框的一列由字符串转化成因子
s$Major
73
直接读取一个文件 变量是因子还是字符串形式?
因子
74
length(p)
p的列数 | 因为把每一列认为是一个变量
75
数据框删除列
和列表操作一样 | 是p$Math
76
read. csv read. table read. delim
read. csv(“D:/person.csv, stringsAsFactors=F) read. table(“D:/person.txt,header=T, sep=“\t”) read. delim(“person.txt) 它默认有标题行 并且默认分隔符就是制表符
77
对矩阵m用apply函数
apply(m,1,sum) 1代表对m的行用后面的函数 sum是一个函数 也可以变成一个自定义函数
78
对数组用apply函数
如果想对每一层的每一行求和 apply(a,c(3,1),sum) 3代表先进入每一层 1代表对每一行求和
79
tapply
分组统计 tapply(height,fsex,mean) 统计的是身高的均值 按照性别统计 第二项最好是因子 tapply(name,fsex,length) 统计的是名字的个数 按性别统计 length是统计个数的 基于两个因子分组: tapply(s$Grades, list(s$Major, s$Sex),mean) 第二项必须是列表形式
80
lapply
对列表进行统计 | d
81
sapply
lapply的改进版 也是在列表的每一个组件上应用函数 sapply(d,sum) 不同的是它得到的结果是一个向量
82
vapply
``` 和sapply很像 也是对列表应用函数 得到的结果也是一个向量 但 vapply(d,sum,FUN.VALUE=3+4i) 后面要给出一个向量元素形式 这样最后得到的向量就是比如 c(400+0i,150+0i,…)这种形式的 ```
83
rapply
循环统计 如列表有一个组件还是一个列表的话lapply就没法用了 这时我们用rapply 可以进入列表中的列表
84
split
分类并重组 split(s$Grades, s$Major) 就是根据专业来分组 显示出的是成绩 最后得到的结果是一个列表
85
by
使用一个or多个因子将数据框进行分组 分组之后再应用函数 by每次传递过来的都是一个数据框 by(s ,s$Major, print) 基于专业进行分组 s指原数据框 print那里可以换成别的函数
86
class(by(s,…))
是by
87
aggregate
aggregate(s[,5:7], list(s$Major), function(x)...) 也是根据因子 对部分数据框进行分组 应用函数 内部调用apply函数
88
x
很有意思 可以在控制台输不同数字的 可以输入多个数 就得到一个向量 但这个只能读数值型的 就是说只能输入一些数字
89
如果想连续输入字符怎么办?
kids
90
切割
strsplit(str, split=“ ,| ;| +|\t”) |或者 +一个或者多个 表示根据这些标点符号来切割
91
plot绘图
plot( x=101:110, y=31:40, xlab=“ “, ylab= “ “, main=“ 主标题”, sub=“副标题”) 注意左下角交汇点并不是原点
92
在已有图形上添加标题(若之前🈚️标题)
title(main=“ 主标题”,“副标题”)
93
在已有图形上添加点
points(x=c(101,103), y=c(36,38), col=“red”, pch=16) pch是point character
94
在已有图形上添加线
由点连成线 所以先给出一些点 | x
95
在已有图形上添加注释
text( x=c(35.5, 37.5), y=c(13.5,15.5), labels=c(“”, “”) ,col=c(“coral”, “navy”)) 给出添加注释的点的坐标(可用locator) 然后是注释内容labels
96
给出坐标轴范围
可以通过一个点来给 plot(x=105, y=205, xlim =c(100,110), ylim=c(200,220)) 前面那个点如果不想让他出现 搞成负的也行