【发布时间】:2014-10-19 13:49:10
【问题描述】:
我想导入一个 csv 文件,该文件有多个缺失值。我将它们重新编码为 NULL 并尝试将文件导入为。我想我的包含 NULLS 的属性是字符值。但是将它们转换为数字有点复杂。因此,我想将我的所有表格导入为:
\copy player_allstar FROM '/Users/Desktop/Rdaten/Data/player_allstar.csv' DELIMITER ';' CSV WITH NULL AS 'NULL' ';' HEADER
一定有语法错误。但我尝试了不同的组合并且总是得到:
ERROR: syntax error at or near "WITH NULL"
LINE 1: COPY player_allstar FROM STDIN DELIMITER ';' CSV WITH NULL ...
我也试过了:
\copy player_allstar FROM '/Users/Desktop/Rdaten/Data/player_allstar.csv' WITH(FORMAT CSV, DELIMITER ';', NULL 'NULL', HEADER);
然后得到:
ERROR: invalid input syntax for integer: "NULL"
CONTEXT: COPY player_allstar, line 2, column dreb: "NULL"
我想这是由 R 预处理引起的。表格带有 NA,所以我将它们更改为:
data[data==NA] <- "NULL"
我不知道转换为 NULL 的不同方式。我认为这会导致字符串。是否有不同的方法来预处理和保留 NA(当然在 postgres 中为 NULLS)?
示例:
pts dreb oreb reb asts stl
11 NULL NULL 8 3 NULL
4 5 3 8 2 1
3 NULL NULL 1 1 NULL
数据类型为整数
【问题讨论】:
-
我认为您的第二次尝试非常接近,但您需要
FORMAT CSV而不仅仅是CSV。不添加作为答案,因为我是从记忆中说的...... -
谢谢。我调整了我,但仍然得到错误:错误:整数的无效输入语法:“NULL”上下文:复制 player_allstar,第 2 行,列 dreb:“NULL”
-
在默认设置下,NULL 被写为不带引号的空字符串。是否可以使用空字符串记录您的空值?如果没有,您能否给我们一份您的 csv 文件样本?
-
请显示输入的示例行。
-
感谢您的 cmets。我在上面添加了一些信息。
标签: postgresql csv