[R] [FORGED] Re: remove

Rainer Schuermann Rainer.Schuermann at gmx.net
Sun Feb 12 18:17:05 CET 2017


I may not be understanding the question well enough but for me

df[ df[ , "first"]  != "Alex", ]

seems to do the job:

  first week last 

Rainer




On Sonntag, 12. Februar 2017 19:04:19 CET Rolf Turner wrote:
> 
> On 12/02/17 18:36, Bert Gunter wrote:
> > Basic stuff!
> >
> > Either subscripting or ?subset.
> >
> > There are many good R tutorials on the web. You should spend some
> > (more?) time with some.
> 
> Uh, Bert, perhaps I'm being obtuse (a common occurrence) but it doesn't 
> seem basic to me.  The only way that I can see how to go at it is via
> a for loop:
> 
> rdln <- function(X) {
> # Remove discordant last names.
>      ok <- logical(nrow(X))
>      for(nm in unique(X$first)) {
>          xxx <- unique(X$last[X$first==nm])
>          if(length(xxx)==1) ok[X$first==nm] <- TRUE
>      }
>      Y <- X[ok,]
>      Y <- Y[order(Y$first),]
>      rownames(Y) <- 1:nrow(Y)
>      Y
> }
> 
> Calling the toy data frame "melvin" rather than "df" (since "df" is the 
> name of the built in F density function, it is bad form to use it as the 
> name of another object) I get:
> 
>  > rdln(melvin)
>    first week last
> 1   Bob    1 John
> 2   Bob    2 John
> 3   Bob    3 John
> 4  Cory    1 Jack
> 5  Cory    2 Jack
> 
> which is the desired output.  If there is a "basic stuff" way to do this
> I'd like to see it.  Perhaps I will then be toadally embarrassed, but 
> they say that this is good for one.
> 
> cheers,
> 
> Rolf
> 
> > On Sat, Feb 11, 2017 at 9:02 PM, Val <valkremk at gmail.com> wrote:
> >> Hi all,
> >> I have a big data set and want to  remove rows conditionally.
> >> In my data file  each person were recorded  for several weeks. Somehow
> >> during the recording periods, their last name was misreported.   For
> >> each person,   the last name should be the same. Otherwise remove from
> >> the data. Example, in the following data set, Alex was found to have
> >> two last names .
> >>
> >> Alex   West
> >> Alex   Joseph
> >>
> >> Alex should be removed  from the data.  if this happens then I want
> >> remove  all rows with Alex. Here is my data set
> >>
> >> df <- read.table(header=TRUE, text='first  week last
> >> Alex    1  West
> >> Bob     1  John
> >> Cory    1  Jack
> >> Cory    2  Jack
> >> Bob     2  John
> >> Bob     3  John
> >> Alex    2  Joseph
> >> Alex    3  West
> >> Alex    4  West ')
> >>
> >> Desired output
> >>
> >>       first  week last
> >> 1     Bob     1   John
> >> 2     Bob     2   John
> >> 3     Bob     3   John
> >> 4     Cory     1   Jack
> >> 5     Cory     2   Jack
> 
> ______________________________________________
> 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