열의 값을 기존 데이터 프레임의 행 이름으로 변환
기존 데이터 프레임의 열에 있는 값을 행 이름으로 변환하려고 합니다.데이터 프레임을 내보낸 다음 데이터 프레임을 사용하여 다시 가져올 필요 없이 이 작업을 수행할 수 있습니까?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
'programing' 카테고리의 다른 글
| Oracle 10g에서 문자열 날짜를 날짜 형식으로 변환하는 방법 (0) | 2023.06.26 |
|---|---|
| 모든 자식 스레드가 완료될 때까지 메인 스레드를 대기시키는 방법은 무엇입니까? (0) | 2023.06.26 |
| 주변 선언이란 무엇입니까? (0) | 2023.06.26 |
| 느낌표가 루비 방식에 사용되는 이유는 무엇입니까? (0) | 2023.06.26 |
| '지정한 문자열이 제목에 필요한 형식이 아닙니다.'를 확인하는 중입니다. (0) | 2023.06.26 |