Hi Val, My fault - I assumed that the NA would be first in the result produced by "unique":
mydat <- read.table(textConnection("Col1 Col2 col3 Z1 K1 K2 Z2 NA NA Z3 X1 NA Z4 Y1 W1"),header = TRUE,stringsAsFactors=FALSE) val23<-unique(unlist(mydat[,c("Col2","col3")])) napos<-which(is.na(val23)) preval<-data.frame(Col1=val23[-napos], Col2=NA,col3=NA) mydat<-rbind(preval,mydat) mydat[is.na(mydat)]<-"0" mydat Jim On Sun, Feb 25, 2018 at 11:27 AM, Val <valkr...@gmail.com> wrote: > Thank you Jim, > > I read the data as you suggested but I could not find K1 in col1. > > rbind(preval,mydat) > Col1 Col2 col3 > 1 <NA> <NA> <NA> > 2 X1 <NA> <NA> > 3 Y1 <NA> <NA> > 4 K2 <NA> <NA> > 5 W1 <NA> <NA> > 6 Z1 K1 K2 > 7 Z2 <NA> <NA> > 8 Z3 X1 <NA> > 9 Z4 Y1 W1 > > > > On Sat, Feb 24, 2018 at 6:18 PM, Jim Lemon <drjimle...@gmail.com> wrote: >> >> hi Val, >> Your problem seems to be that the data are read in as a factor. The >> simplest way I can think of to get around this is: >> >> mydat <- read.table(textConnection("Col1 Col2 col3 >> Z1 K1 K2 >> Z2 NA NA >> Z3 X1 NA >> Z4 Y1 W1"),header = TRUE,stringsAsFactors=FALSE) >> preval<-data.frame(Col1=unique(unlist(mydat[,c("Col2","col3")]))[-1], >> Col2=NA,col3=NA) >> rbind(preval,mydat) >> mydat[is.na(mydat)]<-"0" >> >> Jiim >> >> >> On Sun, Feb 25, 2018 at 11:05 AM, Val <valkr...@gmail.com> wrote: >> > Sorry , I hit the send key accidentally here is my complete message. >> > >> > Thank you Jim and all, I got it. >> > >> > I have one more question on the original question >> > >> > What does this "[-1] " do? >> > preval<-data.frame(Col1=unique(unlist(mydat[,c("Col2","col3")]))[-1], >> > Col2=NA,col3=NA) >> > >> > >> > mydat <- read.table(textConnection("Col1 Col2 col3 >> > Z1 K1 K2 >> > Z2 NA NA >> > Z3 X1 NA >> > Z4 Y1 W1"),header = TRUE) >> > >> > preval<-data.frame(Col1=unique(unlist(mydat[,c("Col2","col3")]))[-1], >> > Col2=NA,col3=NA) >> > rbind(unique(preval),mydat) >> > >> > >> > Col1 Col2 col3 >> > 1 <NA> <NA> <NA> >> > 2 X1 <NA> <NA> >> > 3 Y1 <NA> <NA> >> > 4 K2 <NA> <NA> >> > 5 W1 <NA> <NA> >> > 6 Z1 K1 K2 >> > 7 Z2 <NA> <NA> >> > 8 Z3 X1 <NA> >> > 9 Z4 Y1 W1 >> > >> > I could not find K1 in the first col1. Is that possible to fix this? >> > >> > On Sat, Feb 24, 2018 at 5:59 PM, Val <valkr...@gmail.com> wrote: >> > >> >> Thank you Jim and all, I got it. >> >> >> >> I have one more question on the original question >> >> >> >> What does this "[-1] " do? >> >> preval<-data.frame(Col1=unique(unlist(mydat[,c("Col2","col3")]))[-1], >> >> Col2=NA,col3=NA) >> >> >> >> >> >> mydat <- read.table(textConnection("Col1 Col2 col3 >> >> Z1 K1 K2 >> >> Z2 NA NA >> >> Z3 X1 NA >> >> Z4 Y1 W1"),header = TRUE) >> >> >> >> preval<-data.frame(Col1=unique(unlist(mydat[,c("Col2","col3")]))[-1], >> >> Col2=NA,col3=NA) >> >> rbind(unique(preval),mydat) >> >> >> >> >> >> Col1 Col2 col3 >> >> 1 <NA> <NA> <NA> >> >> 2 X1 <NA> <NA> >> >> 3 Y1 <NA> <NA> >> >> 4 K2 <NA> <NA> >> >> 5 W1 <NA> <NA> >> >> 6 Z1 K1 K2 >> >> 7 Z2 <NA> <NA> >> >> 8 Z3 X1 <NA> >> >> 9 Z4 Y1 W1 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Sat, Feb 24, 2018 at 5:04 PM, Duncan Murdoch >> >> <murdoch.dun...@gmail.com> >> >> wrote: >> >> >> >>> On 24/02/2018 1:53 PM, William Dunlap via R-help wrote: >> >>> >> >>>> x1 = rbind(unique(preval),mydat) >> >>>> x2 <- x1[is.na(x1)] <- 0 >> >>>> x2 # gives 0 >> >>>> >> >>>> Why introduce the 'x2'? x1[...] <- 0 alters x1 in place and I think >> >>>> that >> >>>> altered x1 is what you want. >> >>>> >> >>>> You asked why x2 was zero. The value of the expression >> >>>> f(a) <- b >> >>>> and assignments are processed right to left so >> >>>> x2 <- x[!is.na(x1)] <- 0 >> >>>> is equivalent to >> >>>> x[!is.na(x1)] <- 0 >> >>>> x2 <- 0 >> >>>> >> >>> >> >>> That's not right in general, is it? I'd think that should be >> >>> >> >>> x[!is.na(x1)] <- 0 >> >>> x2 <- x1 >> >>> >> >>> Of course, in this example, x1 is 0, so it gives the same answer. >> >>> >> >>> Duncan Murdoch >> >>> >> >>> >> >>> >> >>>> >> >>>> Bill Dunlap >> >>>> TIBCO Software >> >>>> wdunlap tibco.com >> >>>> >> >>>> On Sat, Feb 24, 2018 at 9:59 AM, Val <valkr...@gmail.com> wrote: >> >>>> >> >>>> Thank you Jim >> >>>>> >> >>>>> I wanted a final data frame after replacing the NA's to "0" >> >>>>> >> >>>>> x1 = rbind(unique(preval),mydat) >> >>>>> x2 <- x1[is.na(x1)] <- 0 >> >>>>> x2 >> >>>>> but I got this, >> >>>>> >> >>>>> [1] 0 >> >>>>> >> >>>>> why I am getting this? >> >>>>> >> >>>>> >> >>>>> On Sat, Feb 24, 2018 at 12:17 AM, Jim Lemon <drjimle...@gmail.com> >> >>>>> wrote: >> >>>>> >> >>>>> Hi Val, >> >>>>>> Try this: >> >>>>>> >> >>>>>> >> >>>>>> preval<-data.frame(Col1=unique(unlist(mydat[,c("Col2","col3")]))[-1], >> >>>>>> Col2=NA,col3=NA) >> >>>>>> rbind(preval,mydat) >> >>>>>> >> >>>>>> Jim >> >>>>>> >> >>>>>> On Sat, Feb 24, 2018 at 3:34 PM, Val <valkr...@gmail.com> wrote: >> >>>>>> >> >>>>>>> Hi All, >> >>>>>>> >> >>>>>>> I am reading a file as follow, >> >>>>>>> >> >>>>>>> mydat <- read.table(textConnection("Col1 Col2 col3 >> >>>>>>> Z2 NA NA >> >>>>>>> Z3 X1 NA >> >>>>>>> Z4 Y1 W1"),header = TRUE) >> >>>>>>> >> >>>>>>> 1. "NA" are missing should be replace by 0 >> >>>>>>> 2. value that are in COl2 and Col3 should be included in col1 >> >>>>>>> before >> >>>>>>> they appear >> >>>>>>> in col2 and col3. So the output data looks like as follow, >> >>>>>>> >> >>>>>>> X1 0 0 >> >>>>>>> Y1 0 0 >> >>>>>>> W1 0 0 >> >>>>>>> Z2 0 0 >> >>>>>>> Z3 X1 0 >> >>>>>>> Z4 Y1 W1 >> >>>>>>> >> >>>>>>> Thank you in advance >> >>>>>>> >> >>>>>>> [[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. >> >>>>>>> >> >>>>>> >> >>>>>> >> >>>>> [[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. >> >>>>> >> >>>>> >> >>>> [[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/posti >> >>>> ng-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.