一些重要提示#
(1)R的赋值符号不是等号,而是<-(但是在一本书上看到的貌似也可以用等号)
(2)在Console 控制台输入命令,相当于Linux的命令行
(3)R的代码都是带括号的,括号必须是英文的。(如果不是英文的话就会报错)
(4)显示工作路径 getwd(),设置工作路径setwd()
(5)向量是由元素组成的,元素可以是数字或者字符串。
(6)表格在R语言中改名叫数据框
(7) 别只复制代码,要理解其中的命令、函数的意思。函数或者命令不会用时,除了百度/谷歌搜索以外,用这个命令查看帮助
?read.table,而且还可以在官网上面查看命令或者函数的意义,其上面的例子也可以好好研究一下。
(8)数据类型:常用的数据类型:向量、数据框、矩阵、数组、list等,但向量和数据框是重点
向量
- 标量:一个元素组成的变量
- 向量:多个元素组成的变量
向量的赋值
向量的赋值使用到的是<-,示例
> x<-c(1,2,3)
> x
[1] 1 2 3
> x<-1:10
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x<-seq(1,10,by=0.5)
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0
[12] 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x<-rep(1:3,times=2)
> x
[1] 1 2 3 1 2 3
因为给X赋值了多次,因此后面一次的赋值会覆盖掉前面一次,因此最后显示X的时候就是最后一次赋值的值
从向量中提取元素
根据元素位置,比如
> x[4] #X中的第4个元素
[1] 1
> x[-4] #x中除了第四个元素之外剩余的元素
[1] 1 2 3 2 3
> x[2:4] #x中第2到4个元素
[1] 2 3 1
> x[-(2:4)] #x中除了第2到4个元素
[1] 1 2 3
> x[c(1,5)] #x中第1个和第5个元素
[1] 1 2
根据值
比如说下面的例子就是通过值来查找向量中的元素的
> x[x==10] #x中等于10的元素
integer(0)
> x[x==2] #x中等于2的元素
[1] 2 2
> x[x<10] #x中小于10的元素
[1] 1 2 3 1 2 3
> x[x %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素
[1] 1 2 1 2
数据框
现在工作目录下面建立了一个叫做 candy的txt文件,现在用x来输出
> x<-read.csv('candy.txt')
> x
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
这就是显示的结果
读取本地数据
在我们平时工作中,.csv是个特别好的数据文件格式,可以支持跨平台操作,因此我们建立好的excel或者是spss的文件只要保存为.csv格式就可以用各种软件进行处理了。
在R中读取.csv文件的函数是
read csv(file,header=T,sep=",",quote="\",dec=".",fill=T...)
在这个函数中,file是我们要读取的文件名,注意将文件放在我们目前所使用的工作路径下面,否则的话会报错
header=T就是指文件中的第一行默认为标题。
sep=","就是指在csv文件中逗号是分割的意思,所以现在也是用逗号作为分割号。
quote表示引用
dec="."表示小数用.表示
fill=T 这个是自动填充的意思,也就是遇到行不相等的情况,空白域自动添加既定值
例子:
> read.table("candy.txt",sep="\t",header=T)
X1.X2
1 A,1
2 B,
3 C,
4 D,3
5 E,
> x<-read.table("candy.txt",sep="\t",header=T)
> x
X1.X2
1 A,1
2 B,
3 C,
4 D,3
5 E,
设置行名和列名
可以用colnames(x)来查看x变量的列名
可以用rownames(x)来查看x变量的行名
例子:
> x<-read.csv("candy.txt")
> x
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> colnames(x)
[1] "X1" "X2"
> rownames(x)
[1] "1" "2" "3" "4" "5"
数据框的导出
用write.tale()就可以导出数据框,并且可以自行修改里面的设置
变量的保存与重新加载
在R中如果想要保存数据的话,保存的格式是RData
save,image(file="bioinfoplanet.RData") #保存当前所有变量
save(x,file="test.RData"#保存其中一个变量)
load("test.RData"#加载RData时的加载命令)
提取元素
举例
> x[1,2]#第1行第2列
[1] 1
> x[2,]#第2行
X1 X2
2 B NA
> x[2]#第2列
X2
1 1
2 NA
3 NA
4 3
5 NA
> x[,2]#也是表示第2列
[1] 1 NA NA 3 NA
> x[1:2]#第一列到第2列
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
回答问题
save(X,file="test.RData")
如果报错object X not found,是为什么?
这个问题的答案当然是X写成大写的啦,因为在之前的赋值时一直用的都是x