R 中的 read.table 和评论

标签 r metadata read.table

我想将元数据作为注释添加到我的电子表格中,然后让 R 忽略这些。

我的数据的形式

v1,v2,v3,
1,5,7,
4,2,1,#possible error,

(但它更长的异常(exception)。第一条评论实际上出现在前 5 行之外,由 scan 用来确定列数)

我一直在尝试:
read.table("data.name",header=TRUE,sep=",",stringsAsFactors=FALSE,comment.char="#")

但是read.table (而且,就此而言, count.fields )认为我比实际多一个领域。我的数据框以一个名为“X”的空白列结束。我认为这是因为我的电子表格程序在每一行的末尾添加了逗号(如上例所示)。

使用 flush=TRUE没有效果,即使(根据帮助文件)它“[...] 允许在最后一个字段 [...] 之后添加注释”

使用 colClasses=c(rep(NA,3),NULL)也没有效果。

之后我可以删除该列,但由于这似乎是一种常见做法,我想学习如何正确执行此操作。

谢谢,

安德鲁

最佳答案

来自文档( ?read.table ):

colClasses character. A vector of classes to be assumed for the columns. Recycled as necessary, or if the character vector is named, unspecified values are taken to be NA.

Possible values are NA (the default, when type.convert is used), "NULL" (when the column is skipped), one of the atomic vector classes (logical, integer, numeric, complex, character, raw), or "factor", "Date" or "POSIXct". Otherwise there needs to be an as method (from package methods) for conversion from "character" to the specified formal class.


请注意,它说使用 "NULL" ,不是 NULL .确实,这按预期工作:
con <- textConnection("
v1,v2,v3,
1,5,7,
4,2,1,#possible error,
")

read.table(con, header = TRUE, sep = ",",
           stringsAsFactors = FALSE, comment.char = "#",
           colClasses = c(rep(NA, 3), "NULL"))
#   v1 v2 v3
# 1  1  5  7
# 2  4  2  1

关于R 中的 read.table 和评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771711/

相关文章:

r - 仅将Geom默认外观更改为主题组件的一部分

r - R 中使用 brm 的负二项式回归在使用多核时会导致错误

ios - 设置和检索 AVMetadataCommonKeyCreator 值的问题

r - 将文本文件转换为 R 中的数据框

r - 使用摘要而不是原始数据的箱线图

fviz_nbclust() 函数的 Rstudio 错误

sql - sp_MSForEachDB 在函数内无效使用副作用运算符

sql-server - SQL Server 2005元数据搜索获取存储过程参数

r - 为什么 write.csv 和 read.csv 不一致?

r - R 中的 fread data.table 不读取列名