R 列表變數與Data Frames - 頁5,共5 - G. T. Wang

文章推薦指數: 80 %
投票人數:10人

如果只需要選取單一行的資料,可以使用列表變數的索引方式(雙中括號 ... 如果兩個data frames 要依照某個特定的行來合併資料,可以使用 merge 函數: Blogger舊站 關於 Facebook Flickr 物聯網 網站架設 程式設計 統計 素食 特價優惠 宗教 物聯網 網站架設 程式設計 統計 素食 特價優惠 宗教 R列表變數與DataFrames 2016/04/14 0則留言 DataFrame索引 dataframe的索引使用方式有許多種,向量和矩陣所使用的四種索引(正整數、負整數、邏輯與字元向量)都可以直接用於dataframe: x.data.frame0.5 ) x.data.frame[2:4,2] [1]-0.23108491.06843880.9391086 x.data.frame[2:4,-2] xz 2bTRUE 3cTRUE 4dFALSE x.data.frame[c(FALSE,TRUE,TRUE,TRUE,FALSE),c("x","z")] xz 2bTRUE 3cTRUE 4dFALSE 只有取出dataframe的單一行(column)時,傳回的資料類型會是向量,但若是取出多行時,傳回的資料就會是另一個dataframe: class(x.data.frame[2:4,2]) [1]"numeric" class(x.data.frame[2:4,-2]) [1]"data.frame" 如果只需要選取單一行的資料,可以使用列表變數的索引方式(雙中括號[[]]加上正整數或名稱、錢字號$加上名稱),以下幾種寫法都是相同的。

x.data.frame$x [1]abcdef Levels:abcdef x.data.frame[[1]] [1]abcdef Levels:abcdef x.data.frame[["x"]] [1]abcdef Levels:abcdef 如果要取出一行中部分的元素,可以再堆疊一個中括號來指定元素的索引: x.data.frame$x[2:4] [1]bcd Levels:abcdef x.data.frame[[1]][2:4] [1]bcd Levels:abcdef x.data.frame[["x"]][2:4] [1]bcd Levels:abcdef 如果想要篩選dataframe中的資料,可以使用條件判斷式再配合索引的方式來處理: x.data.frame[x.data.frame$y>0|x.data.frame$z,"x"] [1]abdef Levels:abcdef 如果不想使用這麼複雜的寫法,也可以改用subset函數,它的功能相同,但是寫法較簡潔: subset(x.data.frame,y>0|z,x) x 1a 2b 4d 5e 6f subset函數第一個參數是要進行篩選的dataframe變數,而第二個參數是指定列(row)的索引,第三個參數則是行(column)的索引,若最後一個行索引參數省略,就會取出所有行中的資料。

基本DataFrame操作 dataframe跟矩陣一樣可以使用t函數來轉向: x.data.frame0.5 ) t(x.data.frame) 不過將dataframe轉向之後,所有的資料都會換轉為同一種類型,而且轉換之後的變數會是一個矩陣。

若要結合多個dataframes,可以使用cbind或rbind,rbind在結合多個dataframes時,會自動判斷每個行的名稱,將相同名稱的行對應起來,行的排列順序不會影響合併結果: x.data.frame0.5 ) y.data.frame0.5 ) x.data.frame xfoo.xbar.x 1a-0.06067850TRUE 2b-0.01201291TRUE 3c-0.28666529FALSE 4d1.64905115FALSE 5e-0.39324483TRUE 6f0.25352265TRUE y.data.frame



請為這篇文章評分?