问题描述
我有一个来自网络的CSV URL列表,并将它们合并到一个向量中。
现在,我想用read_csv
阅读此列表。
示例:
files <- c("csv_link1.csv","csv_link2.csv","csv_link3.csv",and so on....)
data <- map_dfr(files,read_csv)
这没问题。问题是在CSV文件中,有一些列用不同的值填充。因此,例如,在CSV1中有“ V1”列,该列中填充有双精度字;在CSV中,同一列是“ V1”列,其中填充了字符。合并CSV无效,因为它们是不同的数据类型。
就我而言,我认为有两种解决方案。
- 我只导入某些列,所以我说
read_csv
仅读取列(V2和V3),而不读取V1
或
- 我使用
col_types
将列合并为相同的数据类型
我都尝试过,但是由于语法正确而失败。
我尝试过类似的事情
data <- map_dfr(files,read_csv(cols_only(the col names)))
但是,这不起作用。
如何仅导入和合并特定列?
在我的情况下为具体示例:
library(data.table)
library(readr)
library(purrr)
files <- c("https://www.football-data.co.uk/mmz4281/1920/EC.csv","https://www.football-data.co.uk/mmz4281/1819/EC.csv","https://www.football-data.co.uk/mmz4281/1718/EC.csv","https://www.football-data.co.uk/mmz4281/1617/EC.csv","https://www.football-data.co.uk/mmz4281/1516/EC.csv","https://www.football-data.co.uk/mmz4281/1415/EC.csv","https://www.football-data.co.uk/mmz4281/1314/EC.csv","https://www.football-data.co.uk/mmz4281/1213/EC.csv","https://www.football-data.co.uk/mmz4281/1112/EC.csv","https://www.football-data.co.uk/mmz4281/1011/EC.csv")
data <- map_dfr(files,read_csv)
Error: Can't combine `BbAH` <character> and `BbAH` <double>.
因此,列BbAH
具有不同的数据类型。但我不需要此专栏。
如果由于这种不同的数据类型问题,我可以选择合并之前合并的列,那将很酷。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)