使用指数式文字中的字符串和数字导入Excel

时间:2015-11-02 13:31:08

标签: r excel load xlsx

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

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

等等,有数千行和一堆带有值的列。

然而,当我使用:

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

它以字符串形式返回所有内容:

is.numeric(data$X1)

[1] FALSE

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

如何在不使用此类技巧的情况下直接上传?

1 个答案:

答案 0 :(得分:0)

我们可以使用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