행 이름을 첫 번째 열로 변환
다음과 같은 데이터 프레임이 있습니다.
df
VALUE ABS_CALL DETECTION P-VALUE
1007_s_at "957.729231881542" "P" "0.00486279317241156"
1053_at "320.632701283368" "P" "0.0313356324173416"
117_at "429.842323161046" "P" "0.0170004527476119"
121_at "2395.7364289242" "P" "0.0114473584876183"
1255_g_at "116.493632746934" "A" "0.39799368200131"
1294_at "739.927122116896" "A" "0.0668649772942343"
행 이름을 첫 번째 열로 변환하고 싶습니다. 현재 나는 행 이름을 첫 번째 열로 만들기 위해 다음과 같은 것을 사용합니다.
d <- df
names <- rownames(d)
rownames(d) <- NULL
data <- cbind(names,d)
이 작업을 수행하는 한 줄이 있습니까?
할 수 있습니다 모두 삭제 행 이름과 별명으로 변환 참조 (사용 메모리 재 할당없이 ->
사용) setDT
과 keep.rownames = TRUE
그로부터 인수를 data.table
패키지
library(data.table)
setDT(df, keep.rownames = TRUE)[]
# rn VALUE ABS_CALL DETECTION P.VALUE
# 1: 1 1007_s_at 957.7292 P 0.004862793
# 2: 2 1053_at 320.6327 P 0.031335632
# 3: 3 117_at 429.8423 P 0.017000453
# 4: 4 121_at 2395.7364 P 0.011447358
# 5: 5 1255_g_at 116.4936 A 0.397993682
# 6: 6 1294_at 739.9271 A 0.066864977
@snoram에서 언급했듯이 새 열에 원하는 이름을 수 있습니다. 예를 들어 setDT(df, keep.rownames = "newname")
행 열로 "newname"을 추가합니다.
또는 David의 대답과 동일한 작업을 수행하는 dplyr
의 add_rownames
를 사용할 수 있습니다 .
library(dplyr)
df <- tibble::rownames_to_column(df, "VALUE")
업데이트 (2016 년 중반) : (위에 통합)
호출 된 이전 함수 add_rownames()
는 더 이상 사용되지 않습니다 대체되고 있습니다 tibble::rownames_to_column()
(동일한 함수이지만 Hadley dplyr
가 약간 리팩터링합니다 ).
한 줄 옵션은 다음과 가변합니다.
df$names <- rownames(df)
또는 외부 패키지를 사용할 수 있으며 새 데이터 프레임을 생성 (또는 아래 예와 같이 현재 데이터 프레임 작성) 할 수 있습니다. 그러나 이것이 방법은 대용량 데이터 프레임에서는 안되지 않습니다.
df <- data.frame(names = row.names(df), df)
위의 제안에 대한 답변으로 내 의견을 이동했습니다.
추가 패키지가 필요하지 않습니다. 여기에 한 줄짜리가 있습니다.
d <- cbind(rownames(d), data.frame(d, row.names=NULL))
dplyr::as_data_frame(df, rownames = "your_row_name")
더 간단한 결과를 얻을 수 있습니다.
참고 URL : https://stackoverflow.com/questions/29511215/convert-row-names-into-first-column
'IT' 카테고리의 다른 글
웹 사이트에서 데이터를 스크랩하는 가장 좋은 방법은 무엇입니까? (0) | 2020.08.09 |
---|---|
Google 크롬 개발자 도구를 사용하여 네트워크 요청을 필터링하는 방법이 있습니까? (0) | 2020.08.09 |
Android의 세로 (회전) 레이블 (0) | 2020.08.09 |
NavigationView에 바닥 글을 추가하는 방법 -Android 지원 디자인 라이브러리? (0) | 2020.08.09 |
사용자 메시지의 복수 (0) | 2020.08.09 |