【发布时间】:2016-12-21 18:47:52
【问题描述】:
我对上一个问题有类似的问题:How can read 'Numeral Signs-#' as part of a column header?
我也有一个井号/哈希/数字符号作为 csv 文件中第一个变量名称的一部分:“Seg#”
当我使用 readr 的“read_csv”读取 csv 时,我看到一条关于解析失败的警告消息,其中显示:预期 25 列,实际 26 列。 它读入数据,但每列名称都向右移动,第一列数据(以前在变量“Seg#”下的数据)现在丢失了。
使用 read.csv 会产生相同的数据框,但没有任何警告。
我尝试使用上面链接的问题中的建议来解决这个问题:
d1 <- read.csv('11104.wav.csv', comment.char = "", header=T, check.names = FALSE)
...但它只是做了同样的事情:删除第一列数据并将所有名称向右移动一次。
当我尝试“read.table”而不是 read.csv 时,我看到以下错误消息:
Error in read.table("11104.wav.csv", comment.char = "", header = T, check.names = FALSE) : more columns than column names
任何帮助将不胜感激!
编辑:包括数据示例
这是数据在 Excel 中的外观:
Seg# Start Pos (Sec.) End Pos (Sec.) Energy
1 4.96 5.98 2
2 5.98 6.98 4
3 6.98 7.98 5
4 7.98 8.68 8
5 12.02 13.04 3
6 13.04 14.04 2
7 14.04 14.76 3
然而,当读入 R 时,数据如下所示:
Seg# Start Pos (Sec.) Pos (Sec.) Energy
4.96 5.98 2 NA
5.98 6.98 4 NA
6.98 7.98 5 NA
7.98 8.68 8 NA
12.02 13.04 3 NA
13.04 14.04 2 NA
14.04 14.76 3 NA
【问题讨论】:
-
您能否提供数据和/或代码,为我们提供reproducible example ?
-
列名是什么样的?是否可以用文本编辑器打开csv并取出符号?
-
嗨,Ben,添加了一些数据 - 这是您的意思吗?
-
与其显示“它在 Excel 中的样子”,不如在文本编辑器中打开数据并越过前几行,以便我们查看文件中的确切内容。
-
我创建了一个具有完全相同数据和列名的
csv文件,并使用read.csv在R 中读取它。我能够读取该文件,并且列名中的#和(被转换为.。我错过了什么吗?