课上脚本 Flashcards

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
Q

所以数求乘积

A

prod()

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

方差

A

var()

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

标准差

A

sd()

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

summary是干嘛的

A

把下四分之一点 中值 上四分之一 max都求出来

比fivenum可以多求出一个数字 均值

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

fivenum(x)

A

minimum lower-hinge median upper-hinge maximum

上四分之一的意思

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

pmin(x,y)

pmax

A

逐项比较 取每一次比较中较小的值

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

筛选集合s中的一部分

A
1⃣️s[s>90]
2⃣️subset(s, s>90)
正常情况下是一样的
区别:
当集合里有NA的时候,[ ]替换符号无论如何也会把NA保留
而subset可以把NA给去掉
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

判断哪些是NA

哪些不是NA

A

is.na(y)

!is.na(y)

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

矩阵

A

matrix(矩阵中的所有数,nrow= ,ncol= ,dimnames=list(c(),c())
这里默认是按列安放数字 如果想要按行安放 就要加上 byrow=T

dimnames只能传递一个列表

或者也可以用置换函数rownames(x)

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

看这个是数字 向量 矩阵 还是数组

A

class(x)

会出现integer or vector or matrix or array

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

求维数

A

dim(x)

数字维数为NULL

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

筛选矩阵的时候如果只筛选一行 就会自动降维 class变成integer了 那怎么不降?

A

加一个drop=F

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

在原有矩阵中多加几行
然后每行起新的行名

原有矩阵:fruit

A

方法一:
rbind(fruit,Melon=c(,,,))

方法二:多行
f

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

原有矩阵中加列

A

cbind 用法见rbind

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

矩阵乘法

A
  • 指的是两个矩阵对应元素相乘

%*% 指的是数学上的 两个矩阵相乘

40
Q

提取矩阵M对角线元素

A

diag(M)

41
Q

得到对角线上为3 5 7 其他地方为0的矩阵

A

diag(c(3,5,7))

42
Q

diag(6) 得到啥

A

6*6 矩阵 对角线是1 其他位置是0

43
Q

矩阵A求逆

A

solve(A)

44
Q

求解线性方程组

A

构造系数矩阵A:

A

45
Q

3*4的矩阵m dim(m)结果

A

3 4

46
Q

矩阵m

每行数据(每列数据)求和(求均值)

A

rowSums(m)
colSums(m)
rowMeans(m)
colMeans(m)

47
Q

构造数组

A

array(所有数据,dim=c( , ,))

48
Q

x是一个向量
cumsum(x)
cumprod
cummax

A

运行结果得到五个数

分别是第一个数求和 前两个数求和 前三个数求和…

49
Q

求导

A

D(expression(关于x的表达式),“x”)后面那项是对x求导的意思

如果前面那项是关于x y的表达式 也可以求偏导

expression后面的那个是一个表达式

50
Q

查看导数的值

A

eval( D(e1,”x”))

e1是表达式

51
Q

构造列表

A

a

52
Q

所以你列表中某个组件

A

双层方括号索引 s[[1]]

若要选去某个组件的其中一部分 之后在[[1]]的基础上再加别的正常的[ ]即可

53
Q

定义列表时给出组件的名称

A

a

54
Q

列表中单层方括号索引的作用

A

求子列表

55
Q

双层方括号可以选去多个组件吗?

A

no

56
Q

paste0

A

无脑粘贴
paste0(“A”,1:5)
为 A1 A2 A3 A4 A5

57
Q

列表增加组件

A

方法1:

s$ Weight

58
Q

删除列表中的组件

A

s$Weight

59
Q

unname(s)

A

产生一个新的没有名字的对象 原来对象名字没变

60
Q

直接去掉原有列表中每个组件的名字

A

names(s)

61
Q

unlist(x)

A

把列表中的每一个组件的每一个元素弄出来
变成了一堆单个的元素
class() character

62
Q

将x y两个列表连接起来

A

c(x,y)

如果加一个recursive=T 那就又变成一堆元素了

63
Q

列表与数据框 概念

A

列表是一维的 有一堆组件

数据框相当于是一个二维列表

64
Q

读取数据框

A

read.csv(”D:\…”,stringsAsFactors=F)

若不想转化成因子 只读字符串 就用后面这个

65
Q

查看数据框内部结构

A

str(s)
他会告诉你有几个变量 几个观测
每一列都是啥

变量是指列数 观测指行数

也可以看到每个变量的数据类型 是因子 字符串 整数还是啥

66
Q

数据框索引

A

数据框可以以矩阵的形式进行索引
s[5:8,2:3]
Or
s$ Major

67
Q

获取数据框行数列数

A

nrow(s)

ncol(s)

68
Q

查看前六行
查看前10行
查看后10行

A

head(s)
head(s,n=10)
tail(…)

69
Q

创建数据框

A

data.frame( ,,)
每一个元素长度必须一样
每一个元素是指每一列的元素 按列排放

70
Q

查看数据框列的名字

给列起名字

A

names(d)

起名字就用置换函数直接命名

71
Q

让数据框中的某一列由因子变成字符串

A

s$Name

72
Q

把数据框的一列由字符串转化成因子

A

s$Major

73
Q

直接读取一个文件 变量是因子还是字符串形式?

A

因子

74
Q

length(p)

A

p的列数

因为把每一列认为是一个变量

75
Q

数据框删除列

A

和列表操作一样

是p$Math

76
Q

read. csv
read. table
read. delim

A

read. csv(“D:/person.csv, stringsAsFactors=F)
read. table(“D:/person.txt,header=T, sep=“\t”)
read. delim(“person.txt) 它默认有标题行 并且默认分隔符就是制表符

77
Q

对矩阵m用apply函数

A

apply(m,1,sum)
1代表对m的行用后面的函数
sum是一个函数 也可以变成一个自定义函数

78
Q

对数组用apply函数

A

如果想对每一层的每一行求和
apply(a,c(3,1),sum)
3代表先进入每一层
1代表对每一行求和

79
Q

tapply

A

分组统计
tapply(height,fsex,mean)
统计的是身高的均值 按照性别统计
第二项最好是因子

tapply(name,fsex,length)
统计的是名字的个数 按性别统计
length是统计个数的

基于两个因子分组:
tapply(s$Grades, list(s$Major, s$Sex),mean)
第二项必须是列表形式

80
Q

lapply

A

对列表进行统计

d

81
Q

sapply

A

lapply的改进版 也是在列表的每一个组件上应用函数
sapply(d,sum)
不同的是它得到的结果是一个向量

82
Q

vapply

A
和sapply很像 也是对列表应用函数
得到的结果也是一个向量
但
vapply(d,sum,FUN.VALUE=3+4i)
后面要给出一个向量元素形式
这样最后得到的向量就是比如
c(400+0i,150+0i,…)这种形式的
83
Q

rapply

A

循环统计 如列表有一个组件还是一个列表的话lapply就没法用了 这时我们用rapply 可以进入列表中的列表

84
Q

split

A

分类并重组
split(s$Grades, s$Major)
就是根据专业来分组 显示出的是成绩
最后得到的结果是一个列表

85
Q

by

A

使用一个or多个因子将数据框进行分组 分组之后再应用函数 by每次传递过来的都是一个数据框

by(s ,s$Major, print)
基于专业进行分组

s指原数据框 print那里可以换成别的函数

86
Q

class(by(s,…))

A

是by

87
Q

aggregate

A

aggregate(s[,5:7], list(s$Major), function(x)…)
也是根据因子 对部分数据框进行分组 应用函数
内部调用apply函数

88
Q

x

A

很有意思 可以在控制台输不同数字的
可以输入多个数 就得到一个向量

但这个只能读数值型的 就是说只能输入一些数字

89
Q

如果想连续输入字符怎么办?

A

kids

90
Q

切割

A

strsplit(str, split=“ ,| ;| +|\t”)
|或者
+一个或者多个
表示根据这些标点符号来切割

91
Q

plot绘图

A

plot( x=101:110, y=31:40, xlab=“ “, ylab= “ “, main=“ 主标题”, sub=“副标题”)
注意左下角交汇点并不是原点

92
Q

在已有图形上添加标题(若之前🈚️标题)

A

title(main=“ 主标题”,“副标题”)

93
Q

在已有图形上添加点

A

points(x=c(101,103), y=c(36,38), col=“red”, pch=16)

pch是point character

94
Q

在已有图形上添加线

A

由点连成线 所以先给出一些点

x

95
Q

在已有图形上添加注释

A

text( x=c(35.5, 37.5), y=c(13.5,15.5), labels=c(“”, “”) ,col=c(“coral”, “navy”))

给出添加注释的点的坐标(可用locator)
然后是注释内容labels

96
Q

给出坐标轴范围

A

可以通过一个点来给
plot(x=105, y=205, xlim =c(100,110), ylim=c(200,220))
前面那个点如果不想让他出现 搞成负的也行