source

데이터 프레임에서 행 이름 표시 제거

lovecheck 2023. 10. 4. 22:01
반응형

데이터 프레임에서 행 이름 표시 제거

다음 코드를 사용하여 데이터 프레임을 만들고 있습니다.

df <- data.frame(dbGetQuery(con, paste('select * from test')))

결과는 다음과 같습니다.

    UID      BuildingCode   AccessTime
1   123456   BUILD-1        2014-06-16 07:00:00
2   364952   BUILD-2        2014-06-15 08:00:00
3    95865   BUILD-1        2014-06-06 09:50:00

그런 다음 이 코드를 사용하여 여기에 제시된 행 이름(1, 2, 3 등)을 제거하려고 합니다.

rownames(df) <- NULL

하지만 인쇄를 할 때는df행 이름이 표시됩니다.데이터 프레임을 작성할 때 행 이름을 포함하지 않는 방법이 있습니까?에 대한 제안을 찾았습니다.row.name = FALSE그러나 시도해보니 오류가 발생했습니다(잘못 배치한 것 같습니다).

편집: 제가 원하는 것은 날짜 프레임을 HTML 테이블로 변환하는 것이며 테이블에 행 이름이 표시되지 않았으면 합니다.

행 이름을 성공적으로 제거했습니다.print.data.framemethod는 행 이름이 없는 경우 행 번호만 표시합니다.

df1 <- data.frame(values = rnorm(3), group = letters[1:3],
                  row.names = paste0("RowName", 1:3))
print(df1)
#            values group
#RowName1 -1.469809     a
#RowName2 -1.164943     b
#RowName3  0.899430     c

rownames(df1) <- NULL
print(df1)
#     values group
#1 -1.469809     a
#2 -1.164943     b
#3  0.899430     c

행 이름과 숫자를 인쇄하는 것을 억제할 수 있습니다.print.data.frame의론으로row.names~하듯이FALSE.

print(df1, row.names = FALSE)
#     values group
# -1.4345829     d
#  0.2182768     e
# -0.2855440     f

편집: 댓글에 써있는 것처럼 HTML로 변환을 원하는 것입니다.xtable그리고.print.xtable문서화, 당신은 그 논쟁을 볼 수 있습니다.include.rownames효과가 있을 겁니다

library("xtable")
print(xtable(df1), type="html", include.rownames = FALSE)
#<!-- html table generated in R 3.1.0 by xtable 1.7-3 package -->
#<!-- Thu Jun 26 12:50:17 2014 -->
#<TABLE border=1>
#<TR> <TH> values </TH> <TH> group </TH>  </TR>
#<TR> <TD align="right"> -0.34 </TD> <TD> a </TD> </TR>
#<TR> <TD align="right"> -1.04 </TD> <TD> b </TD> </TR>
#<TR> <TD align="right"> -0.48 </TD> <TD> c </TD> </TR>
#</TABLE>

네, 반년이 넘었고 조금 늦었다는 것을 압니다만.

row.names(df) <- NULL

효과가 있습니다.저는 최소한 :-)

그리고 만약 당신이 중요한 정보를 행에 가지고 있다면, 예를 들어 날짜와 같은 이름들은 제가 하는 일은:

df$Dates <- as.Date(row.names(df))

이렇게 하면 끝에 새 열이 추가되지만 데이터 프레임의 시작 부분에 새 열이 추가됩니다.

df <- df[,c(7,1,2,3,4,5,6,...)]

이것이 Google에서 오신 분들에게 도움이 되길 바랍니다 :)

다음을 통해 테이블을 포맷하려면kable, 사용가능row.names = F

kable(df, row.names = F)

A dplyr솔루션:

df = df %>% `rownames<-`( NULL )

최근 htmlTable()('htmlTable' 패키지)을 사용할 때도 같은 문제가 있었는데, 데이터 프레임을 as.matrix()가 있는 행렬로 변환하는 더 간단한 해결책을 발견했습니다.

htmlTable(as.matrix(df))

그리고 행 이름은 색인만 사용해야 합니다. as.matrix()는 동일한 열 이름을 보존합니다.바로 그겁니다.

갱신하다

@DMR 님의 댓글에 따라 저는 그것을 인지하지 못했습니다.htmlTable()매개 변수가 있습니다.rnames = FALSE이런 경우에는따라서 더 나은 대답은 다음과 같습니다.

htmlTable(df, rnames = FALSE)

...또는 간단히:

library(tidyverse)

df_data_with_rownames %>%
SOME STUFF %>%
tibble::remove_rownames() -> wrangled_df_data_without_rownames

제 답변은 코멘트를 위한 것이지만, 제가 충분한 평판을 얻지 못했기 때문에, 저는 그것이 여전히 답변으로서 중요하고 누군가를 도울 것이라고 생각합니다.

찾았다구요datatable인에library DT다루기 힘든rownames,그리고.columnames

Library DT
datatable(df, rownames = FALSE)  # no row names 

사용 시나리오는 https://rstudio.github.io/DT/ 을 참조하십시오.

또 다른 간단한 방법은 다음과 같이 할당하는 것입니다.c()당신에게rownames행 이름을 없애려면(데이터를 주셔서 @Anders 감사합니다):

df <- data.frame(values = rnorm(3), group = letters[1:3],
                  row.names = paste0("RowName", 1:3))
df
#>             values group
#> RowName1 0.4189236     a
#> RowName2 1.8604397     b
#> RowName3 0.7030387     c
rownames(df) <- c()
print(df)
#>      values group
#> 1 0.4189236     a
#> 2 1.8604397     b
#> 3 0.7030387     c

2022-07-09년 repex 패키지에서 생성(v2.0.1)

저는 단지 그것을 덧붙이고 싶었습니다.data.table에는다를 때 행 .data.table의.

options(datatable.print.rownames = F)

이것은 콘솔과 R 마크다운 파일을 렌더링할 때의 문제를 해결해 주었습니다.여기에서 기타 인쇄 옵션 참조

간단히 rownames(df) <- "

언급URL : https://stackoverflow.com/questions/24428051/removing-display-of-row-names-from-data-frame

반응형