Thank you Rainer, The question was :- 1. Identify those first names with different last names or more than one last names. 2. Once identified (like Alex) then exclude them. This is because not reliable record.
On Sun, Feb 12, 2017 at 11:17 AM, Rainer Schuermann <rainer.schuerm...@gmx.net> wrote: > 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 <valkr...@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@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]] > > ______________________________________________ > 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.