我想导入一个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中为NULL)?
样本:
pts dreb oreb reb asts stl
11 NULL NULL 8 3 NULL
4 5 3 8 2 1
3 NULL NULL 1 1 NULL
数据类型是整数
鉴于/tmp/sample.csv
:
pts;dreb;oreb;reb;asts;stl
11;NULL;NULL;8;3;NULL
4;5;3;8;2;1
3;NULL;NULL;1;1;NULL
然后用这样的表:
CREATE TABLE player_allstar (pts integer, dreb integer, oreb integer, reb integer, asts integer, stl integer);
这个对我有用:
\copy player_allstar FROM '/tmp/sample.csv' WITH (FORMAT CSV, DELIMITER ';', NULL 'NULL', HEADER);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句