Я использую H2O для некоторых распределенных вычислительных работ (через пакет h2o
в R). Многие из базовых функций R присутствуют, но я не могу найти подходящую замену для функции substr
. У меня есть доступ к функциям sub
и gsub
и надеялся, что в качестве обходного пути можно использовать некоторую форму регулярного выражения.R use gsub as substr
Я использую следующий код, но не имея каких-либо удачи:
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
является то, что я ищу. Какие-либо предложения?
EDIT: Выполнение этого кода:
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. – screechOwl
Просто любопытно, что это за ошибка? Я спрашиваю, потому что 'gsub' и' substr' используют те же проверки аргументов –