如何將R資料框的行索引號或行索引名稱轉換為向量?
我們可能需要提取行索引,而不管其型別(數字或字串)如何,以便進行一些計算,如果它被錯誤地設定為行索引。這種情況發生在資料收集過程或資料處理錯誤期間。此外,由於行索引有助於訪問行,因此我們必須為它們指定正確的名稱,而不是可能造成混淆的值。例如,如果資料框的行索引為43、94等,則可能會造成混淆。因此,如果需要,我們應該將行索引轉換為向量或列。
示例
考慮以下資料框(此處,我們使用簡單的數字序列)−
> set.seed(1)
> x1<-rnorm(20,0.01)
> x2<-rpois(20,2)
> x3<-runif(20,2,5)
> df<-data.frame(x1,x2,x3)
> df
x1 x2 x3
1 -0.616453811 3 4.738628
2 0.193643324 2 2.880810
3 -0.825628612 3 3.377197
4 1.605280802 2 2.997184
5 0.339507772 2 3.952611
6 -0.810468384 3 2.774050
7 0.497429052 0 3.435636
8 0.748324705 2 4.298932
9 0.585781352 3 2.252741
10 -0.295388387 3 4.625964
11 1.521781168 2 3.017219
12 0.399843236 4 4.518321
13 -0.611240581 2 3.040050
14 -2.204699887 1 3.001325
15 1.134930918 0 3.429054
16 -0.034933609 0 4.676595
17 -0.006190263 1 4.593018
18 0.953836211 2 3.169969
19 0.831221195 2 4.331962
20 0.603901321 2 4.881854將行索引號轉換為向量−
> Numeric_Vector_of_row_names<-as.numeric(rownames(df)) > Numeric_Vector_of_row_names [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > is.vector(Numeric_Vector_of_row_names) [1] TRUE
現在假設行索引不是數字,如下所示−
> rownames(df)<-LETTERS[1:20]
> df
x1 x2 x3
A -0.616453811 3 4.738628
B 0.193643324 2 2.880810
C -0.825628612 3 3.377197
D 1.605280802 2 2.997184
E 0.339507772 2 3.952611
F -0.810468384 3 2.774050
G 0.497429052 0 3.435636
H 0.748324705 2 4.298932
I 0.585781352 3 2.252741
J -0.295388387 3 4.625964
K 1.521781168 2 3.017219
L 0.399843236 4 4.518321
M -0.611240581 2 3.040050
N -2.204699887 1 3.001325
O 1.134930918 0 3.429054
P -0.034933609 0 4.676595
Q -0.006190263 1 4.593018
R 0.953836211 2 3.169969
S 0.831221195 2 4.331962
T 0.603901321 2 4.881854這些行索引可以轉換為向量,如下所示−
> Row_names_String<-rownames(df) > Row_names_String [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" [20] "T" > is.vector(Row_names_String) [1] TRUE
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP