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:<jdnew...@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 <jonathanrear...@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: jdnew...@dcn.davis.ca.us >> Date: Sun, 18 Oct 2015 12:09:02 -0700 >> To: jonathanrear...@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@r-project.org will be plain text). >> >--------------------------------------------------------------------------- >> Jeff Newmiller The ..... ..... Go >Live... >> DCN:<jdnew...@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 ><jonathanrear...@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: jdnew...@dcn.davis.ca.us >> >> Date: Sun, 18 Oct 2015 11:06:44 -0700 >> >> To: jonathanrear...@outlook.com; r-help@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:<jdnew...@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 >> ><jonathanrear...@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@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. >> >> >> > >> > ______________________________________________ R-help@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.