1. ホーム
  2. r

[解決済み] 既存のデータフレームで、列の値を行名に変換する

2022-06-07 23:51:04

質問

既存のデータフレームの列の値を行の名前に変換したいです。データフレームをエクスポートせずに、これを行うことは可能ですか? row.names = を呼び出すことなくできますか?

例えば、私は変換したいです。

 > samp 
     names Var.1 Var.2 Var.3
 1     A     1     5     0
 2     B     2     4     1
 3     C     3     3     2
 4     D     4     2     3
 5     E     5     1     4

になります。

> samp.with.rownames 
     Var.1 Var.2 Var.3
A     1     5     0
B     2     4     1
C     3     3     2
D     4     2     3
E     5     1     4

どのように解決するのですか?

こうすればよいでしょう。

samp2 <- samp[,-1]
rownames(samp2) <- samp[,1]

要するに、再割り当てに代わるものはない、ということですね。

編集してください。 訂正します。rowname属性を割り当てた後、カラムを削除することも可能です。

R> df<-data.frame(a=letters[1:10], b=1:10, c=LETTERS[1:10])
R> rownames(df) <- df[,1]
R> df[,1] <- NULL
R> df
   b c
a  1 A
b  2 B
c  3 C
d  4 D
e  5 E
f  6 F
g  7 G
h  8 H
i  9 I
j 10 J
R>