一 数据类型
1. 向量(vector)
1.标量和向量的区别
元素:指数字或字符串
标量:一个元素组成的变量
向量:多个元素组成的变量
一般都会直接给变量定义,也就是“赋值”,给同一个变量赋值多次后,以最后次赋值为输出。
2. 从向量中提取元素
a.根据元素位置
x[4] #x第4个元素
x[-4]#排除法,除了第4个元素之外剩余的元素
x[2:4]#第2到4个元素
x[-(2:4)]#除了第2-4个元素
x[c(1,5)] #第1个和第5个元素
b.根据值
x[x==10]#等于10的元素
2. 数据框
(1)读取本地数据
用?read.table
查询不了解的函数或者命令,在脚本编辑窗口输入?read.table
,会自动弹出右下角帮助窗口,如下:
下面是header和seq解释:
header:a logical value indicating whether the file contains the names of the variables as its first line. If missing, the value is determined from the file format: header is set to TRUE if and only if the first row contains one fewer field than the number of columns. 逻辑值。用于指出文件的第一行是否为数据变量的名字。缺省情况下,由文件的格式来确定此值。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。
sep:the field separator character. Values on each line of the file are separated by this character. If sep = "" (the default for read.table) the separator is ‘white space’, that is one or more spaces, tabs, newlines or carriage returns.seq 数据的分隔符。默认情况下,sep=""。此参数用于指定数据文件中每行中数据之间使用的分隔符。默认情况下,read.table()函数以空白作为数据的分隔符,即默认情况下,read.table()函数可以将1个或多个空格、tab制表符、换行符或回车符作为分隔符。(空格、TAB、换行符、回车符)
read.table(file = (要读取的文件名),sep =""(分隔符,默认为空格),header,quote(用于指定包围字符型数据的字符,默认情况下,字符串可以被 " 或 ' 括起)
参考
(2)设置行名和列名
colnames(x)
查看列名
rownames(x)
查看行名
变量<-read.csv(file(文件名), sep = "", header =T, row.names=1(修改第一列为行名))
(3)数据框的导出
write.table(需要导出的数据,file导出文件名称/路径,sep ="", row.names(是否导出行序号,默认为TRUE,也就是导出行序号), col>names(是否导出列名,默认为TRUE,也就是导出列名),quote(字符串是否使用引号表示,默认为TRUE,也就是使用引号表示))
如:
write.table (x, file ="", sep ="", row.names =TRUE, col.names =TRUE, quote =TRUE)
参考:
(4)变量的保存与重新加载
save.image("文件名.RData")保存工作空间到文件'文件名.RData'中(默认值为.RData)`
save(变量名,file="文件名.RData")保存指定对象到文件'文件名.RData中
load("文件名.RData")读取此变量到当前会话中,默认值为.RData。
(5)提取元素
- X[x,y]#第x行第y列
- X[x,]#第x行
- X[,y]#第y列
- X[y] #也是第y列
- X[a:b]#第a列到第b列
- X[c(a,b)]#第a列和第b列
- X$列名#也可以提取列
(6)直接使用数据框中的变量
例子如下:
a<data.frame(case=paste("S",1:50),values=runif(50))
plot(a$case,a$values)
3.问题:
另外请在作业中回答一个问题:save(X,file="test.RData")这句代码如果报错X not found,是为什么,应该怎么解决?
可能原因:1.保存之前未对变量x进行赋值,所以无法找到这个变量X,所以save之前,对X进行赋值即可;
2.大小写不正确,导致找不到。
下面是今天所学的思维导图:
结语:今天发现要学的R语言还有很多很多,需要系统的去学习,去操作了,否则还是迷迷糊糊的。