[R] Seeing negative numbers to zero
Don MacQueen
macq at llnl.gov
Sat Aug 8 23:55:45 CEST 2009
You probably have a working solution by now, from the other
responses, but s ince you're new to R I'd like to point out a few
things.
(1)
Using subset() to pull out just one column is overkill. Two simpler ways are
KN1 <- KN[ , 5] ## note the comma
KN1 <- KN[[5]]
And learning how to do indexing with the brackets [] is important.
Easier still would be if column 5 has a name, say "c5", then do
KN1 <- KN$c5
The dollar sign is used with lists also, and is very useful to be
familiar with.
(2)
The "c" around 5, i.e. c(5), was unnecessary. You only need c() when
you want to concatenate more than one value, as in c(5,7).
(3)
You asked to set the negatives in a single column in a dataframe to
zero -- that suggests (to me) that you want them set to zero within
the dataframe, as opposed to a new variable outside the dataframe. To
replace within the dataframe (and pretending that the column name is
in fact "c5"), then
KN$c5 <- ifelse( KN$c5 < 0, 0, KN$c5 )
will do it.
-Don
At 1:29 PM -0700 8/7/09, DebbieMB wrote:
>Hi,
>
>I am also new to R and I have a related question. I am trying to set
>negative values in a single column of a dataframe to zero and I can't seem
>to do it.
>
>I have tried:
>KN1<-subset(KN,select=c(5))
># Here I am selecting the column of the dataframe KN1 and assigning it the
>name KN2 - this step works
>KN2<-ifelse(KN1<=0,0,KN1)
># Here I am trying to set negative numbers to zero and leave all other
>numbers the same - this doesn't work
>
>Any help would be appreciated.
>
>Thanks,
>Debbie
>
>
>tonybreyal wrote:
>>
>> see ?ifelse
>>
>> you didn't specify what happens if a value is exactly zero in the dataset
>> and so i've just bundled it in with the negative case:
>>
>> x <- rnorm(20, 0, 1)
>> y<-ifelse(x<=0, 10, 5)
>>
>> HTH,
>> Tony Breyal
>>
>>
>> cmga20 wrote:
>>>
>>> Hi i am very new to R and I have been trying to change each individual
>>> piece of data in a data set to 10 if it is below 0 and 5 if it is above
>>> 0. I know this sounds very easy but i am struggling!!
>>>
>>
>>
>
>--
>View this message in context:
>http://*www.*nabble.com/For-loop-for-distinguishing-negative-numbers-tp24499872p24870518.html
>Sent from the R help mailing list archive at Nabble.com.
>
>______________________________________________
>R-help at 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.
--
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA
925-423-1062
More information about the R-help
mailing list