我有一个名为“test.csv”的简单 csv 文件,其内容如下:
colA,colB,colC
1,"x",12
2,"y",34
3,"z",56
假设我想跳过 colA 中的阅读,而只阅读 colB 和 colC。我想要一种通用的方法来做到这一点,因为我有很多文件要读入,有时 colA 完全被称为其他东西,但 colB 和 colC 总是相同的。
根据 read_csv 文档,实现此目的的一种方法是为 col_types 传递一个命名列表,并且只命名您要保留的列:
read_csv('test.csv', col_types = list(colB = col_character(), colC = col_numeric()))
通过不提及 colA 它应该从输出中删除。但是,生成的数据框是:
Source: local data frame [3 x 3]
colA colB colC
1 1 x 12
2 2 y 34
3 3 z 56
我做错了什么还是 read_csv 文档不正确?根据帮助文件:
如果是一个列表,它必须为每一列包含一个“收集器”。如果您只想读取列的子集,则可以使用命名列表(其中名称给出列名称)。如果未按名称提及列,则不会将其包含在输出中。