小编use*_*943的帖子

R快速XML解析

目前在R中将XML文件转换为数据帧的最快方法是什么?

XML看起来像这样:(注意 - 并非所有行都包含所有字段)

  <row>
    <ID>001</ID>
    <age>50</age>
    <field3>blah</field3>
    <field4 />
  </row>
  <row>
    <ID>001</ID>
    <age>50</age>
    <field4 />
  </row>
Run Code Online (Sandbox Code Playgroud)

我尝试了两种方法:

  1. XML库中的xmlToDataFrame函数
  2. 这里发布面向速度的xmlToDF功能

对于8.5 MB文件,1.6k"行"和114"列",xmlToDataFrame花了25.1秒,而xmlToDF在我的机器上花了16.7秒.

与python XML解析器(例如.xml.etree.ElementTree)相比,这些时间非常大,能够在0.4秒内完成工作.

在R中有没有更快的方法来做到这一点,或者R中是否存在一些阻碍我们加快速度的基础?

对此有所了解真的很有帮助!

xml r

5
推荐指数
1
解决办法
2653
查看次数

以 mysql REPLACE 方式将 R data.frame 插入到 mysql 表中

(对不起,如果这是非常基本的,我只是无法弄清楚)

我有一个表 t 坐在一个 mysql 数据库中,它看起来像这样:(名称是主键)

数据库中的当前表

Name   Balance
 Bob      100
 Ted      150
 Carl     130
Run Code Online (Sandbox Code Playgroud)

我在 R 中也有一个 data.frame 反映了余额的变化

R中的数据框

Name   Balance
 Bob      90
 Ted      170
 Bill     50
Run Code Online (Sandbox Code Playgroud)

我想执行相当于 mysql替换的操作,以便更新我的表以反映新的余额

数据库中的所需表

Name   Balance
 Bob      90
 Ted      170
 Carl     130
 Bill     50
Run Code Online (Sandbox Code Playgroud)

我目前正在使用 RMySQL 包 - 我尝试使用 dbWriteTable 执行此操作,但无法使其正常工作。

Eg1(“插入”)

dbWriteTable(dbConnection, 'tableName', df, row.names=F, append=T)
Run Code Online (Sandbox Code Playgroud)

生产

Name   Balance
 Bob      100
 Ted      150
 Carl     130
 Bill     50
Run Code Online (Sandbox Code Playgroud)

Eg2(“覆盖”)

dbWriteTable(dbConnection, 'tableName', df, row.names=F, append=F, overwrite=T)
Run Code Online (Sandbox Code Playgroud)

生产

Name   Balance …
Run Code Online (Sandbox Code Playgroud)

mysql r rmysql

5
推荐指数
1
解决办法
2659
查看次数

标签 统计

r ×2

mysql ×1

rmysql ×1

xml ×1