Удалить список данных по строкам, а не по столбцам
Относительно простой вопрос, но ответ, кажется, ускользнул от меня. В настоящее время у меня есть фрейм данных, который выглядит примерно так:
0 0 0 1 1
0 1 0 1 1
2 1 1 0 3
Я пытаюсь превратить это в одну строку данных, по строкам. Я использовал unlist
функции, и он сделал то, что я хотел, но дал их мне по столбцам. Это дало мне это:
0,0,2,0,1,1,0,0,1,1,1,0,1,1,3
но я хочу вот что:
0,0,0,1,1,0,1,0,1,1,2,1,1,0,3
Я прошу прощения, если это кажется глупым вопросом, но я все еще новичок в R. Любая помощь (или ссылки на функции, которые могут помочь мне обработать это) будет принята с благодарностью.
2 ответа
Мы можем взять транспонирование (t
) набора данных, а затем использовать c
получить векторный вывод
c(t(df1))
#[1] 0 0 0 1 1 0 1 0 1 1 2 1 1 0 3
Делая транспонирование, мы конвертируем data.frame в matrix. В обоих data.frame
или же matrix
, unlist/c
операции происходят по столбцам. Итак, транспонирование меняет местами столбцы на строки и наоборот, и мы получаем ожидаемый результат.
Вы также можете попробовать as.vector()
:
x<-matrix(c(0,0,2,0,1,1,0,0,1,1,1,0,1,1,3),3,5)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 1 0 1 1
[3,] 2 1 1 0 3
as.vector(t(x))
[1] 0 0 0 1 1 0 1 0 1 1 2 1 1 0 3