【发布时间】:2023-03-22 23:24:01
【问题描述】:
我有这个示例数据集:
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 新手,我遇到的问题似乎很常见,但我无法在这里找到答案(可能是因为我没有知道要搜索什么吗?),如果这是大量重复,请道歉......
【问题讨论】:
-
您可以使用
readLines将文件作为字符向量读入,然后删除向量的第二个元素,然后使用textConnection将向量传递给read.csv -
@SaurabhChauhan 我确实看到了这个,我想知道是否有更直接的解决方案。那里的最高评论确实有效,尽管另一个评论(只是在 read.csv() 调用后删除第二行)不起作用,因为列数据类型不好。这 readLines & textConnection 真的是最好的解决方案吗?这似乎是一个常见的问题,我们不应该付出这么多努力来实现这一目标。