преобразовать строки в столбцы R - PullRequest
1 голос
/ 15 января 2020

У меня есть фрейм данных с 2 столбцами:

a<-c(1, 3, 4, 6, 8.7, 9, 10, 12, 19.3, 20)
b<-c(10, 30, 40, 60, 87, 90, 100, 120, 190, 200)
df<-data.frame(a=a, b=b)
> df
      a   b
1   1.0  10
2   3.0  30
3   4.0  40
4   6.0  60
5   8.7  87
6   9.0  90
7  10.0 100
8  12.0 120
9  19.3 190
10 20.0 200

Пожалуйста, моя цель - иметь 1 одну строку из 10 столбцов a и 10 столбцов b

Ожидается Результат

    a1 a2   ...   a10  b1 b2 ... b10
1   1.0 3.0 ...   20.0 10 30 ... 200

Я пытался t(), но это не дает мне желаемого результата

Ответы [ 2 ]

1 голос
/ 15 января 2020

unlist() сделает трюк:

unlist(df)
   a1    a2    a3    a4    a5    a6    a7    a8    a9   a10    b1    b2    b3    b4    b5    b6 
  1.0   3.0   4.0   6.0   8.7   9.0  10.0  12.0  19.3  20.0  10.0  30.0  40.0  60.0  87.0  90.0 
   b7    b8    b9   b10 
100.0 120.0 190.0 200.0 
1 голос
/ 15 января 2020

Попробуйте unlist или as.data.frame(t(unlist(.))), зависит от того, что вам нужно, вектор или фрейм данных.

unlist(df)
# a1    a2    a3    a4    a5    a6    a7    a8    a9   a10    b1    b2    b3    b4    b5    b6    b7    b8    b9   b10 
# 1.0   3.0   4.0   6.0   8.7   9.0  10.0  12.0  19.3  20.0  10.0  30.0  40.0  60.0  87.0  90.0 100.0 120.0 190.0 200.0 
as.data.frame(t(unlist(df)))
#   a1 a2 a3 a4  a5 a6 a7 a8   a9 a10 b1 b2 b3 b4 b5 b6  b7  b8  b9 b10
# 1  1  3  4  6 8.7  9 10 12 19.3  20 10 30 40 60 87 90 100 120 190 200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...