will used the only multiple length ifelse has for first else conditions and r function if-statement hashtag

used - nested if else in r



FunciĆ³n Hashtag Extract en R ProgramaciĆ³n (3)

  1. Las expresiones regulares de Hashtag no son tan simples
  2. No estoy seguro de que comprenda las "reglas" comúnmente aceptadas para los hashtags
  3. No creo que str_extract_all() devuelva lo que crees que es
  4. Solo use stringi stringr funciones stringr están construidas encima de
  5. La gente necesita dejar de analizar tweets

Esto debería manejar la mayoría de los casos, si no todos:

get_tags <- function(x) { # via http://stackoverflow.com/a/5768660/1457051 twitter_hashtag_regex <- "(^|[^&//p{L}//p{M}//p{Nd}_/u200c/u200d/ua67e/u05be/u05f3/u05f4/u309b/u309c/u30a0/u30fb/u3003/u0f0b/u0f0c/u00b7])(#|/uFF03)(?!/uFE0F|/u20E3)([//p{L}//p{M}//p{Nd}_/u200c/u200d/ua67e/u05be/u05f3/u05f4/u309b/u309c/u30a0/u30fb/u3003/u0f0b/u0f0c/u00b7]*[//p{L}//p{M}][//p{L}//p{M}//p{Nd}_/u200c/u200d/ua67e/u05be/u05f3/u05f4/u309b/u309c/u30a0/u30fb/u3003/u0f0b/u0f0c/u00b7]*)" stringi::stri_match_all_regex(x, hashtag_regex) %>% purrr::map(~.[,4]) %>% purrr::flatten_chr() } tests <- c("#teste_teste //underscore accepted", "#teste-teste //Hyphen not accepted", "#leof_gfg.sdfsd //dot not accepted", "#f34234@45#6fgh6 // @ not accepted", "#leo#leo2#asd //followed hastag without space ", "#6663 // only number accepted", "_#asd_ // hashtag can''t start or finish with underscore", "-#sdfsdf- // hashtag can''t start or finish with hyphen", ".#sdfsdf. // hashtag can''t start or finish with dot", "#leo_leo__leo__leo____leo // decline followed underline") get_tags(tests) ## [1] "teste_teste" "teste" ## [3] "leof_gfg" "f34234" ## [5] "leo" NA ## [7] NA "sdfsdf" ## [9] "sdfsdf" "leo_leo__leo__leo____leo" your_string <- "#letsdoit #Tonewbeginnign world is on a new#route" get_tags(your_string) ## [1] "letsdoit" "Tonewbeginnign"

Tendrá que modificar la función si necesita que cada grupo de hashtags se agrupe con cada vector de entrada, pero realmente no proporcionó muchos detalles sobre lo que realmente está tratando de lograr.

Estoy tratando de crear una función de extracción de hashtag en R. Esta función extraerá un hashtags de una publicación, si hay alguna, otra dará un espacio en blanco. Mi función es como

hashtag_extract= function(text){ match = str_extract_all(text,"#//S+") if (match) { return match }else{ return ''''}} String="#letsdoit #Tonewbeginnign world is on a new#route

Pero mi función no funciona, mostrándome toneladas de errores. Como el primer error es

Error: unexpected symbol in: " if (match) { return match"

entonces quiero aplicarlo como

hashatag_extract(string)

y la respuesta debería venir como

#letsdoit ##Tonewbeginnign #route

Y eventualmente usaré sapply para aplicar esta función en toda la columna, por eso la parte If es importante. Por favor, ignore mi sangría para R, ya que no es importante para R, pero cada sugerencia será útil


@manu sharma, diría que no necesitas postularte si no está dentro. Permita que las filas que no coinciden tomen los valores como ''NA''. Y después de aplicar la función, la cambia a blanco. Espero que mi código te ayude:

aaa <- readLines("C://MY_FOLDER//NOI//file2sample.txt") ttt <- function(x){ r <- sapply(x, function(x) { matches <- str_match(x,"#//w+//s+")}) r } y <-ttt(aaa) y[is.na(y)]=''''


Gracias a todos por toda la ayuda, conseguí que funcionara de alguna manera, pensé que era casi similar a la respuesta de Shalini 1. reemplazar todas las NA en el mensaje

message[is.na(message)]=''abc''

2.función para extraer los Hashtags

hashtag_extrac= function(text){ match = str_extract_all(text,"#//S+") if (match!= "") { match } else { '''' }}

aplicando función en columna completa

hashtags= sapply(message, hashtag_extrac)