我正在使用R中的tcltk包创建一个GUI,我正在尝试在R中编写一个函数,在保存时自动将.xlsx扩展名添加到文件名的末尾。但是,当它调用“另存为”窗口时,它不会添加扩展名。感谢任何帮助,谢谢。
library(openxlsx)
library(tcltk)
saveFile1 <- function(){
write.xlsx(c, tclvalue(tkgetSaveFile(
filetypes = "{ {Excel} {*.xlsx} }")))
}
答案 0 :(得分:1)
我认为这应该可以解决问题。
saveFile1 <- function(c){
require(tcltk)
require(openxlsx)
# Prompt for file
filepath <- tclvalue(tkgetSaveFile(filetypes = "{ {Excel} {*.xlsx} }", defaultextension = ".xlsx"))
# Check if file was specified
if(filepath != ""){
# Ensure that the last 5 characters are .xlsx
filepath <- ifelse(substr(filepath, nchar(filepath) - 4, nchar(filepath)) == ".xlsx", filepath, paste0(filepath,".xlsx"))
# Write the file
write.xlsx(c, filepath)
}
}
# Test the function
saveFile1(mtcars)