Jeff Newmiller wrote/hat geschrieben on/am 03.04.2023 18:26:> unname(unlist(NamesWide))Why not: NamesWide <- data.frame(Name1=c("Tom","Dick"),Name2=c("Larry","Curly")) NamesLong <- data.frame(Names=with(NamesWide, c(Name1, Name2)))> > On April 3, 2023 8:08:59 AM PDT, "Sparks, John" <jspark4 at uic.edu> wrote: >> Hi R-Helpers, >> >> Sorry to bother you, but I have a simple task that I can't figure out how to do. >> >> For example, I have some names in two columns >> >> NamesWide<-data.frame(Name1=c("Tom","Dick"),Name2=c("Larry","Curly")) >> >> and I simply want to get a single column >> NamesLong<-data.frame(Names=c("Tom","Dick","Larry","Curly")) >>> NamesLong >> Names >> 1 Tom >> 2 Dick >> 3 Larry >> 4 Curly >> >> >> Stack produces an error >> NamesLong<-stack(NamesWide$Name1,NamesWide$Names2) >> Error in if (drop) { : argument is of length zero >> >> So does bind_rows >>> NamesLong<-dplyr::bind_rows(NamesWide$Name1,NamesWide$Name2) >> Error in `dplyr::bind_rows()`: >> ! Argument 1 must be a data frame or a named atomic vector. >> Run `rlang::last_error()` to see where the error occurred. >> >> I tried making separate dataframes to get around the error in bind_rows but it puts the data in two different columns >> Name1<-data.frame(c("Tom","Dick")) >> Name2<-data.frame(c("Larry","Curly")) >> NamesLong<-dplyr::bind_rows(Name1,Name2) >>> NamesLong >> c..Tom....Dick.. c..Larry....Curly.. >> 1 Tom <NA> >> 2 Dick <NA> >> 3 <NA> Larry >> 4 <NA> Curly >> >> gather makes no change to the data >> NamesLong<-gather(NamesWide,Name1,Name2) >>> NamesLong >> Name1 Name2 >> 1 Tom Larry >> 2 Dick Curly >> >> >> Please help me solve what should be a very simple problem. >> >> Thanks, >> John Sparks >> >> >> >> >> >> [[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. >
@vi@e@gross m@iii@g oii gm@ii@com
2023-Apr-04 01:28 UTC
[R] Simple Stacking of Two Columns
I may be missing something but using the plain old c() combine function seems to work fine: df <- data.frame(left = 1:5, right = 6:10) df.combined <- data.frame(comb = c(df$left, df$right)) df left right 1 1 6 2 2 7 3 3 8 4 4 9 5 5 10 df.combined comb 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 -----Original Message----- From: R-help <r-help-bounces at r-project.org> On Behalf Of Heinz Tuechler Sent: Monday, April 3, 2023 4:39 PM To: r-help at r-project.org Subject: Re: [R] Simple Stacking of Two Columns Jeff Newmiller wrote/hat geschrieben on/am 03.04.2023 18:26:> unname(unlist(NamesWide))Why not: NamesWide <- data.frame(Name1=c("Tom","Dick"),Name2=c("Larry","Curly")) NamesLong <- data.frame(Names=with(NamesWide, c(Name1, Name2)))> > On April 3, 2023 8:08:59 AM PDT, "Sparks, John" <jspark4 at uic.edu> wrote: >> Hi R-Helpers, >> >> Sorry to bother you, but I have a simple task that I can't figure out howto do.>> >> For example, I have some names in two columns >> >> NamesWide<-data.frame(Name1=c("Tom","Dick"),Name2=c("Larry","Curly")) >> >> and I simply want to get a single column >> NamesLong<-data.frame(Names=c("Tom","Dick","Larry","Curly")) >>> NamesLong >> Names >> 1 Tom >> 2 Dick >> 3 Larry >> 4 Curly >> >> >> Stack produces an error >> NamesLong<-stack(NamesWide$Name1,NamesWide$Names2) >> Error in if (drop) { : argument is of length zero >> >> So does bind_rows >>> NamesLong<-dplyr::bind_rows(NamesWide$Name1,NamesWide$Name2) >> Error in `dplyr::bind_rows()`: >> ! Argument 1 must be a data frame or a named atomic vector. >> Run `rlang::last_error()` to see where the error occurred. >> >> I tried making separate dataframes to get around the error in bind_rowsbut it puts the data in two different columns>> Name1<-data.frame(c("Tom","Dick")) >> Name2<-data.frame(c("Larry","Curly")) >> NamesLong<-dplyr::bind_rows(Name1,Name2) >>> NamesLong >> c..Tom....Dick.. c..Larry....Curly.. >> 1 Tom <NA> >> 2 Dick <NA> >> 3 <NA> Larry >> 4 <NA> Curly >> >> gather makes no change to the data >> NamesLong<-gather(NamesWide,Name1,Name2) >>> NamesLong >> Name1 Name2 >> 1 Tom Larry >> 2 Dick Curly >> >> >> Please help me solve what should be a very simple problem. >> >> Thanks, >> John Sparks >> >> >> >> >> >> [[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 guidehttp://www.R-project.org/posting-guide.html>> and provide commented, minimal, self-contained, reproducible code. >______________________________________________ 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.