[R] Problem with Grep Under Loop

Gustaf Rydevik gustaf.rydevik at gmail.com
Mon Oct 6 14:05:51 CEST 2008


On Mon, Oct 6, 2008 at 1:37 PM, Gundala Viswanath <gundalav at gmail.com> wrote:
> Dear all,
>
> I have no problem with this individual grep command:
>
>> datk <- grep("XM_528056", source$V1)
>> dat2 <- source[datk,]
>> print(dat2)
>             V1      V2   V3 V4      V5      V6         V7
> 35995 XM_528056 panTro2 chr8  + 1775569 1896107 Chimpanzee
>
>
> BUT, when I run them under the loop it gives this error:
>
>
>> hm_acc <- c("XM_528056","AB002296")
>> for (i in 1:length(hm_acc)){
> +
> +    hm_acc_id <- as.character(hm_acc[i])
> +    print(hm_acc_id)
> +
> +    hm_allk <- grep(hm_acc_id,source$V1)
> +    hm_all <- source[hm_allk,]
> +
> +    print(hm_all)
> + }
>
> [1] "XM_528056"
> [1] V1 V2 V3 V4 V5 V6 V7
> <0 rows> (or 0-length row.names)
> [1] "AB002296"
> [1] V1 V2 V3 V4 V5 V6 V7
> <0 rows> (or 0-length row.names)
> .....
>
> What's wrong with my way of using grep?
> Please advice.
>
>
> - Gundala Viswanath
> Jakarta - Indonesia
>


Hi,

Could you give us a small sample of the "source" data, so that your
example is reproducible?
>From looking at your code, it seems as if you copied something wrong.
First you write:
 grep("XM_528056", source$V1)

,but when you print dat2 it seems as if your ID-code ("XM_528056") is
in V2, not V1.


regards,

Gustaf


-- 
Gustaf Rydevik, M.Sci.
tel: +46(0)703 051 451
address:Essingetorget 40,112 66 Stockholm, SE
skype:gustaf_rydevik



More information about the R-help mailing list