My data frame comprises: 1st column is date ( consist of normal and leap year) , 2nd to 32 column is day ( day 1 , day 2... day 31) How to arrange this dataset to a single column.
-
5Welcome to StackOverflow! Please read the info about [how to ask a good question](http://stackoverflow.com/help/how-to-ask) and how to give a [reproducible example](http://stackoverflow.com/questions/5963269). This will make it much easier for others to help you. – Sotos Jun 18 '19 at 08:18
-
Sounds like a reshaping issue. Have you tried [here](https://stackoverflow.com/questions/12466493/reshaping-multiple-sets-of-measurement-columns-wide-format-into-single-columns) or [here](https://stackoverflow.com/questions/25925556/gather-multiple-sets-of-columns)? – Jun 18 '19 at 09:38
1 Answers
I'm very new to R (and also to SO, at least with answering) but I would use gather from the tidyr package for this task.
It's a bit hard to imagine your data without an example, so I'll make my own (Actually I don't see why there should be a date in the first column and then other columns for every single day):
Date day_1 day_2 day_3 day_4 day_5 day_6 ... day_31 ---- ----- ----- ----- ----- ----- ----- ... ------ 1 2019-05-01 1 1 1 0 0 5 ... 6 2 2019-05-02 4 0 2 1 4 5 ... 4 3 2019-05-03 3 2 5 0 5 2 ... 2
You can use gather to convert your columns to rows the following.
gather(Data, key = "Day", value = "Rainfall", 2:32)
The first parameter (Data) is your dataset. The key parameter defines, what name your 'Key' column should have and value defines the name of the value column. The 2:32 part means, that you want columns 2 to 32 included in the result. If you have no other columns than the ones you mentioned you could also use -1 instead of 2:32, which just means to ignore the first colum.
This would give you the following result:
Date Day Rainfall
1 2019-05-01 day_1 1
2 2019-05-02 day_1 4
3 2019-05-03 day_1 3
4 2019-05-01 day_2 1
5 2019-05-02 day_2 0
6 2019-05-03 day_2 2
7 2019-05-01 day_3 1
8 2019-05-02 day_3 2
9 2019-05-03 day_3 5
10 2019-05-01 day_4 0
11 2019-05-02 day_4 1
...
...
...
- 63
- 6