首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在read.csv中指定colClasses

在read.csv中指定colClasses
EN

Stack Overflow用户
提问于 2010-05-11 02:30:04
回答 5查看 194.7K关注 0票数 117

我尝试在R的read.csv函数中指定时间选项。在我的数据中,第一列“colClasses”基本上是一个字符向量,而其余的列是数字。

代码语言:javascript
复制
data <- read.csv("test.csv", comment.char="" , 
                 colClasses=c(time="character", "numeric"), 
                 strip.white=FALSE)

在上面的命令中,我希望R将"time“列读取为"character”,其余部分读取为数字。尽管"data“变量在命令完成后确实有正确的结果,但R返回了以下警告。我想知道如何修复这些警告?

代码语言:javascript
复制
Warning messages:
 1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
    not all columns named in 'colClasses' exist
 2: In tmp[i[i > 0L]] <- colClasses :
    number of items to replace is not a multiple of replacement length

德里克

EN

回答 5

Stack Overflow用户

发布于 2011-11-19 00:38:21

您只能为一列指定colClasse。

因此,在您的示例中,您应该使用:

代码语言:javascript
复制
data <- read.csv('test.csv', colClasses=c("time"="character"))
票数 192
EN

Stack Overflow用户

发布于 2010-05-11 07:19:32

假设您的“time”列至少有一个观察值包含非数字字符,而所有其他列都只包含数字,那么“read.csv”的默认设置是将“time”作为“factor”读取,而将所有其余列作为“numeric”读取。因此设置'stringsAsFactors=F‘将具有与手动设置'colClasses’相同的结果,

代码语言:javascript
复制
data <- read.csv('test.csv', stringsAsFactors=F)
票数 14
EN

Stack Overflow用户

发布于 2011-12-20 03:53:44

如果您希望引用标题中的名称,而不是列号,则可以使用类似以下内容:

代码语言:javascript
复制
fname <- "test.csv"
headset <- read.csv(fname, header = TRUE, nrows = 10)
classes <- sapply(headset, class)
classes[names(classes) %in% c("time")] <- "character"
dataset <- read.csv(fname, header = TRUE, colClasses = classes)
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2805357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档