Mira estos ejemplos: > library(stringr) > dataset <- c("corn", "cornmeal", "corn on the cob", "meal") > my_data <- c('corn', 'corn on') > > # for mere occurences of the pattern: > str_count(dataset, "corn on") [1] 0 0 1 0 > # [1] 1 1 1 0 > > # for occurences of the word alone: > str_count(dataset, "\\bcorn\\b") [1] 1 0 1 0 > # [1] 1 0 1 0 > > # summing it up > sum(str_count(dataset, "corn")) [1] 3 > > str_count(dataset, my_data) [1] 1 0 1 0 >
Que son una adaptación de lo que se cuenta aquí: https://stackoverflow.com/questions/7782113/count-word-occurrences-in-r Si no es exactamente, entonces ya haría falta que pusieras varios ejemplos de lo que esperas por contemplar todas las variantes que existen con tus datos y que quieres detectar. Gracias, Carlos. El 23 de mayo de 2018, 8:42, JCMld <jc...@carmonarocha.com> escribió: > Hola, > > Se me ocurre lo siguiente, no sé si es lo que buscas. > > Supongamos que tienes la lista de palabras a cotejar en p y en t el las > variables de texto donde quieres saber en cada una cuántas palabras de p > aparecen. Si hacemos: > > > p<-c("perro","gato","pez") > t<-c("un perro","un perro y un gato y otro perro","un gato y un pez","un > perro-gato y un pez") > > unlist(lapply(t,function(s) sum(unlist(lapply(p,function(x) > length(grep(x,s))))))) > > obtenemos > [1] 1 2 2 3 > > Es decir, en t[1] aparece 1 de las palabras (perro), en t[2] aparecen 2 > (perro y gato), en t[3] 2 (gato y pez) y en t[4] las 3. > Si los textos los tienes en una variable de un data.frame entonces deberás > sustituirlo por tu la columna del data frame, algo del estilo df$texto, en > el código. > > Saludos, > Juan Carmona. > > > -----Mensaje original----- > De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nombre de > miriam.alz...@unavarra.es > Enviado el: miércoles, 23 de mayo de 2018 2:29 > Para: Carlos Ortega > CC: r-help-es > Asunto: Re: [R-es] Pasar palabras de una lista a una variable del dataframe > > Muchas gracias Carlos, > > Me da error al hacerlo. Mi variable donde quiero que localice las palabras > de la lista tiene más de una palabra, no se si puede ser por eso. > > Gracias > El Mar, 22 de Mayo de 2018, 20:15, Carlos Ortega escribió: > > Hola, > > > > Aquí tienes un ejemplo (reproducible)... > > > > #----------------------- > >> # Generar nombres de mujer > >> library(randNames) > >> val_tmp <- rand_names(1000, nationality = 'ES', gender = 'female') > >> head(val_tmp) > > # A tibble: 6 x 25 > > gender email dob registered phone cell nat name.title > > name.first name.last location.street location.city location.state > > <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> > > <chr> <chr> <chr> <chr> <chr> > > 1 female angeles.… 1958-0… 2004-05-06 … 932-2… 683-… ES ms > > angeles vega 3550 calle del … lugo cataluña > > 2 female esther.s… 1947-0… 2004-04-16 … 982-5… 674-… ES mrs > > esther santos 9690 calle de l… toledo islas baleares > > 3 female eva.parr… 1967-0… 2013-04-02 … 902-3… 644-… ES miss eva > > parra 2484 calle de t… la palma melilla > > 4 female sandra.p… 1957-0… 2005-03-28 … 919-8… 642-… ES ms > > sandra prieto 9084 calle de á… parla castilla y le… > > 5 female veronica… 1952-0… 2004-03-20 … 959-4… 609-… ES mrs > > veronica moreno 9672 calle del … elche la rioja > > 6 female alejandr… 1973-0… 2005-03-28 … 907-9… 680-… ES miss > > alejandra saez 1507 calle de p… san sebastián castilla la m… > > # ... with 12 more variables: location.postcode <int>, login.username > > <chr>, login.password <chr>, login.salt <chr>, login.md5 <chr>, > > # login.sha1 <chr>, login.sha256 <chr>, id.name <chr>, id.value <chr>, > > picture.large <chr>, picture.medium <chr>, > > # picture.thumbnail <chr> > >> val_end <- val_tmp$name.first > >> > >> # Como ejemplo elijo los 10 primeros de esos nombres. > >> my_lista <- val_end[1:10] > >> my_lista > > [1] "angeles" "esther" "eva" "sandra" "veronica" > > "alejandra" "irene" "lidia" "vanesa" "mercedes" > >> > >> # Hago efectiva la comparación. > >> library(stringr) > >> res_coincide <- str_match_all(val_end, my_lista) > >> res_end <- table(unlist(res_coincide)) > >> res_end > > > > alejandra angeles esther eva irene lidia mercedes > > sandra vanesa veronica > > 2 3 3 1 2 1 1 > > 3 2 1 > >> > > #----------------------- > > > > > > Gracias, > > Carlos. > > > > El 22 de mayo de 2018, 18:45, Miriam Alzate <miriam.alz...@unavarra.es> > > escribió: > > > >> Buenas tardes, > >> > >> Tengo una lista de 600 palabras. Quiero saber cuántas de esas palabras > >> aparecen en cada observación de mi variable "texto". La variable "texto" > >> es > >> de tipo caracter. ¿Cómo lo haríais? > >> > >> Muchas gracias. > >> > >> _______________________________________________ > >> R-help-es mailing list > >> R-help-es@r-project.org > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > >> > > > > > > > > -- > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es