我在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))
- 但是有很多列,它变得非常累人。
如何在不使用此类技巧的情况下直接上传?
答案 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