r - 使用 write.xlsx 和标头名称问题进行批量转换
问题描述
我正在使用包中将很多 .csv 文件批量转换为 xlsx 格式write.xlsx
,openxlsx
我使用以下内容来转换文件列表(超过 200 个)。我需要这样做的原因是为了上传到数据库,它只接受 xlsx 文件。
filenames <- list.files("C:/split files", pattern="*.csv", full.names=TRUE)
for(i in filenames) {
a <- read.csv(i)
new_name <- sub('.csv', '.xlsx', i, fixed = TRUE)
write.xlsx(a, new_name, row.names = F)
我遇到的问题是,以前在名称中包含空格的标题(同样是数据库所需的格式)现在有“。” 曾经的空间。有没有一种简单的方法可以添加到上面的代码中并替换“。” 和 ” ” ?
解决方案
尝试
read.csv(i, check.names = F)
你得到那个“。” 因为 R 在读取 csv 文件时会检查并转换您的列名。我们可以通过禁用该检查来保留原始名称。
推荐阅读
- c# - 仅在 Enumerables 上运行 AfterMap
- python - 当嵌套序列化程序中有另一个模型(manytomany)时,如何在 django 模型上发布,我想同时创建两者
- python - Pandas-从具有嵌套列表的现有列创建动态列时出错
- jenkins - Jenkins 如何在保留构建的天数和要保留的最大构建数量之间做出决定?
- java - ANTLR 意外行为
- powershell - 使用 powershell 脚本运行 .exe 文件
- python - 我不能再用 pip 安装任何东西,也不能升级 pip
- swift - 在接受闭包的视图中使用闭包与方法
- mysql - 在另一个 Select SQL 查询上选择 SQL 查询,给出 null
- r - 哪些 R 函数对于计算多元线性回归(使用交互项)中的部分 eta 平方是正确的?