R скрипт для экспорта пользовательского списка цифр и букв в Excel
Чтобы помочь с регулярным изготовлением этикеток и печатью, которые мне нужны, я ищу сценарий, который позволяет мне вводить диапазон последовательных чисел (некоторые со строковыми идентификаторами), которые я могу экспортировать с определенным форматом в Excel. Например, если я ввел диапазон "1:16", я ищу вывод в Excel точно так же, как:
Для каждого уникального последовательного номера (т. Е. От 1 до 16) первые пять строк должны быть помечены буквой "U", следующие три строки - буквой "F", а последние две строки - только номером. Окончательная экспортированная матрица будет будет n столбцов x 21 строка, где n будет варьироваться в зависимости от диапазона номеров, которые я ввожу.
Моя главная проблема заключается в написании в Excel. Я не могу узнать, как настроить этот вывод и записать в определенные строки и столбцы, как в примере выше. Я ограничен "openxlsx", так как я работаю на корпоративной защищенной рабочей станции. Вот что у меня так далеко:
Unfiltered <- rep (1 : 16, each = 5)
UnfilteredLabel <- paste (Unfiltered, "U")
UnfilteredLabel
Filtered <- rep (1 : 16, each = 3)
FilteredLabel <- paste (Filtered, "F")
FilteredLabel
Number <- rep (1 : 16, each = 2)
NoLabel <- paste (Number, "")
NoLabel
install.packages("openxlsx")
library(openxlsx)
write.xlsx(UnfilteredLabel, 'test.xlsx', append = TRUE)
write.xlsx(FilteredLabel, 'test.xlsx', append = TRUE)
write.xlsx(NoLabel, 'test.xlsx', append = TRUE)
Буду очень признателен за любую помощь, заранее спасибо!
1 ответ
Не самый чистый код. Попробуйте это:
aa<-data.frame(matrix(c(1:16), byrow=F, ncol=4))
mm<-lapply(aa,function(x){
ac<-mapply(rep,list(x), list(5,3,2))
xy<-mapply(paste,ac,list("U","F",""), sep="")
xy<-matrix(unlist(xy), byrow=T,ncol=4)
})
fst<-do.call("rbind", list(mm[[1]],"",mm[[2]]))
snd<-do.call("rbind", list(mm[[3]],"",mm[[4]]))
mm<-do.call("cbind", list(fst,"",snd))
openxlsx::write.xlsx(mm, 'test.xlsx', append = TRUE)