具有缺失值和混合 (srting/numeric) 数据的数据推送器
Datapusher with missing values and mixed (srting/numeric) data
我有一个包含 31,989 行数据的 csv 文件。
列都是数值数据,但部分单元格有缺失值,作者将其编码为NA(这在使用R分析时很常见)。 CKAN 好像和 NA 有问题。
如果我加载原始文件,它开始将数据推送到数据存储,但中途停止,预览仅显示 3750 条记录。如果您编辑(管理)资源并转到 DataStore 选项卡,它会显示此错误:
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,则文件可以正常上传,并且可以预览所有 31,989 条记录。
有没有办法解决这个问题,以便我们可以为缺失值保留 NA(如在 R 中使用的那样)?
谢谢
没有简单的方法可以完全满足您的需求,因为 DataStore 或多或少是 1:1 link 数据库 table 的一种。在 Postgresql 中,您也不能将文本插入到数字列中。我刚刚在 CSV 文件中尝试了不同形式的缺失值(null、NULL、None 并完全保留值,即 field1,field3)——有效的方法是保留值:
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
也许这样就令人满意了?您可以在 CSV 文件中执行 find/replace 'NA'->''。唯一的其他选择是通过在文件前面使用引号或文本值强制该列为文本,但我认为这不是您想要的,并且它会导致 CKAN 中的视图出现问题。
我有一个包含 31,989 行数据的 csv 文件。
列都是数值数据,但部分单元格有缺失值,作者将其编码为NA(这在使用R分析时很常见)。 CKAN 好像和 NA 有问题。
如果我加载原始文件,它开始将数据推送到数据存储,但中途停止,预览仅显示 3750 条记录。如果您编辑(管理)资源并转到 DataStore 选项卡,它会显示此错误:
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,则文件可以正常上传,并且可以预览所有 31,989 条记录。
有没有办法解决这个问题,以便我们可以为缺失值保留 NA(如在 R 中使用的那样)?
谢谢
没有简单的方法可以完全满足您的需求,因为 DataStore 或多或少是 1:1 link 数据库 table 的一种。在 Postgresql 中,您也不能将文本插入到数字列中。我刚刚在 CSV 文件中尝试了不同形式的缺失值(null、NULL、None 并完全保留值,即 field1,field3)——有效的方法是保留值: 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
也许这样就令人满意了?您可以在 CSV 文件中执行 find/replace 'NA'->''。唯一的其他选择是通过在文件前面使用引号或文本值强制该列为文本,但我认为这不是您想要的,并且它会导致 CKAN 中的视图出现问题。