Удалить список данных по строкам, а не по столбцам

Относительно простой вопрос, но ответ, кажется, ускользнул от меня. В настоящее время у меня есть фрейм данных, который выглядит примерно так:

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
Другие вопросы по тегам