按照個人要求的格式來創建含有研究信息的數據集,這是任何數據分析的第一步。在R中,這個任務包括以下兩步:
選擇一種數據結構來存儲數據;將數據輸入或導入到這個數據結構中。數據集通常是hi有數據構成的一個矩形數組,行表示觀測,列表示變量。 不同的行業對于數據集的行和列的叫法不同: - 統計學家稱他們為觀測和變量
- 數據庫分析師稱其為記錄和字段
- 數據挖掘和機器學習研究者叫它們示例和屬性。
R中有許多用于存儲數據的結構,包括標量、向量、數組、數據框和列表 R可以處理的數據類型包括數值型、字符型、邏輯型、復數型和原生型。
R擁有許多用于存儲數據的對象類型,包括標量、向量、矩陣、數組、數據框和列表。這里僅介紹我用到的知識:
執行組合功能的函數c( )可以用來創建向量
a <- c(1,2,3,4,5)b <- c("1","2","3","4","5")Note:單個向量中的數據必須擁有相同的類型或模式(數值型、字符型或邏輯型),同一向量中無法混雜不同模式的數據 訪問元素: 通過方括號中給定元素所處位置的數值,可以訪問向量中的元素。如a[c(2,4)],用于訪問a向量中的第二個和第四個元素
矩陣是一個二維數組,通過函數matrix()創建
mymatrix <- matrix(vector, nrow = number_of_rows,ncol = number_of_columns, byrow = logical_value, dimnames = list( char_vector_rownames, char_vector_colnames))其中,vector包含了矩陣的元素,nrow和ncol用來指定行和列的維數,dimnames包含了可能的、以字符型向量表示的行名和列名。byrow標明矩陣應該按照行填充,默認情況下按照列填充。 訪問元素: 可以使用下標和方括號來選擇矩陣中的行、列或元素
數組與矩陣類似,但是維度可以大于2,通過array()創建
myarray <- array(vector, dimensions, dimnames)vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,dimnames是可選的、各維度名稱標簽的列表。
數據框將是在R中最常處理的數據結構。當數據有多重模式,無法將此數據集放入一個矩陣,這時候使用數據框是最佳選擇,可通過data.frame( )創建
mydata <- data.frame(col1,col2,col3,...)其中的col1,col2,…可以為任何類型,每一列的名稱可以由函數names指定。每一列數據的模式必須唯一,不過卻可以將多個模式的不同列放在一起組成數據框,如下:
選擇數據框中的元素:
可以使用read.table( )從帶分隔符的文本文件中導入數據。
mydataframe <- read.table(file,options)其中,file是一個帶分隔符的ASCII文件,options是控制如何處理數據的選項。可以通過?read.table命令查閱數據輸入函數的說明 file可以是:
絕對路徑或者相對路徑,R語言中/是轉義字符,所以路徑分隔符必須寫成 /使用file.choose( ),彈出對話框,選擇文件位置。強烈推薦這種方法,免去了記憶和書寫文件路徑的麻煩。
其他參數: Note: 這里要注意參數 row.names 。比如我出現的錯誤: 錯誤一:路徑問題
錯誤二:row.names問題 使用書上的例子:
我出現的錯誤:
其實我的錯誤很奇葩,是文件第一個字符亂碼。因為我把row.names去掉之后,數據是可以輸入的。
但是查資料的時候,發現,是有很多人在這上面出錯誤,不了解row.names是干嘛的。 row.names這個參數是一個向量,它的長度同數據集的行數是一樣的。它用來作為行名。它可以是輸入數據集的某一列,也可以是一個向量。具體的可以通過?read.table看參數的含義和用法。
讀取一個Excel文件的最好方式,就是在Excel中將其導出為一個逗號分隔文件(csv),并使用 3.1節中描述的方式將其導入R中。
以上就是數據集我用到的地方。具體做實驗可能還會出現問題,到時再總結。
新聞熱點
疑難解答