【发布时间】:2011-07-27 13:48:40
【问题描述】:
我正在使用 SQL 和 R 开发文本挖掘解决方案。
首先我从我的 SQL 选择中将数据导入 R,然后用它进行数据挖掘。
这是我得到的:
rawData = sqlQuery(dwhConnect,sqlString)
a = data.frame(rawData$ENNOTE_NEU)
如果我做一个
a[[1]][1:3]
你看到了结构:
[1] lorem ipsum li ld ee wö wo di dd
[2] la kdin di da dogs chicken
[3] kd good i need some help
现在我想用我自己的字典做一些数据清理。 一个例子是将 li 替换为 lorem ipsum 和 kd 以及 kdin 替换为 kunde
我的问题是如何为整个数据框做到这一点。
for(i in 1:(nrow(a)))
{
a[[1]][i]=gsub( " kd | kdin " , " kunde " ,a[[1]][i])
a[[1]][i]=gsub( " li " , " lorem ipsum " ,a[[1]][i])
...
}
有效,但对于大量数据来说速度很慢。
有没有更好的方法来做到这一点?
为船长干杯
【问题讨论】:
-
可能是一个尝试的选项:直接在 SQL 中执行此操作或从 R 调用 SQL 命令?
-
SQL 和 gsub 的想法到目前为止都很好。如果速度很重要,您还可以在 Rcpp 中编写自定义函数。