[R] Replace NaN with value from the same row

Jonathan Reardon jonathanreardon at outlook.com
Sun Oct 18 21:59:45 CEST 2015


Ok, i will do, thanks for your help.
J

> Subject: RE: [R] Replace NaN with value from the same row
> From: jdnewmil at dcn.davis.CA.us
> Date: Sun, 18 Oct 2015 12:55:14 -0700
> To: jonathanreardon at outlook.com
> CC: r-help at r-project.org
> 
> You should (re-)read the intro document that comes with R, "An Introduction to R". Pay particular attention to sections 2., 2.7, and 5.2.
> 
> The "idx" variable that I defined is a vector in the current environment (in your case apparently a local function environment). It is not a column in your data frame. You should look at it using the str function. (You might need to print the result of str, or use the debug capability of R to single-step through your function and then use str. Read the help at ?debug.)
> 
> The df[ idx, "offset" ] notation uses the logical indexing and string indexing concepts in section 2.7 to select a subset of the rows and one column of the data frame.
> ---------------------------------------------------------------------------
> 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.
> 
> On October 18, 2015 12:24:42 PM PDT, Jonathan Reardon <jonathanreardon at outlook.com> wrote:
> >Hi, Sorry to be a pain. Would you be kind enough to briefly explain
> >what the lines are doing?
> >From what i can gather, 'idx <- is.na( df$mean )' is making a new
> >column called 'idx', finds the NaN values and inserts the boolean TRUE
> >in the respective cell.
> >df[ idx, "mean" ] <- df[ idx, "offset" ]      << i am unsure what this
> >is doing exactly.
> >Jon
> >
> >
> >> Subject: RE: [R] Replace NaN with value from the same row
> >> From: jdnewmil at dcn.davis.CA.us
> >> Date: Sun, 18 Oct 2015 12:09:02 -0700
> >> To: jonathanreardon at outlook.com
> >> 
> >> The Posting Guide mentioned at the bottom of every email in the list
> >tells you that such an option is in your email software, which I know
> >nothing about. Most software lets you choose the format as part of
> >composing each email, but some software will let you set a default
> >format to use for each email address (so all your emails to e.g.
> >r-help at r-project.org will be plain text).
> >>
> >---------------------------------------------------------------------------
> >> 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.
> >> 
> >> On October 18, 2015 11:29:51 AM PDT, Jonathan Reardon
> ><jonathanreardon at outlook.com> wrote:
> >> >How do i send an email in plain text format and not HTML?
> >> >I tried:
> >> >idx <- is.na( df$mean )
> >> >df[ idx, "mean" ] <- df[ idx, "offset" ]
> >> >I got the error message:
> >> >In is.na(df$mean) : is.na() applied to non-(list or vector) of type
> >> >'NULL'
> >> >Jon
> >> >
> >> >> Subject: Re: [R] Replace NaN with value from the same row
> >> >> From: jdnewmil at dcn.davis.CA.us
> >> >> Date: Sun, 18 Oct 2015 11:06:44 -0700
> >> >> To: jonathanreardon at outlook.com; r-help at r-project.org
> >> >> 
> >> >> Next time send your email using plain text format rather than HTML
> >so
> >> >we see what you saw.
> >> >> 
> >> >> Try 
> >> >> 
> >> >> idx <- is.na( df$mean )
> >> >> df[ idx, "mean" ] <- df[ idx, "offset" ]
> >> >> 
> >> >> BTW there is a commonly-used function called df, so you might
> >improve
> >> >clarity by using DF for your temporary data frame name.
> >> >>
> >>
> >>---------------------------------------------------------------------------
> >> >> 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.
> >> >> 
> >> >> On October 18, 2015 10:48:14 AM PDT, Jonathan Reardon
> >> ><jonathanreardon at outlook.com> wrote:
> >> >> >Hi everyone,
> >> >> >A simple question, but i cannot figure this out.
> >> >> >
> >> >> >I have a data-frame with 4 columns (onset, offset, outcome,
> >mean):
> >> >> >onset offset outcome   mean8   72071  72503       1  7244615
> >142598
> >> >> >143030       1    NaN30 293729 294161       1 294080
> >> >> >For each 'NaN' in the mean column, i want to replace that NaN
> >with
> >> >the
> >> >> >'offset' value in the same row.
> >> >> >Intended outcome: 
> >> >> >onset offset outcome   mean8   72071  72503       1  7244615
> >142598
> >> >> >143030       1    14303030 293729 294161       1 294080
> >> >> >I have tried:
> >> >> > df$mean <- replace(df$mean, is.na(df$mean), df$offset)
> >> >> >but i get the error message: 'number of items to replace is not a
> >> >> >multiple of replacement length'. I'm assuming because this is
> >trying
> >> >to
> >> >> >insert the whole 'offset' column into my one NaN cell. Is this a
> >> >> >correct interpretation of the error message?
> >> >> >Can anyone tell me how to replace any mean row NaN's  with the
> >> >offset
> >> >> >value from that very same row?
> >> >> >I don't want to use any pasting etc as this needs to be used as
> >part
> >> >of
> >> >> >a function working over a large dataset than the one shown here.
> >> >> >Cheers
> >> >> >Jonathan 		 	   		  
> >> >> >	[[alternative HTML version deleted]]
> >> >> >
> >> >> >______________________________________________
> >> >> >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> >> >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.
> >> >> 
> >> > 		 	   		  
> >> 
> > 		 	   		  
> 
 		 	   		  
	[[alternative HTML version deleted]]



More information about the R-help mailing list