如何将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

以上是 如何将R数据帧的行索引号或行索引名转换为向量? 的全部内容, 来源链接: utcz.com/z/331535.html

回到顶部