2015-10-24 3 views
1

Привет, я использую пакет {xlsx} для записи вещей в файлах excel и с помощью setColumnWidth для управления шириной столбца. Она не работает, когда я пытался использовать векторы, чтобы указать индекс столбца и ширина столбцаПочему векторные аргументы не работают в setColumnWidth {xlsx}? [R]

wb = createWorkbook() 

sheet1 = createSheet(wb, sheetName = "test1") 
sheet2 = createSheet(wb, sheetName = "test2") 

setColumnWidth(sheet1, 1, 20)   
setColumnWidth(sheet2, 2:5, rep(20, 4)) 
# Error in .jcall(sheet, "V", "setColumnWidth", as.integer(ic), as.integer(colWidth * : 
#   method setColumnWidth with signature (I[I)V not found 

saveWorkbook(wb, 'test.xlsx') 

Кто-нибудь знает, как это исправить? Дай мне знать, пожалуйста. Любая помощь оценивается.

ответ

2

Вы были на самом деле очень близки! Все, что вам нужно сделать, это заменить

setColumnWidth(sheet2, 2:5, rep(20, 4)) 

С более явно объявлен

setColumnWidth(sheet2, colIndex=c(2:5), colWidth=20) 

Таким образом, R знает, что ваш второй аргумент для индексированных столбцов 2 до 5. Третий аргумент, то просто применяется для всех четырех этих столбцов.

Запомните также использовать c(), когда вы комбинируете несколько элементов вместе, как и во втором аргументе функции setColumnWidth.

+0

Большое спасибо @JFu! –

Смежные вопросы