[R] Simple Stacking of Two Columns
Eric Berger
er|cjberger @end|ng |rom gm@||@com
Mon Apr 3 17:36:13 CEST 2023
pivot_longer()
Sent from my iPhone
> On 3 Apr 2023, at 18:09, Sparks, John <jspark4 using 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 using 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.
More information about the R-help
mailing list