2014-10-21 96 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