Каков наилучший способ транспонирования data.frame в R и установить один из столбцов в качестве заголовка для новой транспонированной таблицы?
Каков наилучший способ транспонирования data.frame в R и установить один из столбцов в качестве заголовка для новой транспонированной таблицы? Я закодировал способ сделать это ниже. Поскольку я все еще новичок в R. Я бы хотел, чтобы предложения улучшили мой код, а также альтернативы, которые были бы более похожими на R. Мое решение также, к сожалению, немного жестко закодировано (т.е. Заголовки новых столбцов находятся в определенном месте).
# Assume a data.frame called fooData
# Assume the column is the first column before transposing
# Transpose table
fooData.T <- t(fooData)
# Set the column headings
colnames(fooData.T) <- test[1,]
# Get rid of the column heading row
fooData.T <- fooData.T[2:nrow(fooData.T), ]
#fooData.T now contains a transposed table with the first column as headings
Ответы
Ответ 1
Хорошо, вы могли бы сделать это за 2 шага, используя
# Transpose table YOU WANT
fooData.T <- t(fooData[,2:ncol(fooData)])
# Set the column headings from the first column in the original table
colnames(fooData.T) <- fooData[,1]
Результат - это матрица, которую вы, вероятно, знаете, из-за проблем класса при переносе. Я не думаю, что это будет единственный способ сделать это, учитывая отсутствие навыков именования на этапе транспонирования.
Ответ 2
У меня была схожая проблема: у меня была переменная факторов в длинном формате, и я хотел, чтобы каждый фактор стал новым заголовком столбца; используя "unstack" из библиотеки статистики, сделал это за один шаг. Если столбец, который вы хотите в качестве заголовка, не является фактором, "cast" из библиотеки reshape может работать.