try:

yr1bp$TreeTag[1501]<-sub("1.00", "1", as.character(yr1bp$TreeTag[1501]))

Since it appears that TreeTag is a factor.  This can be verified with 'str'.


On Fri, Jun 6, 2008 at 11:22 PM, john.polo <[EMAIL PROTECTED]> wrote:

> Daniel Folkinshteyn wrote:
>
>> works for me:
>> > sub('1.00', '1', '1.00E-20')
>> [1] "1E-20"
>>
> when i input what you wrote, i get the same result. but that doesn't change
> the value for TreeTag at row 1501, it's just floating around in space. if i
> try it for yr1bp$TreeTag[1501], which is 1.00E-20 i get this:
>
> > yr1bp$TreeTag[1501]<-sub("1.00", "1", yr1bp$TreeTag[1501])
> Warning message:
> In `[<-.factor`(`*tmp*`, 1501, value = "1E-20") :
>  invalid factor level, NAs generated
>
> and then 1501 turns into:
> 1501    <NA>   2001 adult 32.5
>
> which is less useful than the way it was originally input. thanks for the
> suggestion.
>
> john
>
> finally, if all your target strings are of the form 1.00E-20, you could sub
>> the whole thing with a more general regexp:
>>
>> sub("([0-9])(\.[0-9]{2})(.*)", "\\1\\3", yourvector)
>> (it matches a digit, followed by a dot and two digits, followed by
>> "anything else", and takes out the "dot and two digits" bit in the
>> replacement, in the whole vector.)
>>
> thanks for that suggestion. it could come in handy.
>
>
>
> on 06/06/2008 03:25 PM john.polo said the following:
>>
>>> dear R users,
>>>
>>> the data frame (read in from a csv) looks like this:
>>>       TreeTag     Census    Stage     DBH
>>> 1     CW-W740   2001 juvenile     5.8
>>> 2     CW-W739   2001 juvenile     4.3
>>> 3     CW-W738   2001 juvenile     4.7
>>> 4     CW-W737   2001 juvenile     5.4
>>> 5     CW-W736   2001 juvenile     7.4
>>> 6     CW-W735   2001 juvenile     5.4
>>> ...
>>> 1501 1.00E-20   2001  adult      32.5
>>>
>>> i would like to change values under the TreeTag column. as the last value
>>> shows, some of the tags have decimals followed by 2 decimal places. i just
>>> want whole numbers, i.e. not 1.00E-20, but 1E-20. i have a rough
>>> understanding of regexp and grepped all the positions that have the
>>> inappropriate tags. i tried sub() a couple of different ways, like
>>> yr1bp$TreeTag[1501]<-sub("1.00", "1", yr1bp$TreeTag[1501])
>>> and after turning yr1bp$TreeTag[1501] into <NA>,
>>> yr1bp$TreeTag[1501]<-sub("", "1E-20", yr1pb$TreeTag[1501])
>>> and
>>> sub("", "1E-20", yr1bp$TreeTag[1501])
>>> but it's not working. i guess it has something to do with the data.frame
>>> characteristics i'm not aware of or don't understand. would i somehow have
>>> to tear apart the columns, edit them, and then put it back together? not
>>> that i know how to do that, but i'm wondering out loud.
>>>
>>> john
>>>
>>> ______________________________________________
>>> 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<http://www.r-project.org/posting-guide.html>
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
> ______________________________________________
> 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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

        [[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