学着后面,感觉前面快忘完了,找了个简单免费课程复习了下,https://study.163.com/course/courseMain.htm?courseId=1003433004
矩阵、数据框、列表的区别
当缺失值时,
- 矩阵会自动填充,并返回报警信息;
- 数据框直接报错
- 列表返回如实填充
向量里只能有一种元素
向量的位置索引
取名字
2.jpg
dim = c(2,3,5)表示2行,3列,5个矩阵
dim()展示矩阵的行列信息,
nrow(), ncol(),head()
-
运算
colSums(), colMeans(), rowSums(),rowMeans() -
求解 y= sin(x) 0到2pi与x轴围成的面积
n <- 1000
x <- seq(0,2*pi, length.out = n)
y <- abs(sin(x))
plot(x,y)
sum(y*2*pi/n)
列表
nchar()
paste(data,data1,sep = ',')
strsplit()
- 索引
my.list[[]] →向量
unlist
作业
head(iris)
iris$Species
iris[101:150,]
答案
iris[iris$Species == virginica,]
Error in `[.data.frame`(iris, iris$Species == virginica, ) :
object 'virginica' not found
iris[iris$Species == "virginica",]
iris[iris$Sepal.Width > 4,]
or
attach(iris)
iris[Sepal.Width >4,]
iris[iris$Sepal.Width >= 4 & iris$Sepal.Width <= 5,]
字符串操作
paste(), paste0()
strsplit(),打断之后返回的是列表
图片.png
x<- chartr('k','h',x)表示用h替换x中的k
- 替换和被替换的要等长度
删除函数: gsub('af',‘’,x) 删除x中的‘af’
自定义函数
判定用 ==
正则表达式中, "."表达任意值,
a <- "www.baidu.com" b <- strsplit(a,'.') b [[1]] [1] ""
要像表达本身意思,
b <- strsplit(a,'\\.')
or
b<- strsplit(a,".",fixed = T)
创建新变量
清除所有变量 rm(list = ls())
ifelse(mydata$am[1:5] ==0),'automatic','manual')
和以下的等价
for(i in 1:5) {
if(mydata$am[i] ==0){
print('automatic')
} else {
print('manual')
}
}
变量名称变化
dataage ==99]<-NA
常用函数
max(),返回最大值
which.max()返回最大值的位置
mean(), quantile()
- round()取整
- ceiling()
- floor()向下取整
- rnorm()生成随机数
- sample(replace=T )replace=T b表示可放回抽样
- sort()按从小到大的顺序排列
- order()返回位置
- scale()
高级函数
- paste(x,y,sep = '-', collapse = '#')
- merge(table1,table2,by.x=,by.y=,all = F)保留两个表中都有的,all = T ,所有信息都有。。
- all()
- any()
另外一种数据框的操作方法
图片.png- apply家族
- apply(iris[,-5],1,mean),1 对行操作,2对列操作
- sapply(iris[,-5],mean)默认按列操作,数值型向量
- sapply(iris[,1:4],mean),返回列表
控制流
if(){}
else{}
switch()
coun1<-function(x){
cou<-sum( x%% ==1)
return(cou)
}
网友评论