1

I wish to separate my habitat data into two different columns, one by the column headers and the other by their respective values.

I have tried using pivot_longer, however it returns me an error, here is how I tried to do it:

pivot_longer(cols= habitat[, 6:57], names_to="habitat_type", habitat) 

what it should look like:

month year    LOC_ID GBW_NUM     OBS_DT       habitat_type         habitat_code
1     8 2003 LOC569491   76550 2003-08-06     GARDEN_SIZE              A                               
2    11 2003 LOC575706   76863 2003-11-06     GARDEN_SIZE              B                                        
3    10 2008 LOC575706   76863 2008-10-09     GARDEN_SIZE              A                                    
4    11 2003 LOC575712   76869 2003-11-06     LARGE_DECID_TREES        C                                          
5     8 2008 LOC575712   76869 2008-08-08     SMALL_CONIF_TREES        A                                          
6    11 2003 LOC591752   76998 2003-11-06     LARGE_CONIF_TREES        B                                   

Reproducible code:

structure(list(month = c(8, 11, 10, 11, 8, 11, 3, 4, 3, 1, 10, 
12, 6, 6, 12, 10, 10, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 12, 2, 3, 2, 1, 3, 9, 9, 9, 4, 1, 3), 
    year = c(2003, 2003, 2008, 2003, 2008, 2003, 2005, 2005, 
    2020, 2008, 2010, 2013, 2012, 2018, 2012, 2016, 2017, 2003, 
    1995, 1995, 1995, 2003, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 2016, 2017, 
    2002, 2003, 2003, 2003, 1995, 2007, 2007, 2008, 2018, 2017, 
    2017, 2017), LOC_ID = c("LOC569491", "LOC575706", "LOC575706", 
    "LOC575712", "LOC575712", "LOC591752", "LOC610239", "LOC614296", 
    "LOC674315", "LOC675786", "LOC794326", "LOC794326", "LOC973627", 
    "LOC973627", "LOC1354719486425", "LOC1314108", "LOC2174194", 
    "LOC1300619774", "LOC1300613011", "LOC1300612920", "LOC1300615617", 
    "LOC1300609972", "LOC1300611058", "LOC1300612277", "LOC1300605354", 
    "LOC1300604907", "LOC1300604931", "LOC1300605204", "LOC1300604590", 
    "LOC1300604590", "LOC1300606661", "LOC1300602119", "LOC1300602170", 
    "LOC1300602081", "LOC1300622040", "LOC1300622040", "LOC1300622040", 
    "LOC1300622040", "LOC1038934429015", "LOC1038934429015", 
    "LOC287351", "LOC287518", "LOC1300624005", "LOC661928", "LOC661928", 
    "LOC661928", "LOC661928", "LOC2009340", "LOC1990233", "LOC1489432713333"
    ), GBW_NUM = c("76550", "76863", "76863", "76869", "76869", 
    "76998", "79154", "79846", "85416", "85665", "89078", "89078", 
    "90835", "90835", "97926", "93406", "26517", "72370", "65158", 
    "65056", "68017", "61805", "63019", "64369", "54273", "53090", 
    "53147", "53901", "52289", "52289", "56811", "03152", "03274", 
    "03043", "56063", "56063", "56063", "56063", "94001", "94001", 
    "75537", "75669", "67577", "84253", "84253", "84253", "84253", 
    "25834", "25782", "99058"), OBS_DT = structure(c(12270, 12362, 
    14161, 12362, 14099, 12362, 12856, 12903, 18352, 13890, 14889, 
    16040, 15502, 17693, 15679, 17100, 17443, 12362, 9131, 9131, 
    9131, 12078, 9131, 9131, 9131, 9131, 9131, 9131, 9131, 9132, 
    9131, 9131, 9131, 9131, 9131, 9132, 16808, 17193, 12024, 
    12084, 12123, 12106, 9131, 13579, 13760, 14123, 17780, 17264, 
    17188, 17230), class = "Date"), GARDEN_SIZE = c("M", "S", 
    "S", "M", "S", "M", "L", "S", "M", "S", "M", "M", "L", "L", 
    "S", "M", "M", "M", "M", "S", "M", "L", "M", "L", "L", "L", 
    "L", "L", "L", "L", "M", "M", "L", "L", "S", "M", "S", "S", 
    "S", "S", "L", "M", "L", "M", "M", "M", "S", "L", "S", "S"
    ), GARDEN_AGE = c("A", "B", "C", "D", "D", "D", "B", "C", 
    "D", "C", "D", "C", "E", "E", "B", "B", "D", "A", "E", "B", 
    "D", "D", "D", "E", "E", "D", "D", "E", "D", "E", "E", "D", 
    "E", "C", "E", "C", "D", "D", "E", "E", "E", "E", "E", "B", 
    "B", "B", "C", "E", "E", "E"), SMALL_DECID_TREES = c("B", 
    "B", "A", "C", "C", "C", "E", "D", "D", "B", "E", "E", "D", 
    "D", "B", "C", "D", "D", "A", "C", "C", "D", NA, "E", "E", 
    "E", "E", "D", "D", "D", "C", "D", "E", "D", "A", "C", "C", 
    "C", "B", "C", "E", "D", "E", "C", "C", "C", "C", "E", "C", 
    "E"), LARGE_DECID_TREES = c(NA, "C", "B", "B", "B", "B", 
    NA, "A", "A", "A", "C", "C", "A", "A", "A", "D", "A", "A", 
    "C", NA, "A", "A", "C", "D", "E", "C", "E", "C", "C", "A", 
    "C", NA, "E", "D", "A", "A", "A", "A", "A", "A", "D", "C", 
    "D", "B", "C", "C", "B", "D", "A", "A"), SMALL_CONIF_TREES = c(NA, 
    "A", "A", "A", "A", "B", NA, "E", "C", "A", "A", "C", "A", 
    "A", "A", "C", "A", "A", "C", "C", "A", "B", "C", "C", "E", 
    "B", "C", "E", "E", "D", NA, "E", "D", "E", "A", "D", "C", 
    "A", "B", "B", "A", "C", "E", "A", "A", "A", "A", "E", "B", 
    "A"), LARGE_CONIF_TREES = c(NA, "A", "A", "A", "A", NA, NA, 
    "A", "A", "A", "A", "B", "A", "A", "A", "A", "A", "A", "A", 
    NA, "A", "A", NA, "E", "D", "D", "D", "C", "D", "A", NA, 
    NA, "E", "E", "A", "A", "A", "A", "A", "A", "C", "C", "D", 
    "A", "A", "A", "A", "E", "B", "A"), LAWN = c("C", "C", "D", 
    "D", "B", "D", "B", "C", "C", "D", "C", "C", "D", "D", "D", 
    "D", "D", "E", "B", "B", "C", "B", "D", "C", "B", "C", "C", 
    "C", "C", "C", "E", "C", "B", "D", "E", "C", "C", "C", "E", 
    "E", "D", "C", "B", "E", "E", "D", "C", "B", "B", "B"), FLOWERBEDS = c("B", 
    "B", "B", "B", "B", "B", "B", "C", "D", "B", "B", "B", "B", 
    "B", "B", "B", "B", "B", "C", "B", "B", "B", "B", "B", "B", 
    "B", "A", "B", "C", "B", "B", "C", "B", "B", "B", "B", "B", 
    "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", 
    "C"), SHRUBBERIES = c("B", "A", "B", "B", "A", "B", "B", 
    "A", "A", "A", "C", "C", "B", "B", "B", "B", "B", "A", "A", 
    "B", "B", "B", "C", "B", "B", "B", "B", "B", "B", "B", "B", 
    "B", "C", "B", "A", "B", "B", "B", "B", "B", "B", "B", "B", 
    "B", "B", "B", "B", "C", "B", "B"), VEGETABLES = c("A", "A", 
    "A", "A", "A", "B", "A", "A", "A", "A", "B", "B", "A", "A", 
    "A", "A", "B", "A", "A", "A", "A", "B", "A", "B", "A", "A", 
    "B", "B", "B", "B", "A", "A", "B", "A", "A", "B", "B", "B", 
    "A", "A", "B", "B", "B", "A", "B", "C", "C", "B", "A", "B"
    ), WILD = c("A", "A", "B", "A", "C", "A", "C", "B", "A", 
    "A", "A", "B", "A", "A", "A", "B", "B", "A", "B", "A", "A", 
    "A", "A", "A", "B", "B", "C", NA, "A", "B", "A", "A", "B", 
    "B", "A", "A", "A", "A", "B", "B", NA, "B", "C", "A", "A", 
    "A", "B", "B", "B", "B"), BARREN = c("A", "B", "A", "B", 
    "B", "B", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", 
    "A", "A", "A", "B", "B", "A", "A", "B", "B", "C", "B", NA, 
    "B", "B", "A", "B", "A", "A", "A", "B", "B", "A", "A", "A", 
    "B", "B", "A", "A", "A", "A", "B", "A", "A", "A"), ORCHARD = c("A", 
    "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "A", 
    "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", 
    "A", "A", NA, "A", "A", "A", "A", "A", "B", "A", "A", "A", 
    "A", "A", "A", NA, "A", NA, "A", "A", "A", "A", "B", "A", 
    "A"), FENCE = c("D", "B", "C", "D", "C", "C", "E", "C", "D", 
    "B", "B", "B", "C", "C", "C", "D", "E", "D", "B", "B", "C", 
    "B", "A", "A", "A", "B", "C", NA, "B", "B", "D", "D", "A", 
    "B", "B", "E", "D", "E", "D", "D", NA, "B", "B", "E", "D", 
    "D", "C", "B", "B", "D"), WALL = c("B", "A", "A", NA, "A", 
    "A", NA, "A", "B", "A", "A", "A", "C", "C", "A", "C", "A", 
    "A", "A", "A", "B", "B", "D", "A", "A", "A", "A", "E", "A", 
    "B", "B", "A", "A", "B", "A", "A", "A", "A", "B", "B", NA, 
    "C", "A", "B", "B", "B", "B", "B", "B", "A"), BUILDINGS = c("B", 
    "B", "C", NA, "A", "B", NA, "A", "B", "A", "B", "A", "B", 
    "B", "C", "B", "A", "B", "C", "B", "B", "B", "D", "A", "A", 
    "B", "B", "B", "A", "B", NA, "B", "A", "B", "B", "B", "B", 
    "B", "B", "B", NA, "B", "B", "B", "B", "B", "B", "C", "B", 
    "B"), LOW_EVERGR_HEDGE = c("A", "B", "A", NA, "A", "B", NA, 
    "B", "B", "A", "C", "A", "A", "A", "A", "A", "A", "A", "A", 
    "A", "A", "A", "A", "B", "A", "B", "A", NA, "B", "A", "A", 
    "B", "B", NA, "B", "A", "A", "A", "A", "A", "B", "B", "A", 
    "A", "A", "A", "A", "B", "B", "B"), HIGH_EVERGR_HEDGE = c("A", 
    "A", "A", NA, "A", "A", NA, "A", "A", "A", "A", "B", "A", 
    "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "C", "A", 
    "A", "A", NA, "B", "B", "A", "B", NA, "C", "B", "A", "A", 
    "A", "A", "A", "B", "A", "B", "A", "A", "A", "B", "A", "A", 
    "A"), LOW_DECID_HEDGE = c("A", "A", "B", NA, "B", "A", NA, 
    "A", "A", "B", "C", "A", "A", "A", "A", "A", "A", "A", "A", 
    "A", "A", "C", "A", "B", "A", "C", "B", NA, "B", "A", "B", 
    "A", NA, "B", "A", "A", "A", "A", "A", "A", "C", "A", "B", 
    "A", "A", "A", "A", "D", "B", "A"), HIGH_DECID_HEDGE = c("A", 
    "A", "A", NA, "A", "A", "E", "A", "A", "A", "B", "C", "A", 
    "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "A", 
    "B", "C", NA, "B", "B", "A", "A", "D", "B", "A", "A", "A", 
    "A", "A", "A", "C", "A", "B", "A", "A", "A", "A", "A", "A", 
    "A")), row.names = c(NA, 50L), class = "data.frame")
Lime
  • 738
  • 5
  • 17

1 Answers1

1

Maybe the solution for the issue can be choosing the variables to keep in rows and reshape the remaining to long:

library(tidyverse)
#Code
newhabitat <- habitat %>% pivot_longer(-c(1:5))
Duck
  • 39,058
  • 13
  • 42
  • 84