David, thank you very much. I changed little bit my code and now it works. The magic word was stringsASfactor=FALSE and i didn't realize at the first time.
Andrija On Mon, Mar 14, 2011 at 9:28 PM, David Winsemius <dwinsem...@comcast.net>wrote: > > On Mar 14, 2011, at 3:51 PM, andrija djurovic wrote: > > I would like to hide cells with values less the 10%, so "." or just "" >> doesn't make me any difference. Also I used apply combined with >> as.character: >> >> apply(df, 2, function(x) ifelse(as.character(x) < 10,".",x)) >> >> This is, probably not a good solution, but it works except that I lose >> row names and because of that I was wondering if there is some other way to >> do this. >> >> Anyway thank you both i will try to do this before combining numbers and >> strings. >> > > I saw your later assertion that it didn't work which surprised me. My > version of your data followed my advice not to use factors and your effort > did succeed when the columns were character rather than factor. I put back > the row numbers by coercing back to a data.frame. `apply` returns a matrix. > > > > df<-data.frame(q1=c(0,0,33.33,"check"),q2=c(0,33.33," check",9.156), > + q3=c("check","check",25,100),q4=c(7.123,35,100,"check"), > stringsAsFactors=FALSE) > > as.data.frame(apply(df, 2, function(x) ifelse(as.character(x) < > 10,".",x))) > q1 q2 q3 q4 > 1 . . check 7.123 > > 2 . 33.33 check 35 > 3 33.33 . 25 100 > 4 check 9.156 100 check > > There is a danger of using character collation in that if there are any > leading characters in those strings that are below "1" such as a <blank> or > any other punctuation, they will get "dotted". > > > "," < "1" > [1] TRUE > > "." < "1" > [1] TRUE > > "-" < "1" > [1] TRUE > > And "1.check" would also get "dotted" > > > "1.check" < 10 > [1] TRUE > > > >> Andrija >> >> On Mon, Mar 14, 2011 at 8:11 PM, David Winsemius <dwinsem...@comcast.net> >> wrote: >> >> On Mar 14, 2011, at 2:52 PM, andrija djurovic wrote: >> >> Hi R users, >> >> I have following data frame >> >> df<-data.frame(q1=c(0,0,33.33,"check"),q2=c(0,33.33,"check",9.156), >> q3=c("check","check",25,100),q4=c(7.123,35,100,"check")) >> >> and i would like to replace every element that is less then 10 with . >> (dot) >> in order to obtain this: >> >> q1 q2 q3 q4 >> 1 . . check . >> 2 . 33.33 check 35 >> 3 33.33 check 25 100 >> 4 check . 100 check >> >> I had a lot of difficulties because each variable is factor. >> >> Right, so comparisons with "<" will throw an error. I would sidestep the >> factor problem with stringsAsFactors=FALSE in the data.frame call. You might >> want to reconsider the "." as a missing value. If you are coming from a SAS >> background, you should try to get comfortable with NA or NA_character as a >> value. >> >> >> df<-data.frame(q1=c(0,0,33.33,"check"),q2=c(0,33.33,"check",9.156), >> q3=c("check","check",25,100),q4=c(7.123,35,100,"check"), >> stringsAsFactors=FALSE) >> >> is.na(df) <- t(apply(df, 1, function(x) as.numeric(x) < 10)) >> >> Warning messages: >> 1: In FUN(newX[, i], ...) : NAs introduced by coercion >> 2: In FUN(newX[, i], ...) : NAs introduced by coercion >> 3: In FUN(newX[, i], ...) : NAs introduced by coercion >> 4: In FUN(newX[, i], ...) : NAs introduced by coercion >> > df >> q1 q2 q3 q4 >> 1 <NA> <NA> check <NA> >> 2 <NA> 33.33 check 35 >> >> 3 33.33 check 25 100 >> 4 check <NA> 100 check >> >> >> Could someone help me with this? >> >> Thanks in advance for any help. >> >> Andrija >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@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. >> >> David Winsemius, MD >> West Hartford, CT >> >> >> > David Winsemius, MD > West Hartford, CT > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.