[R] help with dealing with integer(0) returns from grep used within a conditional loop
Mark Kimpel
mwkimpel at gmail.com
Sat Jul 4 19:56:24 CEST 2009
I am using grep to locate colnames to automate a report build and have
run into a problem when a colname is not found. The use of integer(0)
in a conditional statement seems to be a no no as it has length 0.
Below is a self-contained trivial example. I would like to get
something like "NA" or -1 for the position when it is not found OR
learn a way to use integer(0) or some "cast" of it in a logical
statement. Example, output, and sessionInfo follow. Thanks, Mark
####################################3
vec.1 <- c("a", "b", "c")
vec.2 <- c("a", "c", "d")
for (i in 1:length(vec.1)){
for (j in 1:length(vec.2)){
print(paste("i:", i, " j:", j, sep = ""))
pos <- grep(vec.1[i], vec.2[j])
if (pos > 0){
print("pos identified")
}
else{
print("pos not found")
}
}
}
################################
> #################################3
> vec.1 <- c("a", "b", "c")
> vec.2 <- c("a", "c", "d")
> for (i in 1:length(vec.1)){
+ for (j in 1:length(vec.2)){
+ print(paste("i:", i, " j:", j, sep = ""))
+ pos <- grep(vec.1[i], vec.2[j])
+ if (pos > 0){
+ print("pos identified")
+ }
+ else{
+ print("pos not found")
+ }
+ }
+ }
[1] "i:1 j:1"
[1] "pos identified"
[1] "i:1 j:2"
Error in if (pos > 0) { : argument is of length zero
No suitable frames for recover()
> ###############
> sessionInfo()
R version 2.9.1 (2009-06-26)
x86_64-unknown-linux-gnu
locale:
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=C;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C
attached base packages:
[1] tcltk stats graphics grDevices datasets utils methods
[8] base
other attached packages:
[1] sfsmisc_1.0-7 KEGG.db_2.2.11 GO.db_2.2.11
[4] rat2302.db_2.2.11 GOstats_2.10.0 RSQLite_0.7-1
[7] DBI_0.2-4 graph_1.22.2 Category_2.10.1
[10] AnnotationDbi_1.6.1 qvalue_1.18.0 limma_2.18.2
[13] affy_1.22.0 Biobase_2.4.1
loaded via a namespace (and not attached):
[1] affyio_1.12.0 annotate_1.22.0 genefilter_1.24.2
[4] GSEABase_1.6.1 preprocessCore_1.6.0 RBGL_1.20.0
[7] splines_2.9.1 survival_2.35-4 tools_2.9.1
[10] XML_2.5-3 xtable_1.5-5
------------------------------------------------------------
Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
Indiana University School of Medicine
15032 Hunter Court, Westfield, IN 46074
(317) 490-5129 Work, & Mobile & VoiceMail
"The real problem is not whether machines think but whether men do."
-- B. F. Skinner
More information about the R-help
mailing list