Skip to content

Hash Table - Select and Change Data iniside Matrix

10 messages · Rantony, Jeff Newmiller, arun +2 more

#
Hi, 

Here i have been a matrix like this, 

*NAME    AGE   PALCE                TRUE/FALSE*
ABC         20      INDIA 
XYZ         30       FRANCE 
PQR        40       USA 
MNO     30        KENIYA 
DEF        25        AUSTRALIA 

Here,* TRUE/FALSE*  Column containing empty values. 

So my requirement what is , need to change all the *TRUE/FALSE *column value
into "*TRUE*" where *AGE = 30*. 
Note :- i *dont want* to use* any loop *and do. Main intension is avoid
loop,bcz there is a bulk of data. 

Final Matrix should be like this 
*NAME    AGE   PALCE                TRUE/FALSE*
ABC         20      INDIA                                                                       
XYZ         30       FRANCE                     TRUE 
PQR        40       USA                                                                         
MNO     30        KENIYA                      TRUE 
DEF        25        AUSTRALIA 


Immediate Help Requied.  

Your, 
Antony.


--
View this message in context: http://r.789695.n4.nabble.com/Hash-Table-Select-and-Change-Data-iniside-Matrix-tp4631312.html
Sent from the R help mailing list archive at Nabble.com.
#
There aren't "empty" values in R..... nor is it likely you have a
matrix of this form, but perhaps a data frame.

Perhaps this works for you,

If "dat" is the name of your data.frame,

dat[dat$AGE == 30,"TRUE/FALSE"] <- TRUE

Next time do use dput() to give a reproducible example of your data --
if it's very large, just limit it to the first 30 rows or so with
dput(head(dats, 30))

Michael
On Fri, May 25, 2012 at 9:43 AM, Rantony <antony.akkara at ge.com> wrote:
#
Read help for the ifelse function. Type ?ifelse at the command line.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.
Rantony <antony.akkara at ge.com> wrote:

            
#
Hi Antony,

Try this,
da<-read.table(text="NAME??? AGE??????? PLACE??? 
ABC??????? 20????? INDIA
XYZ??????? 30????? FRANCE
PQR??????? 40????? USA
MNO??????? 30?????? KENYA
DEF??????? 25??????? AUSTRALIA", header=TRUE,stringsAsFactors=FALSE)
?if(x==30)
?TRUE
?else
?FALSE
?}
da3<-sapply(da$AGE,da2)
TRUE_FALSE<-da3
da1<-data.frame(da,TRUE_FALSE)
?da1
? NAME AGE???? PLACE TRUE_FALSE
1? ABC? 20???? INDIA????? FALSE
2? XYZ? 30??? FRANCE?????? TRUE
3? PQR? 40?????? USA????? FALSE
4? MNO? 30???? KENYA?????? TRUE
5? DEF? 25 AUSTRALIA????? FALSE


A.K.






----- Original Message -----
From: Jeff Newmiller <jdnewmil at dcn.davis.ca.us>
To: Rantony <antony.akkara at ge.com>; r-help at r-project.org
Cc: 
Sent: Friday, May 25, 2012 10:25 AM
Subject: Re: [R] Hash Table - Select and Change Data iniside Matrix

Read help for the ifelse function. Type ?ifelse at the command line.
---------------------------------------------------------------------------
Jeff Newmiller? ? ? ? ? ? ? ? ? ? ? ? The? ?  .....? ? ?  .....? Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>? ? ? ? Basics: ##.#.? ? ?  ##.#.? Live Go...
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Live:?  OO#.. Dead: OO#..? Playing
Research Engineer (Solar/Batteries? ? ? ? ? ? O.O#.? ? ?  #.O#.? with
/Software/Embedded Controllers)? ? ? ? ? ? ?  .OO#.? ? ?  .OO#.? rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.
Rantony <antony.akkara at ge.com> wrote:

            
______________________________________________
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.
#
Well... (inline)
On Fri, May 25, 2012 at 11:19 AM, arun <smartpink111 at yahoo.com> wrote:
NO! if is **not** vectorized; this should throw a warning.
This is poor R programming practice on several different levels. By
adhering to the R paradigm of vectorization, it can be made way
simpler and more transparent. Also note that "TRUE/FALSE" is
potentially problematic as a column name; try to adhere to standard R
names to avoid "infelicities."

Anyway, simply:

da$newColumn <- da$AGE ==30

or, alternatively,

da$newColumn <- with(da, AGE == 30)

Cheers,
Bert

  
    
2 days later
#
Greater than or equal to is simply >= like most languages.

For more complicated questions, simply combine booleans:

E.g., between 5 and 25

with(dat, (AGE < 25) & (AGE > 5))

and so on.

Michael
On Mon, May 28, 2012 at 9:34 AM, Rantony <antony.akkara at ge.com> wrote:
#
It would behoove you to read some introductory materials -- use
help.start() to get be provided with the standard "An Introduction to
R."

More generally, the help system can be accessed by typing help("name")
or, as a shortcut, ?name. In your case, help("&") would lead to the
correct answer.

The OR operator follows the standard of most programming languages --
the "pipe" operator, | . On my keyboard (mac) it's typed by pressing
shift+\ -- I forget where it is for a PC.

Michael
On Tue, May 29, 2012 at 5:40 AM, Rantony <antony.akkara at ge.com> wrote: