R中安装与使用包
R中的包存储在计算机上名为library的目录下
✓ 使用函数libPaths ()可以查看该文件夹在计算机中的具体路径
✓ 函数library ()显示已安装的包的列表
✓ 函数search ()显示已加载的包的列表
✓函数install.packages()进行下载安装
例如
✓函数install.packages(“stringr”) 安装一个用于字符串处理的包
包安装后还需要载入到内存才能使用。
library (“stringr”) 载入字符串处理包stringr
载入之后就可以直接调用包中定义的函数
计算字符串长度
str_length (“Hello R!”)
[1] 8
卸载与移除包
入过多的包会占用内存导致计算机运行变慢。这时可以将不使用的包进行移除。
detach(“package:stringr”)
卸载包。
remove.package(“package:stringr”)
基本数据类型(六种)
数据类型转换
#基本数据类型
num<-100
is.integer(num)#?
typeof(num)#查看数据类型
num2<-100L
is.logical(num2)#是否为逻辑型
is.logical(F)
#数据类型转换
logi_vec<-T
typeof(logi_vec)
int_vec<-c(100L,200L)
typeof(int_vec)
double_vec<-c(100,200)
typeof(double_vec)
chr_vec<-c(“伟大的”,“中国人民”)
typeof(chr_vec)
#使用as函数强制转换数据类型
as.numeric(F)
as.character(c(T,F))
#NA,not,available表示缺失值
a<-100
a[1]
a[2]
num_vec<-c(1,2)
length(num_vec)<-4
num_vec#结果为 1 2 NA NA
#inf无穷大
10/0
-10/0
#NaN,not a numner,无意义的值
0/0
#NULL,表示空数据
num_vrcl<-c(1,5,NaN)#NaN表示无意义返回值为3
length(num_vrcl)
num_vrcl2<-c(1,5,NULL)#表示控制返回值为2
length(num_vrcl2)
运算符
#逻辑运算& vs && "与"
logi_vecl<-c(T,F,T)
logi_vec2<-c(T,T,T)
logi_vecl & logi_vec2
logi_vecl && logi_vec2
logi_vecl<-c(T,F,T)#向量长度不同,短的补齐
logi_vec2<-c(F,T,T,F)
logi_vecl & logi_vec2
logi_vecl && logi_vec2
#逻辑运算 | vs ||
logi_vecl<-c(T,F,T)
logi_vec2<-c(F,T,T)
logi_vecl | logi_vec2
logi_vecl || logi_vec2
R中的数据结构
➢向量
➢矩阵
➢数组
➢列表
➢数据框
➢因子
向量
vec<-c(2,3,4)
#访问元素
vec[1]
vec[0]
vec[2:3]
vec[2:5]
vec[c(1,3)]#访问不连续的
vec[c(1,3,3)]#重复访问
#添加元素
vec
vec<-c(vec[1:2],10,vec[3])
>#删除元素
vec
vec<-vec[-3]
#获取向量长度
letters
vec<-letters
length(vec)
vec[-length(vec)]
vec[-length(vec)????-length(vec)+2)]#先运算的是冒号然后是加号所以结果是-24
#创建向量
#创建向量的方法
1:5
1:-5
c(1L,2.0,“a”)#创建后自动都变成了字符串
#创建等差数列seq函数
seq(1,9,by=2)
#将某向量重复多次,创建向量,函数rep
vec<-1:3
rep(vec,3)
rep(vec,each=3)#111222333
#创建长度为0的向量
new.vec<-c()
length(new.vec)
#判断某班学生的年龄是不是都是18岁以上
stu<-sample(c(17,18,19),10,replace=T)#,sample随机抽取函数,随机从里面取10次,T是允许可以重复取出
all(stu>=18)all全部都是
any(stu<18)#any存在一个
#向量运算,算数运算,关系运算,逻辑运算
vec1<-c(1,2)
vec2<-c(10,20)
vec1*vec2
vec1==vec2
vec1||vec2
#向量运算-循环补齐
vec1<-c(1,2)
vec2<-c(10,20,30)
vec1+vec2
#向量元素筛选,找出向量中的偶数
vec<-1:10
new.vec<-vec[vec%%20]
vec[c(F,T,F,T,F,T,F,T,F,T)]
vec<-c(1:5,NA)
vec[vec%%20]
subset(vec,vec%%2==0)#希望结果在不出现NA
#找出向量中的偶数下标