2015-11-23 45 views
1

我有一個csv文件,其中包含31,989行數​​據。具有缺失值和混合(srting /數字)數據的Datapusher

這些列都是數字數據,但有些單元格缺少值,作者編碼爲NA(在使用R進行分析時這很常見)。 CKAN似乎在NA中遇到了麻煩。

如果我加載原始文件,它將開始將數據推送到數據存儲,但中途停止,預覽僅顯示3750條記錄。如果編輯(管理)的資源並進入數據存儲選項卡,它顯示了這個錯誤:

Error: The data was invalid (for example: a numeric value is out of range or was inserted into a text field). 
HTTP status code: 409 
Response: {"help": "https://datastore.landcareresearch.co.nz/api/3/action/help_show?name=datastore_create", "success": false, "error": {"message": "The data was invalid (for example: a numeric value is out of r... 
Requested URL: https://datastore.landcareresearch.co.nz/api/3/action/datastore_create 

不過,如果我重新編寫NA爲-9999,然後將文件上傳罰款,全部31989條記錄預覽。

有沒有辦法解決這個問題,所以我們可以保留缺失值(用於R)的NA?

感謝

+0

你是否偶然使用'ckanr' https://github.com/ropensci/ckanr/? – sckott

+0

@sckott還沒有積極的,但我已經看過它有一個小小的戲劇,這是我們將來使用的東西,我確定 - 因此想知道這個NA問題。我是新手R用戶(我的角色實際上並不是數據分析 - 現在更多的是指導/促進其他人對數據管理的角色,我過去常常在多年前進行分析)。我們已經設置了CKAN,這裏有很多員工使用R,所以ckanr是一個明顯的步驟。 –

+0

聽起來不錯,看起來像下面的答案 – sckott

回答

0

有沒有簡單的方法做你想要什麼,因爲數據存儲是或多或少的1:1連接到數據庫表。在Postgresql中,您也不能將文本插入到數字列中。我只是嘗試了不同形式的遺漏值的一個CSV文件(NULL,NULL,無,離開了價值完全,即字段1,字段3) - 什麼工作是留下了價值: http://beta.ckan.org/dataset/tests/resource/ae878fea-75c9-48ea-93ba-59df3536406a

你可以看到柱仍然被視爲數字: http://beta.ckan.org/api/action/datastore_search?resource_id=ae878fea-75c9-48ea-93ba-59df3536406a&limit=5

原始文件: http://beta.ckan.org/dataset/ceaa03b5-c9ae-4fdd-908d-8c461cba07ea/resource/ae878fea-75c9-48ea-93ba-59df3536406a/download/quicktest.csv

也許這將是滿意嗎?您可以在CSV文件中查找/替換'NA' - >''。唯一的另一種選擇是通過在文件的前面使用引號或文本值來強制文本成爲文本,但我不認爲這就是你想要的,並且會導致CKAN中的視圖出現問題。