学习小组Day5笔记-菠萝
2020-03-17 本文已影响0人
菠萝_c93e
向量和数据框
1 向量
1.1元素指的是数字或者字符串(用chr表示)等,根据它可以区分两个词。标量:一个元素组成的变量 向量:多个元素组成的变量
> x
[1] 5 6 7
> x<- 3:6 #从3-6之间的整数
> x
[1] 3 4 5 6
> x<- seq(3,10,by = 0.7) #3-10之间隔0.7取一个数
> x
[1] 3.0 3.7 4.4 5.1 5.8 6.5 7.2 7.9 8.6 9.3 10.0
> x<- rep(3:5,times=3) #3-5重复3次
> x
[1] 3 4 5 3 4 5 3 4 5
1.2从向量中提取元素
1.2.1根据元素位置
> x[2] #x第2个元素
[1] 4
> x[-2]#除第2个元素之外剩余的元素
[1] 3 5 3 4 5 3 4 5
> x[1:2]#第2到4个元素
[1] 3 4
> x[-(1:2)]#除了第2-4个元素
[1] 5 3 4 5 3 4 5
> x[c(1,2)] #第1个和第5个元素
[1] 3 4
1.2.2 根据值
> x[x==10]#等于10的元素
integer(0)
> x[x<0] #小于0的元素
integer(0)
> x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
[1] 5 5 5
2 数据框
2.1 读入
#1.使用read.table函数读入
#读入txt文件:header=TRUE代表读入数据时将第一行作为列名(若是FALSE则相反,不使用文件中第一行作为列名),也可以简写问header=T(或是header=F)。不用指定sep参数,因为read.txt函数默认参数sep='\t'。
>data <- read.table('cancer.txt', header=T)
#读入csv文件: 必须指定sep=','不指定不会报错但是会出现你读入的数据只有一列的情况
>data <- read.txt('cancer.csv', header=TURE, sep=',')
#2.使用read.csv函数读入
#读入txt文件,必须指定sep参数
>data <- read.csv('cancer.txt', header=TURE, sep='\t')
#读入csv文件,不强制指定sep参数,因为默认sep=','
>data <- read.csv('cancer.csv', header=TURE)
#3.导入excel文件:通过R的base包里的read_excel()函数即可导入excel中.xls或.xlsx格式
>data3<-read.excel("D:/test.xls")
>data4<-read.excel("D:/test.xlsx")
2.2设置行名和列名
colnames(x) #查看列名 rownames(x) #查看行名 colnames(x)[1]<-"abc"#第一列列名修改为abc
x<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列为行名
2.3数据框的导出
#保存为简单文本,write.table函数:
>write.table (x, file ="a.txt", sep =" ", row.names =TRUE, col.names=TRUE, quote =TRUE)
#x:需要导出的数据
#file:导出的文件路径
#sep:分隔符,默认为空格(" "),也就是以空格为分割列
#row.names:是否导出行序号,默认为TRUE,也就是导出行序号
#col.names:是否导出列名,默认为TRUE,也就是导出列名
#quote:字符串是否使用引号表示,默认为TRUE,也就是使用引号表示
>write.table(x,"a.csv",row.names=T,col.names=T,sep=",")
>write.csv (x, file="a.csv")
#保存为,分割的csv
>write.xlsx (x, file= "a.xlsx")
#导出为excel数据
2.4变量的保存与重新加载:保存为RData。
save.image(file="abc.RData")
保存当前所有变量
save(x,file="b.RData")
保存x到b.RData
load("b.RData")
加载b.RData
2.5提取元素:感觉和提取向量类似
a[x,y]
# 提取a的第x行第y列
a[2:5]
提取a的第2列到第5列
a[c(5,7)]
提取a的第5列和第7列
a$3
提取a的第3列
2.6直接使用数据框中的变量
2.6.1 attach(a)把数据a绑定,可以直接用数据a下的变量名。但是,当数据框中的列与内存中已有的对象同名时,就会产生冲突
2.6.2with(a) 封闭在数据框a的环境中进行运算,不会与外在环境中的对象相冲突
第一种
>a <-data.frame(case=paste("S",1:50),values=runif(50))
plot(a$case,a$values)
#均匀分布随机数的函数是runif()句法是:runif(n,min=0,max=1) n表示生成的随机数数量,min表示均匀分布的下限,max表示均匀分布的上限;若省略参数min、max,则默认生成[0,1]上的均匀分布随机数
#正态分布随机数的生成函数是 rnorm()句法是:rnorm(n,mean=0,sd=1) 其中n表示生成的随机数数量,mean是正态分布的均值,默认为0,sd是正态分布的标准差,默认时为1;
#生成二项分布随机数的函数是:rbinom()句法是:rbinom(n,size,prob) n表示生成的随机数数量,size表示进行贝努力试验的次数,prob表示一次贝努力试验成功的概率
第二种
attach(a)
plot(case,values)
第三种
with(a,{plot(case,values)})
作业:X为大写,此外要查看右上角data框中X是否存在/直接输入X查看