为了帮助我做一些常规的标签制作和打印,我希望编写一个脚本,允许我输入一系列序列号(有些带字符串标识符),我可以使用特定格式导出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)
非常感谢您提供的任何帮助,提前谢谢!
答案 0 :(得分:0)
不是最干净的代码。试一试:
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)