以指数形式导入 Excel 字符串和数字

Import Excel with strings and numbers in exponential writing

我在 Excel 中有一个数据库,如下所示:

Name    Note    Value1    Value2
Adidas  first   1.74E-06  1.06E-07

以此类推,有数千行和一堆带有值的列。

然而,当我使用:

data<-read.xlsx2("data.xlsx",header = T,sheetIndex = 1,colClasses="numeric")

它returns一切都是字符串:

is.numeric(data$X1)

[1] FALSE

到目前为止,我是这样解决它的:as.numeric(as.character(data$X1)) - 但是有很多专栏,它变得非常累人。

不使用这种技巧,如何直接正确上传?

我们可以使用read_excel

 library(readx)
 read_excel('file1.xlsx')
 #   Source: local data frame [1 x 4]

 #    Name  Note   Value1   Value2
 #   (chr) (chr)    (dbl)    (dbl)
 #1 Adidas first 1.74e-06 1.06e-07

正如我在评论中提到的,如果我们使用 colClasses,那么我们需要为整个列指定它

library(xlsx)
str(read.xlsx2('file1.xlsx', sheetIndex=1, colClasses=c('character', 
         'character', 'numeric', 'numeric'), stringsAsFactors=FALSE))
#   'data.frame':   1 obs. of  4 variables:
#  $ Name  : chr "Adidas"
#  $ Note  : chr "first"
#  $ Value1: num 1.74e-06
#  $ Value2: num 1.06e-07