Как мне преобразовать массив в широкий фрейм данных в R?
Допустим, у меня есть массив
arr = as.array(c(1.1,0.5,3.2,4.3,5.5,6.3,0.4))
Я хочу преобразовать это в фрейм данных, поэтому я пытаюсь:
df = as.data.frame(arr)
Но это дает мне фрейм данных с nrows = 7 и ncols = 1. Мне нужен фрейм данных с nrows = 1 и ncols = 7. Я попытался сделать t(df)
но это вернуло бы матрицу.
Я знаю, что должен быть простой способ сделать это... спасибо!
2 ответа
Как насчет:
arr = array(c(1.1,0.5,3.2,4.3,5.5,6.3,0.4), dim = c(1, 7))
as.data.frame(arr)
# V1 V2 V3 V4 V5 V6 V7
#1 1.1 0.5 3.2 4.3 5.5 6.3 0.4
Обратите внимание, использовать array
или же matrix
не as.array
или же as.matrix
,
alistaire упомянул хороший способ
as.data.frame(t(c(1.1,0.5,3.2,4.3,5.5,6.3,0.4)))
# V1 V2 V3 V4 V5 V6 V7
#1 1.1 0.5 3.2 4.3 5.5 6.3 0.4
который превратит dim
для вас автоматически.
Если нам нужен набор данных из 7 столбцов, мы можем использовать as.data.frame.list
на vector
as.data.frame.list(c(1.1,0.5,3.2,4.3,5.5,6.3,0.4))
Как упомянуто @ZheyuanLi, вышеприведенное добавит "X" в качестве префикса для имен столбцов. Мы можем изменить имена столбцов в col.names
аргумент
as.data.frame.list(c(1.1,0.5,3.2,4.3,5.5,6.3,0.4), col.names = paste0("V", 1:7))
Или другой вариант будет иметь имена для vector
элементы
as.data.frame.list(setNames(c(1.1,0.5,3.2,4.3,5.5,6.3,0.4), paste0("V", 1:7)))