gpt4 book ai didi

r - 将 R 数据框写入 SQL Server 数据库的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-04 16:10:04 26 4
gpt4 key购买 nike

我有一个 R 代码数据框,正在尝试将其写入 SQL Server 中的现有表。数据框仅包含表中约 12 列中的 8 列,并且数据框中的列与表中的列的顺序不同。 SQL Server 提示是因为缺少列以及其他列的数据类型错误(例如 Varchar(字符串)与日期等)。

我正在查看 RODBC 和 DBI 库中的函数,以将数据帧写入 SQL Server 表,但很明显,我必须按照表预期的顺序排列数据帧列,并将 null 位置放置缺失列的持有人。

我有什么选择?

提前感谢您提供的任何帮助。

最佳答案

因此,RODBC 包中显而易见的选择是 sqlSave(connection,'R dataframe','SQL Table'),但是正如您所知,这不起作用。在这些情况下,我使用 sqlQuery() 编写 INSERT INTO 语句。sqlQuery(connection, "INSERT INTO sqltable (B,C) VALUES ('i1',j1),('i2',j2)...")

示例:我们有一个名为 sqltable 的 SQL 表,其中包含 A、B 和 C 列。我们有一个名为 Rdf 的 R 数据框,其中包含 B 和 C 列。 B 属于字符类,C 属于数字类。

首先需要在任何字符字段周围放置单引号,因为我们将使用 INSERT INTO 和 SQL,就像在任何文本周围放置单引号一样 Rdf$B <- paste("'",Rdf$B,"'",sep="")

接下来我们需要格式化数据,使其看起来像插入语句的 VALUES 部分 formatRdf <- do.call(paste,c(Rdf,sep=","))

valuesRdf <- paste("(",paste(formatRdf,collapse="),("),")",sep="")

准备 INSERT 语句的最后一步

sql_statement <- paste("INSERT INTO sqltable (B,C) VALUES ",valuesRdf,sep="")

现在使用sqlQuery

sqlQuery(connection,sql_statement)

关于r - 将 R 数据框写入 SQL Server 数据库的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35344143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com