数据的结构
向量
一排有序排列的元素
-向量的赋值
x=c(1,2,3,4,5,7)
x=seq(from=1,to=20,by=2)
x=1:10
x=rep(1:3,times=2)
-提取向量中的元素
x[4]#x第4个元素
x[-4]#排除法,除了第4个元素之外剩余的元素
x[2:4]#第2到4个元素
x[-(2:4)]#除了第2-4个元素
x[c(1,5)] #第1个和第5个元素
x[x==2]#等于10的元素
x[x>1]#大于1的元素
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
数据框
读取本地数据
a=read.table(file, header = FALSE, sep = "", quote = ""’", dec = ".", row.names, col.names, as.is = FALSE, na.strings = "NA", colClasses = NA, nrows = -1,skip = 0, check.names = TRUE, fill = !blank.lines.skip,strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#")
file:文件名(包在""内,或使用一个字符型变量),可能需要全路径 (注意符号\不允许包含在内,必须用/替 换)
-header:一个逻辑值(FALSE or TRUE),用来反映这个文件的第一行是否包含变量名
-sep:文件中的字段分离符,例如对用制表符分隔的文件使用sep="\t"
-quote:指定用于包围字符型数据的字符
-dec:用来表示小数点的字符
-row.names:保存着行名的向量,或文件中一个变量的序号或名字,缺省时行号取为1, 2, 3, . . .
-col.names:指定列名的字符型向量(缺省值是:V1, V2, V3, . . . )
-as.is:控制是否将字符型变量转化为因子型变量(如果值为FALSE),或者仍将其保留为字符型(TRUE);as.is可以是逻辑型,数值型或者字符 型向量,用来判断变量是否被保留为字符
-na.strings:代表缺失数据的值(转化为NA)
-colClasses:指定各列的数据类型的一个字符型向量
-nrows:可以读取的最大行数(忽略负值)
-skip:在读取数据前跳过的行数
-check.names:如果为TRUE,则检查变量名是否在R中有效
-fill:如果为TRUE且非所有的行中变量数目相同,则用空白填补
-strip.white:在sep已指定的情况下,如果为TRUE,则删除字符型变量前后多余的空格
-blank.lines.skip:如果为TRUE,忽略空白行
-comment.char:一个字符用来在数据文件中写注释,以这个字符开头的行将被忽略 (要禁用这个参数,可使用comment.char = "")
对于read.table()严格要求所有列都对等,而read.csv()并不要求,后者会按最大列,或指定的列数填充,空串可指定相应的字符或数字填充
提取元素
a[x,y]#第x行第y列
- a[x,]#第x行
- a[,y]#第y列
- a[y] #也是第y列
- a[a:b]#第a列到第b列
- a[c(a,b)]#第a列和第b列
- a$列名#也可以提取列(优秀写法,而且这个命令还优秀到不用写括号的地步,并且支持Tab自动补全哦,不过只能提取一列)