Dears, i need to create from a column of observations variables in a datafram like this way: example: original: ID station value 12 xy 15 12 xz 20 13 xy 16 13 xz 19 new df: ID xy xz 12 15 20 13 16 19 i have been looking around for examples, but i could not find any how to change my df. I would like to make regression analysis on the values from different production stations, so my df is very huge. Please help on finding the package, description or anything else could help. Thank you in advance! Best regards Malo [[alternative HTML version deleted]]
Hi, If you are game to use a tidy approach then you can use tidyr::pivot_wider() library(dplyr) library(tidyr) x <- dplyr::tribble( ~ID, ~station, ~value, 12, "xy", 15, 12, "xz", 20, 13, "xy", 16, 13, "xz", 19) tidyr::pivot_wider(x, names_from = station, values_from = value) #> # A tibble: 2 ? 3 #> ID xy xz #> <dbl> <dbl> <dbl> #> 1 12 15 20 #> 2 13 16 19 Cheers, Ben On Thu, Oct 13, 2022 at 5:07 PM G?bor Malomsoki <gmalomsoki1980 at gmail.com> wrote:> > Dears, > > i need to create from a column of observations variables in a datafram like > this way: > example: > original: > ID station value > 12 xy 15 > 12 xz 20 > 13 xy 16 > 13 xz 19 > > new df: > > ID xy xz > 12 15 20 > 13 16 19 > > i have been looking around for examples, but i could not find any how to > change my df. > I would like to make regression analysis on the values from different > production stations, so my df is very huge. > > Please help on finding the package, description or anything else could help. > > Thank you in advance! > > Best regards > Malo > > [[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.
Hello, To reshape from long to wide format, here are two options: df1 <- 'ID station value 12 xy 15 12 xz 20 13 xy 16 13 xz 19' df1 <- read.table(textConnection(df1), header = TRUE) # base R reshape(df1, direction = "wide", idvar = "ID", timevar = "station") #> ID value.xy value.xz #> 1 12 15 20 #> 3 13 16 19 # tidyverse tidyr::pivot_wider(df1, ID, names_from = station) #> # A tibble: 2 ? 3 #> ID xy xz #> <int> <int> <int> #> 1 12 15 20 #> 2 13 16 19 This question is StackOverflow question [1]. [1] https://stackoverflow.com/questions/5890584/how-to-reshape-data-from-long-to-wide-format Hope this helps, Rui Barradas ?s 19:08 de 13/10/2022, G?bor Malomsoki escreveu:> Dears, > > i need to create from a column of observations variables in a datafram like > this way: > example: > original: > ID station value > 12 xy 15 > 12 xz 20 > 13 xy 16 > 13 xz 19 > > new df: > > ID xy xz > 12 15 20 > 13 16 19 > > i have been looking around for examples, but i could not find any how to > change my df. > I would like to make regression analysis on the values from different > production stations, so my df is very huge. > > Please help on finding the package, description or anything else could help. > > Thank you in advance! > > Best regards > Malo > > [[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.