R语言的存储结构:
1.向量:注意一些函数的输出格式,向量的单个元素的引用要用中括号;向量与标量做运算,标量会循环补齐。常见向量的生成函数:c()、:、seq()、rep()
向量的引用:x=1:8;x[c(2,3)]#把第二和第三个元素取出来;x[2]#把第二个元素取出来
逻辑向量:x[x>4]#逻辑值为T,就取出相应位置的元素。
2.矩阵x=matrix(1:9,3,3,byrow=T)#默认按列;引用:x[,1]#1列;x[3,2]#第3行第二列的元素#每列是相同的数据类型。
3.数据框:可以使用read.table() ,read.csv()读取一个文本文件,返回的也是一个Data Frame对象。读取数据库也是返回Data Frame对象。x=data.frame(a=1:3,b=c('liang','qi','bai'))#每行是一个样本,观测;每列是一个变量。引用:x$a;x[,1]#引用第一列;ab=x[1:2];ab=x[c('a','b')]#引用第1和2列#数据框每列都是一样长度,可以是不同数据类型,列表可以是不同长度;用names函数可以查看列名,修改行名,列名:rownames(x)=c('1行','2行','3行');colnames(x)=c('a','d'); attach函数,数据框的主要用途是保存统计建模的数据,R的统计建模功能都需要以数据框为输入数据,我们可以把数据框当成一种矩阵来处理。在使用数据框的变量时可以使用“数据框名$变量名”来获取数据框的变量值。但是这种用法比较麻烦,R提供attach(x) 函数可以把数据框中的变量“连接”到内存中,这样便于数据框数据的调用。往数据框里添加新变量x$e=c(2:4);edit() 、fix()函数编辑修改函数。查询:1.我们使用布尔向量,配合which函数,可以实现对行的过滤。x[which(a=="2"),];指定d列,x[which(a=="2"),'d']。2.subset()函数。例子subset(student,Gender=="F" & Age<30 ,select=c("Name","Age"));3.使用sql语句查询library(sqldf)
result<-sqldf("select Name,Age from student where Gender='F' and Age<30");连接/合并:result<-merge(student,score,by.x="ID",by.y="SID");rbind的两个Data Frame必须有相同的列,rbind(student,student2)。
4.列表。x$a;x[[1]]c#存储一些函数的输出。