sourcecode

R-package openxlsx의 형식 지정 비율

copyscript 2023. 7. 13. 21:02
반응형

R-package openxlsx의 형식 지정 비율

R3.2.3/openxlsx 3.0.0

openxlsx로 Excel 워크북에 쓰는 데이터 프레임이 몇 개 있습니다.데이터 프레임 중 하나에 0.07과 같은 값이 포함되어 있습니다.와 함께

createStyle(numFmt='PERCENTAGE') 

워크북의 출력은 7.00%입니다.지금까지는 좋습니다.하지만 저는 7%의 출력을 원합니다.여러 가지 시도를 해봤는데, 스태킹 스타일,

createStyle(numFmt=c('PERCENTAGE','0'))

createStyle(numFmt='PERCENTAGE 0')

오류를 일으키거나 원하지 않는 결과를 제공합니다.올바른 방향의 어떤 제안도 환영할 것입니다.최신 버전의 openxlsx로 업그레이드하는 것은 옵션이 아닙니다.

Excel의 형식 코드를 사용하여 소수점이 없는 백분율 스타일을 만든 다음 해당 스타일을 특정 셀에 적용할 수 있습니다.예:

library(openxlsx)

# Fake data
set.seed(2)
dat = data.frame(v1=LETTERS[1:10], v2=runif(10), v3=letters[1:10], v4=runif(10))

# Create an Excel workbook object and add a worksheet
wb = createWorkbook()
sht = addWorksheet(wb, "Data")

# Create a percent style
pct = createStyle(numFmt="0%")

# Add fake data to the worksheet we just created
writeData(wb, sht, dat)

# Add the percent style to the desired cells
addStyle(wb, sht, style=pct, cols=c(2,4), rows=2:(nrow(dat)+1), gridExpand=TRUE)

saveWorkbook(wb, "my_workbook.xlsx")

Excel의 백분율 형식을 사용하면 스프레드시트의 기본 데이터가 텍스트 문자열이 아닌 숫자로 유지된다는 장점이 있습니다.

워크시트는 다음과 같습니다.

enter image description here

@parL의 답변에서 확장됩니다.이 접근 방식을 사용하려면 다음을 제거해야 합니다.createStyle(numFmt='PERCENTAGE 0'):

다음과 같은 작업을 수행할 수 있습니다.

i<-sapply(df, is.numeric)
df[i]<-lapply(df[i], scales::percent)

이렇게 하면 데이터 프레임의 모든 숫자 값 열이 문자열 형식이 됩니다.

언급URL : https://stackoverflow.com/questions/48063019/formatting-percentages-in-r-package-openxlsx

반응형