Search code examples
rcountfrequency

How to count the frequency of a string for each row in R


I have a .txt file that looks something like this:

rs1 NC AB NC     
rs2 AB NC AA  
rs3 NC NC NC  
...  

For each row, I would like to count the frequencies of "NC", so that my output will be something like below:

rs1 2  
rs2 1  
rs3 3  
...

Can someone tell me how to do this in R or in Linux? Many thanks!


Solution

  • df$count <- rowSums(df[-1] == "NC")
    #    V1 V2 V3 V4 count
    # 1 rs1 NC AB NC     2
    # 2 rs2 AB NC AA     1
    # 3 rs3 NC NC NC     3
    

    We can use rowSums on the matrix that is created from this expression df[-1] == "NC".