Я только учусь R для науки данных, и использовать эти несколько строк для извлечения числа из данных (с использованием data.table):Как эффективно извлекать числа из текста в колонке data.table в R
library(stringr)
library(data.table)
prods[, weights := str_extract(NombreProducto, "([0-9]+)[kgKG]+")]
prods[, weights := str_extract(weights, "[0-9]+")]
prods[, weights := as.numeric(weights)]
Вот пример поля «NombreProducto» Я хочу, чтобы извлечь номера/текст из:
"Tostado 210g CU BIM 1182"
есть простой способ сделать это в сжатом однострочнике? Я попробовал
prods[, weights := str_match(NombreProducto, "([0-9]+)[kgKG]+")[2]]
, но он установил все в столбце «веса» для первого результата из таблицы данных. Кстати, это из конкурса Grupo Bimbo Kaggle.
Непонятно, что вы действительно хотели. – akrun
Я хочу первый фрагмент кода в одной строке. – wordsforthewise
Попробуйте 'prods [, weight: = as.numeric (str_extract (NombreProducto)" ([0-9] +) (? = (Kg | KG)) "))]' – akrun