为什么在从 r 输出到 excel sheet(使用 xlsx 包)时,数据框列标题中的问号显示为句点?

Why does a question mark in a dataframe column title show as a period when outputting from r to an excel sheet (using xlsx package)?

假设我使用 xlsx 包将数据帧从 r 写入 excel。假设我有一个数据框,其列标题包含一个问号(下面的代码):

library(xlsx)
rm(list = ls())

fpath <- "whatever filepath"

#My df
df <- data.frame("Questions?" = c("bla", "bla bla"), "123Numbers"= c(1,2))

#Now output 
wb <- createWorkbook()
sh <- createSheet(wb, sheetName = "Bla")
addDataFrame(df, sh)

saveWorkbook(wb, paste0(fpath,".xlsx"))

当我打开 excel 输出文件时,我得到以下信息: Result

  1. 为什么问号在“问题”列标题中显示为句点?
  2. 为什么 123Numbers 列标题前面有一个随机 "X" 字符?

当然,如果有我遗漏的简单解决方法,请指教。谢谢!

check.names 参数在 data.frame 中默认为 TRUE 并且它将确保所有非标准列名都被应用修改 (make.names- > make.unique)。如果我们将其指定为 FALSE,列名将不会更改

df <- data.frame("Questions?" = c("bla", "bla bla"),
    "123Numbers"= c(1,2), check.names = FALSE)