首页 > 解决方案 > read.csv 带有标题但忽略第二行

问题描述

我有这个示例数据集:

sub_id,age,country,score
{subID},{Age},{CountryOfOrigin},{Qscore}
1,23,UK,15
2,28,uk,19
3,40,United Kingdom,33
4,19,france,21
5,36,Italy,16
6,24,UK,18
7,26,greece,16
8,22,italy,15

我想阅读并执行一些计算/分析。我想要标题行,但该行会导致问题。我尝试将其读入并删除第一行({with these}...这是一个无意义的行),但由于在读入时列中的混合数据类型,R 不会让我对任何内容执行计算因为数据不再是数字了。

这是一个更大数据框的示例,因此我不能这样做并手动指定要更改为数字的列。

似乎最好的解决方案是读取带有标题的 csv 文件,但跳过第一行。

df <- read.csv('scores.csv',
               header=TRUE,
               skip=1)

这有效,但它转换了我所有的列名!例如df$Qscore变成df$X.Qscore.,这显然是不理想的。我至少可以对此进行计算,但我不知道我做错了什么。

我还尝试只读取标题,然后读取没有标题的数据,并将它们粘在一起,但也有很多问题。这应该是个很常见的问题...

注意:我是 R 新手,我遇到的问题似乎很常见,但我无法在这里找到答案(可能是因为我不知道要搜索什么?),所以很抱歉如果这是一个巨大的重复......

标签: rcsvheaderread.csv

解决方案


我们可以滥用comment.char选项:

read.table(text = "sub_id,age,country,score
{subID},{Age},{CountryOfOrigin},{Qscore}
1,23,UK,15
2,28,uk,19
3,40,United Kingdom,33
4,19,france,21
5,36,Italy,16
6,24,UK,18
7,26,greece,16
8,22,italy,15", sep = ",", comment.char = "{", header = TRUE)

推荐阅读