2014-07-09 11 views
5

Ho un frame di dati con un numero variabile di colonne e vorrei formattare l'intero frame di dati con lo stesso stile di cella usando xlsx. Ho creato lo stile di cella:Formatta l'intero frame di dati con lo stesso stile di cella usando xlsx (pacchetto R)

pct <- CellStyle(soccer, dataFormat=DataFormat("0.0%")) 

Ma quando provo a impostare il colStyle in addDataFrame, non so come creare un elenco di pct che è la stessa lunghezza del numero di colonne dei miei dati telaio. Ho provato qualcosa di simile:

addDataFrame(x = df, sheet = my.sheet, startRow = i, colStyle=rep(pct, length(df))) 

Non funziona anche se da quando so che ogni elemento deve avere un nome che corrisponde al numero di colonna.

risposta

5

Ho avuto lo stesso problema; è necessario creare un elenco di CellStyle oggetti, e sarà qualcosa di simile (supponendo che DF è un oggetto data.frame):

pct <- CellStyle(soccer, dataFormat=DataFormat("0.0%")) 

dfColIndex <- rep(list(pct), dim(df)[2]) 
names(dfColIndex) <- seq(1, dim(df)[2], by = 1) 

addDataFrame(x = df, sheet = my.sheet, startRow = i, colStyle= dfColIndex) 

ho chiamato gli elementi della lista con il numero della colonna, anche se sembra dalla pagina di aiuto che non è obbligatoria (ma senza di loro non ha funzionato per me).

Il codice che ho fornito è una versione breve di

dfColIndex <- list("1" = pct, 
        "2" = pct, 
        "3" = pct, 
        ... # and so on, for every column of you dataframe) 

ho trovato un utile esempio sui file XLSX scrittura a this blog

Problemi correlati