以指数形式导入 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
我在 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