我试图读取以下链接CSV:http://databank.worldbank.org/data/download/GDP.csv读的.csv - 分离问题
我有两个问题:
- 这个表有其列之间不同的分隔符(例如,第一第二列用逗号隔开,但第二列和第三列用两个逗号分隔)。
- 每行以5个逗号结尾。
我想过用read.fwf()函数读取表来解决问题1和2.但是,我不认为这是一个合适的解决方案,因为某些列内的值可能会有所不同(例如在国家专栏中可以找到“美国”和“意大利”)。
我试图读取以下链接CSV:http://databank.worldbank.org/data/download/GDP.csv读的.csv - 分离问题
我有两个问题:
我想过用read.fwf()函数读取表来解决问题1和2.但是,我不认为这是一个合适的解决方案,因为某些列内的值可能会有所不同(例如在国家专栏中可以找到“美国”和“意大利”)。
很明显,这个“CSV”文件已被格式化为看起来漂亮,而不是实际上有用。这并不是说它有不同的分隔符,而是它缺少了列。如何清除它的东西,如
dd <- read.csv("http://databank.worldbank.org/data/download/GDP.csv", skip=5, header=F)[,c(1,2,4,5)]
names(dd) <- c("CountryID","Ranking","Economy","GDP")
dd<-dd[dd[,1]!="",] #get rid of rows without IDs
head(dd)
# CountryID Ranking Economy GDP
# 1 USA 1 United States 16,800,000
# 2 CHN 2 China 9,240,270
# 3 JPN 3 Japan 4,901,530
# 4 DEU 4 Germany 3,634,823
# 5 FRA 5 France 2,734,949
# 6 GBR 6 United Kingdom 2,522,261
R不喜欢在数量逗号所以你可能也想
dd$GDP <- as.numeric(gsub(",","",dd$GDP))
你打开用Excel文件?我做了,这是一团糟。如果我是你的话,我首先要用我需要的数据创建一张干净的纸张,然后试着读取它来清理它。您也可以先删除所有逗号。 – 2014-09-06 19:49:23
我刚刚编辑链接直接下载csv。关于在Excel中打开文件,我想它可以工作,但我正在寻找一个基于R的解决方案。事实并非如此,但在Excel中打开文件可能会导致丢失单元格中的前导零,所以我更愿意学习如何从R做所有事情。感谢您的回复。 – Victor 2014-09-06 19:54:02
这是有道理的,但我仍然建议首先在Excel中查看数据(特别是当它很小)时,从网上下载的东西。你永远无法知道什么惊喜等着你,这可能会搞砸一切。 @MrFlick如何知道他需要跳过前5行否则? – 2014-09-06 19:59:48