列表和數(shù)據(jù)框
list() #創(chuàng)建列表
month.abb #列出12月名稱的簡寫
names() #列表元素命名
** 原子變量 遞歸變量 **
is.atomic() #測試是否屬于原子變量
is.recursive() 測試是否屬于遞歸變量
** 列表的維度和算術(shù)運算**
- 列表沒有維度
- 列表的長度是頂層元素的數(shù)目
- 算術(shù)運算對列表不起作用
** 索引列表 **
- 方括號,正或負(fù)的下標(biāo),元素名稱或邏輯索引 結(jié)果是一個列表
- 雙方括號傳入整數(shù)或者指定該元素的名稱字符串 結(jié)果是列表的元素
- 對于列表的命名元素,可以使用美元符號$
- 可以通過嵌套方括號或傳入向量來訪問嵌套元素
** 向量和列表之間的轉(zhuǎn)換 **
as.list() #轉(zhuǎn)換為列表
unlist() #轉(zhuǎn)換混合列表為向量
** 組合列表 **
c() #拼接列表,拼接列表和向量,向量自動轉(zhuǎn)換為列表
cbind() rbind() #盡量不用
NULL #空的變量 創(chuàng)建列表時可能會想指定一個元素,表明它必須存在但沒有賦值。
NA 一個標(biāo)量值;
NULL 長度為零不占用任何空間
*要刪除列表中的元素,把元素設(shè)置為NULL就會刪除它 *
is.null() #測試是否為NULL值
list(NULL) #將現(xiàn)有元素設(shè)置為NULL值
** 成對列表 **
formals() #返回一個函數(shù)參數(shù)的成對列表
成對列表與列表的區(qū)別:長度為0的成對的列表為NULL,長度為0的列表是一個空列表。
** data.frame() ** #創(chuàng)建數(shù)據(jù)框
- 數(shù)據(jù)框每列的類型可與其他列不同,但同一列的元素類型必須相同
- 行自動編號,如果輸入的任何向量有名稱,行名稱取自第一個向量名稱,這種命名規(guī)則可以傳入row.names = NULL 覆蓋掉
- 還可以通過給row.names傳入一個向量來為每行命名
- 默認(rèn)情況下列名必須是唯一且有效的變量名稱,此功能可以通過參數(shù)check.names = FALSE來關(guān)閉
rownames()
colnames()
dimnames()
nrow()
ncol()
dim()
** 索引數(shù)據(jù)框 **
- 方括號里分別對行和列使用正整數(shù)、負(fù)整數(shù)、邏輯值和字符
- 只選擇一列,帶有正整數(shù)或名稱的雙方括號或帶有名稱的美元符號
subset() #獲取數(shù)據(jù)框子集,三個參數(shù)(數(shù)據(jù)框,行的條件邏輯向量,保留的名字向量),直接鍵入行列名稱
cbind()
rbind()
merge() #根據(jù)兩個數(shù)據(jù)框相同的列時合并,by參數(shù)指定共享列
如果數(shù)據(jù)框只包含數(shù)值,可以使用colSums colMeans rowSums
rowMeans函數(shù)