R read.xlsx colClasses问题

R read.xlsx colClasses问题,r,import-from-excel,r-xlsx,R,Import From Excel,R Xlsx,我在使用read.xlsx中的colClasses函数时遇到问题 我有以下data.frame mydata <- read.xlsx("dataset_1.xlsx", sheetName = "dataset_1") head(mydata) Treatment Nitrate_conc 1 1 12 2 1 12 3 1 15 4 1 16

我在使用
read.xlsx
中的
colClasses
函数时遇到问题

我有以下
data.frame

mydata <- read.xlsx("dataset_1.xlsx", sheetName = "dataset_1")
head(mydata)
Treatment Nitrate_conc
1         1           12
2         1           12
3         1           15
4         1           16
5         1           12
6         2           18
str(mydata)
data.frame':    20 obs. of  2 variables:
$ Treatment   : num  1 1 1 1 1 2 2 2 2 2 ...
$ Nitrate_conc: num  12 12 15 16 12 18 25 26 28 28 ...
但是,我得到以下错误:


class(aux)中的错误这是一个老问题,但看起来它从未得到完全回答

这与
colClasses
列表中的元素是否命名无关。可以通过文档
?read.xlsx
追踪问题。在描述
colClasses
参数时,文档指向
readColumns
的文档。在那里的描述中,它说

仅接受数字、字符、日期、POSIXct和列类型。 其他任何内容都将转换为字符类型

因此,不允许指定
“因子”
。还请注意,
下的

data.frame的其他参数,例如stringsAsFactors

所以,我们可以使用

mydata <- read.xlsx("dataset_1.xlsx", sheetName = "dataset_1", 
  colClasses=c("character", "numeric"))
str(mydata)
'data.frame':   6 obs. of  2 variables:
 $ Treatment   : Factor w/ 2 levels "1","2": 1 1 1 1 1 2
 $ Nitrate_conc: num  12 12 15 16 12 18

mydata我认为它更像
colClasses=c(“factor”,“numeric”)
@Pascal建议
colClasses
可以使用命名参数。@RoryShaw您是否检查了
names(mydata)
以确保可能没有错误空间?您还可以考虑使用其他Excel读取器选项中的一个…我个人只在文件中包含日期时才使用
read.xlsx
。@MichaelChirico感谢您的帮助并链接到其他方法。@Pascal非常确定colClassess可以接受命名参数-它与read.csv等一起工作
mydata <- read.xlsx("dataset_1.xlsx", sheetName = "dataset_1", 
  colClasses=c("character", "numeric"))
str(mydata)
'data.frame':   6 obs. of  2 variables:
 $ Treatment   : Factor w/ 2 levels "1","2": 1 1 1 1 1 2
 $ Nitrate_conc: num  12 12 15 16 12 18
mydata <- read.xlsx("dataset_1.xlsx", sheetName = "dataset_1", 
    colClasses=c(Treatment = "character", Nitrate_conc = "numeric"))