programing

열의 값을 기존 데이터 프레임의 행 이름으로 변환

iphone6s 2023. 6. 26. 21:07
반응형

열의 값을 기존 데이터 프레임의 행 이름으로 변환

기존 데이터 프레임의 열에 있는 값을 행 이름으로 변환하려고 합니다.데이터 프레임을 내보낸 다음 데이터 프레임을 사용하여 다시 가져올 필요 없이 이 작업을 수행할 수 있습니까?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]

간단히 말해서, 재할당하는 것에 대한 대안은 없습니다.

편집: 자신을 수정하는 것은 제 자리에서 할 수도 있습니다: 행 이름 속성을 할당한 다음 열을 제거합니다.

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> 

2016년 기준으로 다음을 사용할 수 있습니다.tidyverse.

library(tidyverse)
samp %>% remove_rownames %>% column_to_rownames(var="names")

일렬로

> samp.with.rownames <- data.frame(samp[,-1], row.names=samp[,1])

(현재 R3.5.3을 사용하고 있는) 한 개의 라이너가 노선을 따라 더욱 단순해진 것처럼 보입니다.

# generate original data.frame
df <- data.frame(a = letters[1:10], b = 1:10, c = LETTERS[1:10])
# use first column for row names
df <- data.frame(df, row.names = 1)

행 이름에 사용되는 열은 자동으로 제거됩니다.

단일 행 데이터 프레임 사용

데이터 프레임에 단일 행이 있는 경우 동작이 혼란스러울 수 있습니다.설명서에서 언급한 바와 같이:

행 이름의 길이가 1이고 데이터 프레임에 단일 행이 있는 경우 row.names는 열(이름 또는 번호별)이 아닌 행 이름을 지정합니다.

즉, 위와 동일한 명령을 사용하면 아무 것도 하지 않은 것처럼 보일 수 있습니다(첫 번째 행의 이름을 실제로 "1"로 지정했을 때 뷰어에서 다르게 보이지 않음).

이 경우, 당신은 더 자세한 내용을 고수해야 할 것입니다.

df <- data.frame(a = "a", b = 1)
df <- data.frame(df, row.names = df[,1])

열은 제거되지 않습니다.또한 열을 제거하여 단일 열 데이터 프레임으로 끝나는 경우 R은 이를 원자 벡터로 단순화합니다.그런 경우, 당신은 여분을 사용하고 싶을 것입니다.drop인수:

df <- data.frame(df[,-1, drop = FALSE], row.names = df[,1])

두 가지 간단한 문으로 이를 실행할 수 있습니다.

row.names(samp) <- samp$names
samp[1] <- NULL

언급URL : https://stackoverflow.com/questions/5555408/convert-the-values-in-a-column-into-row-names-in-an-existing-data-frame

반응형