【发布时间】:2015-01-30 05:46:14
【问题描述】:
我正在使用 H2O 进行一些分布式计算工作(通过 R 中的 h2o 包)。许多基本的 R 函数都存在,但我无法找到合适的替代 substr 函数。我确实可以访问sub 和gsub 函数,并希望可能使用某种形式的正则表达式作为解决方法。
我正在使用以下代码,但没有任何运气:
df1 <- data.frame(id = 1:10, var1 = seq(14102201,14103200, 100))
df1$var2 <- substr(df1$var1, 1,6)
df1$var3 <- gsub('\\d{1,8}','\\d{1,6}', df1$var1)
df1
df1$var2 中的输出是我正在寻找的。有什么建议吗?
编辑: 运行此代码:
library(h2o)
localH2O = h2o.init(nthreads = 2)
df1 <- data.frame(id = 1:10, var1 = seq(14102201,14103200, 100))
df1.hex <- as.h2o(localH2O , df1)
df1.hex$var2 <- substr(df1.hex$var1, 1, 6)
收到此消息:
> df1.hex$var2 <- substr(df1.hex$var1, 1, 6)
Error in as.character.default(x) :
no method for coercing this S4 class to a vector
【问题讨论】:
-
substr()有什么问题?它的干净做你想要的。您关心效率吗? -
@RichardScriven:它不适用于 H2O 对象。
-
只是好奇,它触发的错误是什么?我问是因为
gsub和substr使用相同的参数检查 -
@RichardScriven:见上面的编辑。