R 列表變數與Data Frames - 頁5,共5 - G. T. Wang
文章推薦指數: 80 %
如果只需要選取單一行的資料,可以使用列表變數的索引方式(雙中括號 ... 如果兩個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
延伸文章資訊
- 1第15 天:資料處理技巧(2) · 輕鬆學習R 語言
運算子稱作Pipeline,它是進階的R 語言使用者在需要呼叫多次函數時候會採用的運算 ... 在 select() 函數中我們輸入資料框的名稱,以及想要選取的變數名稱,舉例來說 ...
- 26 資料處理利器:dplyr - 認識R 的美好
接著我們要介紹的是 dplyr() 套件,相較於原生的資料處理語法, dplyr() 套件中融入 ... 在 select() 函數中我們輸入資料框的名稱,以及想要選取的變數名稱,舉例來說 ...
- 36 資料處理與清洗| 資料科學與R語言
- 4R環境下的大數據運算
我們將介紹一套系統,不僅能夠將龐大的資料在極短時間內讀取並觀看,還能夠將數億筆 ... 購買總數、特定產品購買數量與產品購買總金額之新資料框。
- 5[R]如何篩選出特定子集數據? subset() - CSDN博客
在R語言中,篩選出特定子集數據的函數為subset(),經由查詢Help的結果, ... R语言选取子集从一个大的数据集中选取、删除部分子集,或者从原有的集合 ...