R语言数据类型
新手注意需要注意的点:
R的代码都是带括号的,括号必须为英文(其他标点也必须为英文)
一定要变量保持大小写的统一!!!
1.向量
x<- c(1,2,3) #常用的向量写法,意为将x定义为由元素1,2,3组成的向量。
x
x<- 1:10 #从1-10之间所有的整数
x
x<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数(注意是逗号不是分号)
x
x<- rep(1:3,times=2) #1-3 重复2次
#同一个变量多次赋值以最后一次为准
#environment里可以查看变量
1.1向量中提取元素
根据元素和根据值
x[x==10]#等于10的元素
x[c(1,5)] #第1个和第5个元素
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
2.数据框
2.1读取数据
read.table(file = "huahua.txt",sep = "\t",header =T) #读取文件,分隔符为Tab,有表头
a<-read.table(file = "huahua.txt",sep = "\t",header =T)
2.2设置列名和行名
X<-read.csv('doudou.txt') #在示例数据里有doudou.txt 注意这里的变量X是一个数据框
colnames(X) #查看列名
rownames(X) #查看行名,默认值的行名就是行号,1.2.3.4...
colnames(X)[1]<-"bioplanet"#有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列为行名
csv就是逗号分割的意思,当然sep必须是逗号。header也是默认有标题的。fill是默认填充的,即遇到行不相等的情况,空白域自动添加既定值。
参数sep允许你导入那些使用逗号以外的符号来分隔行内数据的文件,可以使用sep="\t"读取以制表符分隔的文件。
参数的默认值为sep="",即表示分隔符可为一个或多个空格、制表符、换行符或回车符。
2.3数据框的导出
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
2.4储存和加载数据(RData)
save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(frame1,file="frame1.RData")#保存其中一个变量
load (frame1.RData)#使用时的加载命令
2.5提取元素
> X[1,]
bioplanet X2
1 A 1
> X[,1]
[1] A B C D E
Levels: A B C D E
> X[1]
bioplanet
1 A
2 B
3 C
4 D
5 E
> X[1,1]
[1] A
Levels: A B C D E
#注意区别
- X[a:b]#第a列到第b列
- X[c(a,b)]#第a列和第b列
- X$列名#也可以提取列
2.6直接使用数据框中的变量
a <-data.frame(case=paste("S",c(1:50)),values=runif(50))
> plot(a$case,a$values)
补充:避免重复输入对象名称,可是用with或attach
a <-data.frame(case=paste("S",1:50),values=runif(50))
plot(a$case,a$values)
attach(a)
plot(case,values)
with(a,{
plot(case,values)
x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
})
问题回答:大概是因为如下(没有注意大小写!!!!!)
> x <- read.csv('doudou.txt')
> x <- read.table(file = 'huahua.txt',sep = '\t',header = T)
> write,table(x,file='yu.txt',sep='',quote=F)
Error: unexpected ',' in "write,"
> write.table(x,file='yu.txt',sep='',quote=F)
>
> save.image(file='123.RData')
> save(X,file='test.RData')
Error in save(X, file = "test.RData") : object ‘X’ not found
> write.table(X,file='yu.txt',sep='',quote=F)
Error in is.data.frame(x) : object 'X' not found
> X<- read.table(file = 'huahua.txt',sep = '\t',header = T)
> write.table(X,file='yu.txt',sep='',quote=F)
一定要保持变量的统一!