У меня есть dataframe, который выглядит, как этоR: Преобразование нескольких столбцов в один столбец
+---------+--------+--------+--------+-------+
| ID | week1_t| week1_a| week2_t|week2_a|
+---------+--------+--------+--------+-------+
| 1 | 12 | 22 | 17 | 4 |
| 1 | 15 | 32 | 18 | 5 |
| 1 | 24 | 12 | 29 | 6 |
| 2 | 45 | 11 | 19 | 8 |
| 2 | 23 | 33 | 20 | 10 |
+---------+--------+--------+--------+-------+
Есть 48 столбцов (неделя 1 - 24) с «т» и «а» суффиксов. Я хочу, чтобы объединить все столбцы неделю в одну колонку «недели», как это:
+---------+--------+--------+--------
| ID | week | t | a |
+---------+--------+--------+--------
| 1 | 1 | 22 | 17 |
| 1 | 2 | 32 | 18 |
| 1 | 3 | 12 | 19 |
| 1 | 5 | 33 | 20 |
+---------+--------+--------+-------
Как я могу идти о том, чтобы это преобразование в R? Я не могу придумать способ сделать это за пределами нескольких операторов if и для циклов.
данных
dd <- read.table(header = TRUE, text = "ID week1_t week1_a week2_t week2_a
1 12 22 17 4
1 15 32 18 5
1 24 12 29 6
2 45 11 19 8
2 23 33 20 10")
Пакет dplyr имеет все функции, которые вам нужны. Вот вам полезный чит-лист: https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf –
, пожалуйста, покажите, что вы пробовали. и не используйте этот формат таблицы. – rawr
'reshape (dd, dir = 'long', variableing = lapply (c ('t', 'a'), grep, names (dd)), timevar = 'week')' – rawr