[R] Help with Loops

Sarah Goslee sarah.goslee at gmail.com
Thu May 13 17:00:04 CEST 2010


You don't need a loop for this, I think. Since you don't provide an
example it's hard to know how your data are set up, but look at this:

> FULLSAMP <- data.frame(A = 1:10, B=letters[1:10])
> TESTSAMP <- data.frame(A = c(2,4,5,8), C=1:4)
> FULLSAMP
    A B
1   1 a
2   2 b
3   3 c
4   4 d
5   5 e
6   6 f
7   7 g
8   8 h
9   9 i
10 10 j
> TESTSAMP
  A C
1 2 1
2 4 2
3 5 3
4 8 4
> FULLSAMP[FULLSAMP$A %in% TESTSAMP$A,]
  A B
2 2 b
4 4 d
5 5 e
8 8 h

Sarah

On Thu, May 13, 2010 at 10:49 AM, Amit Patel <amitrhelp at yahoo.co.uk> wrote:
> Hi
>
> I have tried many attempts but cant get the loop right, as I am not a strong programmer. What I am basically trying to do is compare 2 spreadsheets. The problem is that one of them only contain a portion of the overall data (TESTSAMP), where the other has a full datasetFULLSAMP. From the complete set I would like to remove the rows of data which are not in the TESTSAMP. Column 1 contains the sample numbers which can be used to identify samples. Does anyone have any suggestions?
>
> I have tried various things like double loops and so on, but I am sure there is an easier way or function to do this.
>
> i tried this method, but Im not sure how to only keep looping until a match is found. I dont understand how repeat loops work in R.
>
> for (i in 1:length(FULLSAMP[,1])) {
>
> if (FULLSAMP[i,1] != TESTSAMP[i,1]) {
> FULLSAMP <- FULLSAMP[-i,]
> }
>
>
> Thanks in advance
>
>
>



-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list