數(shù)據(jù)的結(jié)構(gòu)
向量
一排有序排列的元素
-向量的賦值
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)中的元素
數(shù)據(jù)框
讀取本地數(shù)據(jù)
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:文件名(包在""內(nèi)驾中,或使用一個字符型變量)唉堪,可能需要全路徑 (注意符號\不允許包含在內(nèi),必須用/替 換)
-header:一個邏輯值(FALSE or TRUE)肩民,用來反映這個文件的第一行是否包含變量名
-sep:文件中的字段分離符唠亚,例如對用制表符分隔的文件使用sep="\t"
-quote:指定用于包圍字符型數(shù)據(jù)的字符
-dec:用來表示小數(shù)點的字符
-row.names:保存著行名的向量,或文件中一個變量的序號或名字,缺省時行號取為1, 2, 3, . . .
-col.names:指定列名的字符型向量(缺省值是:V1, V2, V3, . . . )
-as.is:控制是否將字符型變量轉(zhuǎn)化為因子型變量(如果值為FALSE),或者仍將其保留為字符型(TRUE)持痰;as.is可以是邏輯型灶搜,數(shù)值型或者字符 型向量,用來判斷變量是否被保留為字符
-na.strings:代表缺失數(shù)據(jù)的值(轉(zhuǎn)化為NA)
-colClasses:指定各列的數(shù)據(jù)類型的一個字符型向量
-nrows:可以讀取的最大行數(shù)(忽略負值)
-skip:在讀取數(shù)據(jù)前跳過的行數(shù)
-check.names:如果為TRUE工窍,則檢查變量名是否在R中有效
-fill:如果為TRUE且非所有的行中變量數(shù)目相同割卖,則用空白填補
-strip.white:在sep已指定的情況下,如果為TRUE患雏,則刪除字符型變量前后多余的空格
-blank.lines.skip:如果為TRUE鹏溯,忽略空白行
-comment.char:一個字符用來在數(shù)據(jù)文件中寫注釋,以這個字符開頭的行將被忽略 (要禁用這個參數(shù)淹仑,可使用comment.char = "")
對于read.table()嚴格要求所有列都對等丙挽,而read.csv()并不要求,后者會按最大列匀借,或指定的列數(shù)填充颜阐,空串可指定相應的字符或數(shù)字填充
提取元素
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$列名#也可以提取列(優(yōu)秀寫法,而且這個命令還優(yōu)秀到不用寫括號的地步吓肋,并且支持Tab自動補全哦凳怨,不過只能提取一列)