使用标题中带有数字符号的变量读取 csv 问题 [r]

Posted

技术标签:

【中文标题】使用标题中带有数字符号的变量读取 csv 问题 [r]【英文标题】:Issue reading csv with variable that has a numeral sign in the header [r] 【发布时间】: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 中读取它。我能够读取该文件,并且列名中的#( 被转换为.。我错过了什么吗? 【参考方案1】:

尝试使用data.table 库中的fread() 函数读取文件?我在列标题中创建了一个带有 # 的类似 CSV 文件,并且加载它没有任何问题。

DT &lt;- fread("11104.wav.csv")

【讨论】:

以上是关于使用标题中带有数字符号的变量读取 csv 问题 [r]的主要内容,如果未能解决你的问题,请参考以下文章

at&t 汇编语法中带 $ 或不带 $ 符号的数字有啥区别?

将其字段中带有逗号的 .csv 文件转换为 JSON/TXT

SQL 游标 FOR 循环,模式名称中带有 / 变量

JMeter 使用同一列中带有逗号的值写入 CSV

数字符号“SK”

如何从数据库中读取值,例如 jmeter 中的 csv 文件