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

时间:2018-06-20 12:05:39

标签: r excel numbers rexcel

当我尝试从Excel将数据导入R Studio时,数字列将作为R中的Logical导入。

是否可以将这些列作为数字导入R中? Excel中的列已被格式化为数字。

我正在使用read_excel导入文件。

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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)

答案 2 :(得分:0)

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

  

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

文件格式有所更改时,我接受了guess_max的建议,此行为我解决了这个问题:

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