2014-10-21 54 views
0

我经常使用来自荷兰中央统计局(CBS)的数据。他们的数据在我看来不是很友善。我总是需要手动调整数据,然后才能在地图上找到它。我是做什么的,我是地理信息科学家。修改R中的数据设置

今天我开始编写脚本,以便调整从CBS获得的数据并将其转换为我的数据文件。到目前为止,我一直在手动执行此操作。今天我想起了为什么。我发现使用这些数据很难。级别和因素经常困扰我。我不需要更多关于这方面的文献,我正试图了解为什么以及何时出错。

我有,看起来像数据:

municipality name   first data col second data col third data col etc. 
2004 
2005 
2006 
2007 
2008 
othermunicipality name 
2004 
2005 
2006 
2007 
2008 
Etcetera 

我想是这样的:

   Municipality name       Other municipality name 
years   first data col second data col etc. first data col second data col etc. 
2004 
2005 
2006 
2007 
2008 

我明白,我不能指望整个脚本作为响应。但我认为我现在需要在正确的方向上加强。我应该如何处理这种情况?

它甚至可以使用双列名称吗?一个自治市的名称,然后是数据本身的名称。

+0

也许可能只是有很多数据框/矩阵。每个城市都有一个我可以联系到的年份列表,并获取我想要的年份数据。 – Zuenie 2014-10-21 23:13:23

+2

当你说“数据行”时,你是否有机会表示数据列?我用'readLines'读入,用'grepl'标记断点,然后在'cumsum(断点)'上标记' – 2014-10-21 23:22:03

+0

'你说得对,我已经调整过了。谢谢你的建议。去检查你的评论深入明天。 – Zuenie 2014-10-21 23:49:27

回答

0

这个答案有点像我之前回答的问题。我在R中做双列名的方式是使用'reshape',它将名称分隔一段时间。至于解析数据来填充基于第1列的市政名称列,这显然是第一步,我可能会稍后再跳回来,但目前我有点忙,这至少给你一个起点。

#example code 
a <- c(rep(1:10, 3)) 
b <- c(rep("aa", 10), rep("bb", 10), rep("cc", 10)) 
set.seed(123) 
c <- sample(seq(from = 20, to = 50, by = 5), size = 30, replace = TRUE) 
d <- data.frame(a,b, c) 
#how to rename it# 
e<-reshape(d,idvar='a',timevar='b',direction='wide') 
e