Каков наилучший способ транспонировать data.frame в R и установить один из столбцов в качестве заголовка для новой транспонированной таблицы? - PullRequest
18 голосов
/ 11 июля 2011

Каков наилучший способ транспонировать 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

Ответы [ 2 ]

22 голосов
/ 11 июля 2011

Ну, вы можете сделать это в 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 голосов
/ 22 августа 2012

У меня была похожая проблема - у меня была переменная факторов в длинном формате, и я хотел, чтобы каждый фактор был новым заголовком столбца; использование "unstack" из библиотеки статистики сделало это за один шаг. Если столбец, который вы хотите использовать в качестве заголовка, не является фактором, может работать «приведение» из библиотеки изменения формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...