R - 用 NULL 替换 NA 以输入到 PostgreSQL

标签 r postgresql

我正在尝试用 NULL 替换 NA 值。原因是,我需要将 numeric 值输入 PostgreSQL 数据库并不断收到错误:ERROR: Invalid input syntax for type numeric ""

我尝试将值设置为 NA、空字符串 ''"NULL"(作为字符串)。这些都不起作用。

df = data.frame(x=c('a', 'b', 'c', 'd', 'e'), y=c(1, 2, 3, NA, 5))
df[is.na(df)] = "NULL"
df[is.na(df)] = ""

最佳答案

如果您的表使用的是 numeric,那么将 NA 转换为 NaN 应该可行。 numeric,以及decimalfloat 支持NaN(参见Postgres Documentation)。

如果您的数据类型不同,例如integer,您可以使用nullifNaN 强制为NULL :

nullif(y, 'NaN')

关于R - 用 NULL 替换 NA 以输入到 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31900079/

相关文章:

重新排序列 : split the second half of columns up so that they come as every second

r - SparkR 中的“最后一个”函数

postgresql - Golang 在搜索 Postgres 时崩溃

r - 使用不平衡数据进行单向重复测量方差分析

r - 使用 formattable 根据另一列的值对一列进行着色

r - 生成数据以在 R 中创建绘图

java - 为什么 Hibernate 每次请求都创建新的数据库连接?

mysql - 如何在 Rails 中正确指定多列索引

java - Windows OpenNMS - PostgreSQL/Java 数据库问题

sql - PostgreSQL 如果存在则删除 View