使用 read_excel 和缺失值在 R 中导入数据

Importing data in R with read_excel and missing values

我目前正在学习如何将 excel 导入数据框。我已经研究过了,但到目前为止我找不到答案。

有几行数据表示自 2013 年以来的每个月,其中每月大约有 150 行(按位置)。每个位置,每个月都有一组数据,例如人数,以及一些其他相关的数字和字符数据。随着文件的开发和方法的改变,一些列有空白,但列的其余部分是数字。例如Number_of_PPL是从2019年开始记录的,所以之前的值都是空白。

我知道我可以将空白更改为零,但我不想将其与 0 人与无数据相混淆。

使用以下内容导入时:

df <- data.frame(read_excel("UPLOAD_DATA.xlsx", sheet="ALL DATA",na=""))

str(df) 给出:

$ Number_of_PPL : logi NA NA NA NA NA NA ...

带空格的列被视为逻辑列而不是数字列。我尝试转换为数字,但这给了我 0,1 或 NA 值,而不是数据的真实值。我不想省略带有 NA 的行,因为它们包含该位置的其他相关数据。

有没有办法将这些列导入为数字,这样我仍然可以在图表中表示它们并在以后进行计算而不插入零?

编辑/更新 这是从 excel 上传的数据示例:

数字数据与空白的转换发生在 Number_of_PPL 列的第 12,520 行。到目前为止,当使用 Read_xl 时,我发现它会猜测这是逻辑数据。如果我在较早的行中输入数字,即。 Row1,read_xl 将把该列单独视为数字。

col_names的建议完美地强制它成为数字,但是就效率和未来的数据集而言,我更愿意找出是否有办法让read_xl 在假设数据是合乎逻辑的之前,先深入了解数据?

很明显,它能够获取空白行,分配 NA 并仍然称其为数字,但它似乎与数据列中数字出现的位置有某种关系,在这种情况下,它们似乎太远了“向下

增加 guess_max 的值已解决此问题。

df = data.frame(read_excel("UPLOAD_DATA.xlsx", sheet="所有数据",na="", <strong>guess_max=Inf</strong>))

感谢@benbolker