Excel 中的数字列被转换为逻辑列

Numerical column in Excel gets converted as logical

当我尝试将数据从 Excel 导入 R studio 时,数字列在 R 中作为逻辑列导入。

有没有办法将这些列作为数字导入到 R 中? Excel 中的列已格式化为数字。

我正在使用 read_excel 导入文件。

我要导入的电子表格有 80 列。

使用 col_types 并明确指定列类型。

read_excel(path, sheet = 1, col_names = TRUE, col_types = c("text","numeric","date"), na = "", skip = 0)

https://www.rdocumentation.org/packages/readxl/versions/0.1.1/topics/read_excel

由于您没有提供数据集作为示例,我想出了以下数据集:

df <- structure(list(`1_a` = c(1212, 1221, 32432), `2_a` = c(121, 123, 3), `3_a` = c(34, 343, 232), 
                 `4_a` = c(65, 23, 123), `5_a` = c(34, 432, 1)), row.names = c(NA, -3L), 
            class = c("tbl_df", "tbl", "data.frame"))

数据集全部为数字,列名以数字开头。

使用以下代码,我能够读取 excel 文件,同时保留列名(test.xlsx 是上述数据集的示例):

library(readxl)
df <- read_excel("test.xlsx", sheet = 1, col_names = TRUE)

我 运行 遇到了完全相同的问题,由于保密政策,我无法提供 excel 文件。但是,我在 github 中找到了由 jennybc 在 here 中提供的解决方案,她在那里发布了:

"But I'm guessing that you have lots of blank values at the top of this worksheet. Looks like this column is being guessed as logical, and anything that's neither NA nor zero is becoming TRUE. If my diagnosis is correct, you should either specify the column type you want (probably numeric in this case) or increase guess_max to something higher than the default of 1000."

由于我的文件格式有些变化,我接受了 guess_max 的建议,这一行解决了我的问题:

temp.data <- read_xlsx(filepath, sheet = 1, guess_max = 10000)