10

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

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

我正在使用read_excel导入文件。

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

4

3 回答 3

21

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

“但我猜你在这个工作表的顶部有很多空白值。看起来这个列被猜测为合乎逻辑的,任何既不是 NA 也不是零的东西都变成了 TRUE。如果我的诊断是正确的,你应该要么指定您想要的列类型(在这种情况下可能是数字)或将guess_max 增加到高于默认值 1000 的值。”

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

temp.data <- read_xlsx(filepath, sheet = 1, guess_max = 10000)
于 2019-10-09T08:21:43.097 回答
6

使用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

于 2018-06-20T12:09:04.010 回答
1

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

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)
于 2018-06-20T12:17:55.150 回答