Я столкнулся с проблемой перестройки с помощью dataframe. Он содержит еще много строк и столбцов. Упрощенно его структура выглядит следующим образом:reshape dataframe R
rownames year x1 x2 x3
a 2000 2 6 11
b 2000 0 4 2
c 2000 0 3 5
a 2010 2 6 11
b 2010 0 0 0
c 2020 4 1 8
a 2020 10 1 7
b 2020 8 4 10
c 2020 22 1 16
Я хотел бы выйти с dataframe, который имеет одну единственную строку для переменного «года», скопируйте x1, x2, значение x3 в последующих столбцах, переименовывать столбцы с комбинацией между именем rowname и переменной x. Он должен выглядеть следующим образом:
year a_x1 a_x2 a_x3 b_x1 b_x2 b_x3 c_x1 c_x2 c_x3
2000 2 6 11 0 4 2 0 3 5
2010 2 6 11 0 0 0 4 1 8
2020 10 1 7 8 4 10 22 1 16
Я думал использовать последующую функции cbind(), но так как я должен сделать это для тысяч строк и сотни столбцов, я надеюсь, что есть более прямой путь с пакетом RESHAPE (с которыми я еще не знаком)
Заранее спасибо!
пожалуйста, используйте 'dput (sample_data)', так что пользователи могут применять свои предложения к тому же данные, которые вы смотрите. –
Как вы хотите иметь дело с дублируемыми значениями? Или я должен предположить, что это была ошибка, основанная на вашем примере вывода? – A5C1D2H2I1M1N2O1R2T1
@HansRoggeman в этом случае воспроизводится на 100%: 'dt <- read.table (text =" ... ",, header = TRUE)' и просто заменяет '...' скопированным текстом. – Beasterfield