[R] Word Frequency for each row

arun smartpink111 at yahoo.com
Sat Mar 9 17:19:51 CET 2013


HI,


library(stringr)
dat1<- read.table(text="
ID, Data 
 1,I love oranges and apples 
  2,Oranges are good so we must eat them and also drik oranges
  3,Apples are not that good like oranges so eat oranges
",sep=",",header=TRUE,stringsAsFactors=FALSE)

#If you need to count both "Oranges" and "oranges"


str_count(tolower(dat1$Data),"oranges")
#[1] 1 2 2

#otherwise

str_count(dat1$Data,"oranges")
#[1] 1 1 2


A.K.





________________________________
From: Sudip Chatterjee <sudipanalyst at gmail.com>
To: Rui Barradas <ruipbarradas at sapo.pt> 
Cc: arun <smartpink111 at yahoo.com>; R help <r-help at r-project.org> 
Sent: Saturday, March 9, 2013 11:01 AM
Subject: Re: [R] Word Frequency for each row


 Hi All, 

 This is very helpful, but my data looks like this 
 ID     Data 
 1     I love oranges and apples 
  2    Oranges are good so we must eat them and also drik oranges
  3    Apples are not that good like oranges so eat oranges

  & I would like to count # of oranges in each row. How do I go about it ? 

  Warm Regards


On Sat, Mar 9, 2013 at 4:20 AM, Rui Barradas <ruipbarradas at sapo.pt> wrote:

Hello,
>
>I had thought of something like that, but I'm not sure if the match must be exact. If not, grep seems better. More complicated and slower but more flexible.
>
>Rui Barradas
>
>Em 08-03-2013 21:32, arun escreveu:
>
>
>
>>
>>Hi,
>>You can also try:
>>    res2<-rowSums(x==word)
>>
>>res1<-sapply(where,length)
>>res1[]<- sapply(res1,as.numeric)
>>  identical(res1,res2)
>>#[1] TRUE
>>A.K.
>>
>>
>>
>>----- Original Message -----
>>From: Rui Barradas <ruipbarradas at sapo.pt>
>>To: Sudip Chatterjee <sudipanalyst at gmail.com>
>>Cc: r-help at r-project.org
>>Sent: Friday, March 8, 2013 4:26 PM
>>Subject: Re: [R] Word Frequency for each row
>>
>>Hello,
>>
>>I'm not sure I understand, but see if the following is an example of
>>counting occurences of a word in each row.
>>
>>
>>set.seed(1855)
>>x <- matrix(sample(LETTERS[1:5], 400, replace = TRUE), ncol = 4)
>>word <- "A"
>>where <- apply(x, 1, function(.x) grep(word, .x))
>>sapply(where, length)  # count them
>>
>>
>>Hope this helps,
>>
>>Rui Barradas
>>
>>Em 08-03-2013 16:04, Sudip Chatterjee escreveu:
>>
>>Hi All,
>>>
>>>    I am wondering if there is any examples where you can count your
>>>interested "word" in each row. For an example if  you have data with *'ID*'
>>>and '*write-up*' for 100 rows, how would I calculate the word frequency for
>>>each row ?
>>>
>>>     Thank you for all your time.
>>>
>>>     [[alternative HTML version deleted]]
>>>
>>>______________________________________________
>>>R-help at r-project.org mailing list
>>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>>and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
>>______________________________________________
>>R-help at r-project.org mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>and provide commented, minimal, self-contained, reproducible code.
>>
>>



More information about the R-help mailing list