使用read_excel()从readxl包中读取数字和文本混合列

使用read_excel()从readxl包中读取数字和文本混合列,r,readxl,R,Readxl,我正在尝试从readxl软件包中使用read\u Excel()获取大量旧版Excel 97-2003文件(.xls)。这些文件中的一列是带有一些空格的字母数字代码(例如,”、“1”、“1A”、“1B”、“2”、“3”、“3A”等)。在原始Excel文件中,该列中仅包含数字的单元格具有类型()/ 1 /代码>而包含字母的单元格和空白单元格具有代码>( 2 < /代码> .< 当我使用read_excel()读取文件时,数据框中相应的列会自动转换为chr(这就是我想要的),但只包含数字的元素最

我正在尝试从
readxl
软件包中使用
read\u Excel()
获取大量旧版Excel 97-2003文件(
.xls
)。这些文件中的一列是带有一些空格的字母数字代码(例如,
”、“1”、“1A”、“1B”、“2”、“3”、“3A”等)。在原始Excel文件中,该列中仅包含数字的单元格具有<代码>类型()/<代码> <代码> 1 /代码>而包含字母的单元格和空白单元格具有<>代码>(<)/代码> <代码> 2 < /代码> .<
当我使用
read_excel()
读取文件时,数据框中相应的列会自动转换为
chr
(这就是我想要的),但只包含数字的元素最终会被编码为小数,因此我的结果是
,“1.000000”,“1A”,“1B”,“2.000000”,“3.000000”,“3A”
,等等。使用
read_excel(…,coltypes=c(…,“text”,…)
强制转换为文本似乎没有任何区别


我可以很容易地用一点
regex
来修复生成的数据帧,但有没有办法首先避免这种情况?

如果没有数据丢失的风险,您是否尝试过将文件保存为
xlsx
?很好。我应该说这是一个大量的文件,所以任何需要我进入每个Ex的解决方案单独的cel文件不太有用。如果一列同时具有数字和字符类型,则R将其转换为字符类型。在R中,原子向量必须只有一种类型。否则,将发生强制类型转换(例如:所有数字将类型转换为字符)。我怀疑,这与您在问题中提到的软件包有关。@Satish:是的。强制键入
chr
是可以的。事实上,这正是我想要的。我只是不想最后出现所有这些尾随的零。如果您可以安装xlsx软件包并让它运行而不出现任何rJava问题,那么您可以尝试它的read.xlsx函数选项。也许这可以正确导入数据。这个问题可能与readxl包中的reader函数的实现有关。您可以继续并打开一个问题。如果没有数据丢失的风险,您是否尝试过将文件保存为
xlsx
?很好。我应该说这是大量文件,因此任何解决方案要求我单独进入每个Excel文件的ion没有那么大用处。如果一列同时具有数字和字符类型,则R将其转换为字符类型。在R中,原子向量必须只有一种类型。否则,将发生强制类型转换(例如:所有数字都将转换为字符类型)。我怀疑,这与您在问题中提到的软件包有关。@Satish:是的。强制键入
chr
是可以的。事实上,这正是我想要的。我只是不想最后出现所有这些尾随的零。如果您可以安装xlsx软件包并让它运行而不出现任何rJava问题,那么您可以尝试它的read.xlsx函数这个问题可能与readxl包中reader函数的实现有关。您可以继续并打开一个问题。