Hello, I have a wide table that I transform to a long table for analysis. The wide table has 25 columns - the first is labels, then columns 2:25 are monthly data of LST which is in 19 rows. I mutate this with : data_long <- data %>% pivot_longer(cols = 2:25, names_to "Date", values_to = "LST") I've decided to add some weather data which might be relevant, inputting this as an additional 7 rows of data in the wide format (see example below of the first 5 months of data). I have belatedly realised that I cannot work out how to pivot this into the long format I need - the documentation doesn't provide enough syntax examples for me to work it out (I've not long been using 'R'). How do I mutate this to provide the additional columns in the long table for the weather variables? Thanks for your time, Philip Part-time PhD Student (Environmental Science) Lancaster University, UK. Wide data ------------------ Buffer 15/01/2010 16/02/2010 20/03/2010 24/04/2011 07/05/2010 100 6.091741043 6.405879111 8.925945159 6.278147269 6.133940129 200 5.271975614 5.994054977 7.375445078 5.805619599 5.537759202 300 4.451891901 5.61142085 6.120095292 5.149985946 5.353001442 400 3.385694303 4.77953426 5.608927408 4.542354226 4.824773827 500 2.900508112 4.305900444 5.61367474 4.320657374 4.520022189 600 3.110238149 3.616699448 4.800003992 4.006103489 4.188421662 700 3.150580922 2.848148846 4.216782177 3.642003696 3.725611032 800 3.079728958 2.016807672 4.05288041 3.315992643 3.278124347 900 2.327902499 1.452876728 3.779922823 3.181741995 3.29577819 1000 1.641887823 2.120099832 4.267840277 3.321634055 3.551965361 1100 1.63370882 1.661317381 3.747342619 2.814670223 2.807355369 1200 0.986559368 1.133219897 2.414025636 2.180686348 2.166547946 1300 0.920601397 1.237239562 2.647100163 2.253223258 2.411947081 1400 0.571882394 0.93675648 2.272566024 2.07198929 1.954723088 1500 0.340505009 0.7379146 2.526476424 1.912840489 2.003872651 1600 0.813480877 1.026085605 2.643863876 1.825988411 2.278799668 1700 0.471988882 0.566766122 1.290173713 1.360936689 1.45967449 1800 0.269067515 0.13349775 0.612263766 0.666152106 0.680354177 1900 0.303179244 0.082892149 0.465457136 0.537232782 0.287185161 Temperautre 12 15 16 23 21.5 Wind speed 10 9 10.5 9.5 9.5 Wind trend 1 1 1 0 1 Wind direction 22.5 45 67.5 191.25 56.25 Humidity 40 44.5 22 24.5 7 Pressure 1024 1018.5 1025 1005.5 1015.5 Pressure trend 1 1 1 1 1 long data ----------------- Buffer Date LST Temperature Wind speed ...... 1 01.01.21 4 5 10 2 01.02.21 5 2 11 3 01.03.21 7 5 15 4 01.04.21 9 6 7 5 01.05.21 7 5 10
Hi! If I understood this correctly, you want to pivot the columns from 2 to 25 and use the first column as a "key". Your data has 27 columns in total, right? I tested it with your data and seems that the parameter 'cols' does have some problems. It takes all variables irrespectively of the range defined. I tired it with '2:25', '2:10' etc. and always the columns nor included in 'cols' are present in the long table as separate columns. Could this be an error in the function? Or can someone from the list explain this, in my eyes a bit unlogical behaviour... Best, Kimmo su, 2021-11-28 kello 13:57 +0000, Philip Monk kirjoitti:> Hello, > > I have a wide table that I transform to a long table for analysis. > The wide table has 25 columns - the first is labels, then columns > 2:25 > are monthly data of LST which is in 19 rows. > > I mutate this with : > > data_long <- data %>% pivot_longer(cols = 2:25, names_to > "Date", values_to = "LST") > > I've decided to add some weather data which might be relevant, > inputting this as an additional 7 rows of data in the wide format > (see > example below of the first 5 months of data). > > I have belatedly realised that I cannot work out how to pivot this > into the long format I need - the documentation doesn't provide > enough > syntax examples for me to work it out (I've not long been using 'R'). > > How do I mutate this to provide the additional columns in the long > table for the weather variables? > > Thanks for your time, > > Philip > > Part-time PhD Student (Environmental Science) > Lancaster University, UK. > > > > Wide data > ------------------ > > Buffer 15/01/2010 16/02/2010 20/03/2010 > 24/04/2011 07/05/2010 > > 100 6.091741043 6.405879111 8.925945159 > 6.278147269 6.133940129 > > 200 5.271975614 5.994054977 7.375445078 > 5.805619599 5.537759202 > > 300 4.451891901 5.61142085 6.120095292 > 5.149985946 5.353001442 > > 400 3.385694303 4.77953426 5.608927408 > 4.542354226 4.824773827 > > 500 2.900508112 4.305900444 5.61367474 > 4.320657374 4.520022189 > > 600 3.110238149 3.616699448 4.800003992 > 4.006103489 4.188421662 > > 700 3.150580922 2.848148846 4.216782177 > 3.642003696 3.725611032 > > 800 3.079728958 2.016807672 4.05288041 > 3.315992643 3.278124347 > > 900 2.327902499 1.452876728 3.779922823 > 3.181741995 3.29577819 > > 1000 1.641887823 2.120099832 4.267840277 > 3.321634055 3.551965361 > > 1100 1.63370882 1.661317381 3.747342619 > 2.814670223 2.807355369 > > 1200 0.986559368 1.133219897 2.414025636 > 2.180686348 2.166547946 > > 1300 0.920601397 1.237239562 2.647100163 > 2.253223258 2.411947081 > > 1400 0.571882394 0.93675648 2.272566024 > 2.07198929 1.954723088 > > 1500 0.340505009 0.7379146 2.526476424 > 1.912840489 2.003872651 > > 1600 0.813480877 1.026085605 2.643863876 > 1.825988411 2.278799668 > > 1700 0.471988882 0.566766122 1.290173713 > 1.360936689 1.45967449 > > 1800 0.269067515 0.13349775 0.612263766 > 0.666152106 0.680354177 > > 1900 0.303179244 0.082892149 0.465457136 > 0.537232782 0.287185161 > > Temperautre 12 15 16 > 23 21.5 > > Wind speed 10 9 10.5 > 9.5 9.5 > > Wind trend 1 1 1 > 0 1 > > Wind direction 22.5 45 67.5 > 191.25 56.25 > > Humidity 40 44.5 22 > 24.5 7 > > Pressure 1024 1018.5 1025 > 1005.5 1015.5 > > Pressure trend 1 1 1 > 1 1 > > > > > long data > ----------------- > Buffer Date LST Temperature Wind > speed ...... > 1 01.01.21 4 5 > 10 > 2 01.02.21 5 2 > 11 > 3 01.03.21 7 5 > 15 > 4 01.04.21 9 6 > 7 > 5 01.05.21 7 5 > 10 > > ______________________________________________ > 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.
Often the issue is that different variables in the wide format are of different types so won't simply pivot_longer without you making decisions which the function shouldn't make for you. However, I think the error messages when that happens are fairly clear so perhaps that's not what's happening here. I'm happy to have a look at this as I've slowly become a convert to using tidyverse principles and tools (sometimes seen, legalistically correctly I think, as outside the remit of this Email list) but I agree that the help for pivot_longer() and many other tidyverse functions is not as good as it could be particularly for people new to R. Often there is better documentation in vignettes (so look for that) or in other things on the web. However, for me the data that was posted are mangled by the post coming in HTML format. Please read the list documentation and resubmit the question in raw text Email and submit a bit of your data using dput() (see ?dput and search out "R reproducible examples") and then I'll look at it. Very best (all), Chris ----- Original Message -----> From: "Philip Monk" <prmonk at gmail.com> > To: "R-help Mailing List" <r-help at r-project.org> > Sent: Sunday, 28 November, 2021 13:57:07 > Subject: [R] Syntax help for 'Pivot_longer'> Hello, > > I have a wide table that I transform to a long table for analysis. > The wide table has 25 columns - the first is labels, then columns 2:25 > are monthly data of LST which is in 19 rows. > > I mutate this with : > > data_long <- data %>% pivot_longer(cols = 2:25, names_to > "Date", values_to = "LST") > > I've decided to add some weather data which might be relevant, > inputting this as an additional 7 rows of data in the wide format (see > example below of the first 5 months of data). > > I have belatedly realised that I cannot work out how to pivot this > into the long format I need - the documentation doesn't provide enough > syntax examples for me to work it out (I've not long been using 'R'). > > How do I mutate this to provide the additional columns in the long > table for the weather variables? > > Thanks for your time, > > Philip > > Part-time PhD Student (Environmental Science) > Lancaster University, UK. > > > > Wide data > ------------------ > > Buffer 15/01/2010 16/02/2010 20/03/2010 > 24/04/2011 07/05/2010 > > 100 6.091741043 6.405879111 8.925945159 > 6.278147269 6.133940129 > > 200 5.271975614 5.994054977 7.375445078 > 5.805619599 5.537759202 > > 300 4.451891901 5.61142085 6.120095292 > 5.149985946 5.353001442 > > 400 3.385694303 4.77953426 5.608927408 > 4.542354226 4.824773827 > > 500 2.900508112 4.305900444 5.61367474 > 4.320657374 4.520022189 > > 600 3.110238149 3.616699448 4.800003992 > 4.006103489 4.188421662 > > 700 3.150580922 2.848148846 4.216782177 > 3.642003696 3.725611032 > > 800 3.079728958 2.016807672 4.05288041 > 3.315992643 3.278124347 > > 900 2.327902499 1.452876728 3.779922823 > 3.181741995 3.29577819 > > 1000 1.641887823 2.120099832 4.267840277 > 3.321634055 3.551965361 > > 1100 1.63370882 1.661317381 3.747342619 > 2.814670223 2.807355369 > > 1200 0.986559368 1.133219897 2.414025636 > 2.180686348 2.166547946 > > 1300 0.920601397 1.237239562 2.647100163 > 2.253223258 2.411947081 > > 1400 0.571882394 0.93675648 2.272566024 > 2.07198929 1.954723088 > > 1500 0.340505009 0.7379146 2.526476424 > 1.912840489 2.003872651 > > 1600 0.813480877 1.026085605 2.643863876 > 1.825988411 2.278799668 > > 1700 0.471988882 0.566766122 1.290173713 > 1.360936689 1.45967449 > > 1800 0.269067515 0.13349775 0.612263766 > 0.666152106 0.680354177 > > 1900 0.303179244 0.082892149 0.465457136 > 0.537232782 0.287185161 > > Temperautre 12 15 16 > 23 21.5 > > Wind speed 10 9 10.5 > 9.5 9.5 > > Wind trend 1 1 1 > 0 1 > > Wind direction 22.5 45 67.5 > 191.25 56.25 > > Humidity 40 44.5 22 > 24.5 7 > > Pressure 1024 1018.5 1025 > 1005.5 1015.5 > > Pressure trend 1 1 1 > 1 1 > > > > > long data > ----------------- > Buffer Date LST Temperature Wind > speed ...... > 1 01.01.21 4 5 10 > 2 01.02.21 5 2 11 > 3 01.03.21 7 5 15 > 4 01.04.21 9 6 7 > 5 01.05.21 7 5 10 > > ______________________________________________ > 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.-- Chris Evans (he/him) <chris at psyctc.org> Visiting Professor, UDLA, Quito, Ecuador & Honorary Professor, University of Roehampton, London, UK. Work web site: https://www.psyctc.org/psyctc/ CORE site: https://www.coresystemtrust.org.uk/ Personal site: https://www.psyctc.org/pelerinage2016/ OMbook: https://ombook.psyctc.org/book/
Sighh... Questions on "non-standard" packages such as the TidyVerse universe are off topic here: per the posting guide: "If the question relates to a contributed package , e.g., one downloaded from CRAN, try contacting the package maintainer first. You can also use find("functionname") and packageDescription("packagename") to find this information. Only send such questions to R-help or R-devel if you get no reply or need further assistance. This applies to both requests for help and to bug reports." More to the point, RStudio has its own Help site for these questions: https://www.tidyverse.org/help/ ## and, in particular, https://community.rstudio.com/ Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sun, Nov 28, 2021 at 5:57 AM Philip Monk <prmonk at gmail.com> wrote:> > Hello, > > I have a wide table that I transform to a long table for analysis. > The wide table has 25 columns - the first is labels, then columns 2:25 > are monthly data of LST which is in 19 rows. > > I mutate this with : > > data_long <- data %>% pivot_longer(cols = 2:25, names_to > "Date", values_to = "LST") > > I've decided to add some weather data which might be relevant, > inputting this as an additional 7 rows of data in the wide format (see > example below of the first 5 months of data). > > I have belatedly realised that I cannot work out how to pivot this > into the long format I need - the documentation doesn't provide enough > syntax examples for me to work it out (I've not long been using 'R'). > > How do I mutate this to provide the additional columns in the long > table for the weather variables? > > Thanks for your time, > > Philip > > Part-time PhD Student (Environmental Science) > Lancaster University, UK. > > > > Wide data > ------------------ > > Buffer 15/01/2010 16/02/2010 20/03/2010 > 24/04/2011 07/05/2010 > > 100 6.091741043 6.405879111 8.925945159 > 6.278147269 6.133940129 > > 200 5.271975614 5.994054977 7.375445078 > 5.805619599 5.537759202 > > 300 4.451891901 5.61142085 6.120095292 > 5.149985946 5.353001442 > > 400 3.385694303 4.77953426 5.608927408 > 4.542354226 4.824773827 > > 500 2.900508112 4.305900444 5.61367474 > 4.320657374 4.520022189 > > 600 3.110238149 3.616699448 4.800003992 > 4.006103489 4.188421662 > > 700 3.150580922 2.848148846 4.216782177 > 3.642003696 3.725611032 > > 800 3.079728958 2.016807672 4.05288041 > 3.315992643 3.278124347 > > 900 2.327902499 1.452876728 3.779922823 > 3.181741995 3.29577819 > > 1000 1.641887823 2.120099832 4.267840277 > 3.321634055 3.551965361 > > 1100 1.63370882 1.661317381 3.747342619 > 2.814670223 2.807355369 > > 1200 0.986559368 1.133219897 2.414025636 > 2.180686348 2.166547946 > > 1300 0.920601397 1.237239562 2.647100163 > 2.253223258 2.411947081 > > 1400 0.571882394 0.93675648 2.272566024 > 2.07198929 1.954723088 > > 1500 0.340505009 0.7379146 2.526476424 > 1.912840489 2.003872651 > > 1600 0.813480877 1.026085605 2.643863876 > 1.825988411 2.278799668 > > 1700 0.471988882 0.566766122 1.290173713 > 1.360936689 1.45967449 > > 1800 0.269067515 0.13349775 0.612263766 > 0.666152106 0.680354177 > > 1900 0.303179244 0.082892149 0.465457136 > 0.537232782 0.287185161 > > Temperautre 12 15 16 > 23 21.5 > > Wind speed 10 9 10.5 > 9.5 9.5 > > Wind trend 1 1 1 > 0 1 > > Wind direction 22.5 45 67.5 > 191.25 56.25 > > Humidity 40 44.5 22 > 24.5 7 > > Pressure 1024 1018.5 1025 > 1005.5 1015.5 > > Pressure trend 1 1 1 > 1 1 > > > > > long data > ----------------- > Buffer Date LST Temperature Wind > speed ...... > 1 01.01.21 4 5 10 > 2 01.02.21 5 2 11 > 3 01.03.21 7 5 15 > 4 01.04.21 9 6 7 > 5 01.05.21 7 5 10 > > ______________________________________________ > 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.