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.

Reply via email to