powerapps - Cómo seleccionar R data.table filas basadas en subcadena coinciden(a la SQL como)
powerapps ejemplos (2)
Tengo una tabla de datos con una columna de caracteres, y quiero seleccionar solo aquellas filas que contengan una subcadena. Equivalente a SQL WHERE x LIKE ''%substring%''
P.ej
> Months = data.table(Name = month.name, Number = 1:12)
> Months["mb" %in% Name]
Empty data.table (0 rows) of 2 cols: Name,Number
¿Cómo seleccionaría solo las filas donde Name contiene "mb"?
El operador %in%
no hace coincidencia parcial de cadenas; se usa para encontrar si existen valores en otro conjunto de valores, es decir, "a" %in% c("a","b","c")
Para hacer una coincidencia parcial de cadenas, debe usar la función grep()
. Puede usar grep
para devolver un índice de todas las columnas con "mb"
en él. Luego subconjunto las filas por ese índice
Months[grep("mb", Name)] # data.table syntax slightly easier
data.table
tiene una función like
.
Months[like(Name,"mb")]
Name Number
1: September 9
2: November 11
3: December 12
O, %like%
ve mejor:
> Months[Name %like% "mb"]
Name Number
1: September 9
2: November 11
3: December 12
Tenga en cuenta que %like%
y like()
usan grepl
(devuelve vector lógico) en lugar de grep
(devuelve ubicaciones enteras). Eso es para que pueda combinarse con otras condiciones lógicas:
> Months[Number<12 & Name %like% "mb"]
Name Number
1: September 9
2: November 11
y obtienes el poder de la búsqueda de expresión regular (no solo% o * wildcard) también.