如何将R数据帧的列转换为行?

如果将行值错误地记录到列中,那么我们可能希望将列转换成行。因此,要将R数据帧的列转换为行,我们可以使用转置函数t。例如,如果我们有一个包含五列五行的数据帧df,则可以使用as.data.frame(t(df))将df的列转换为行。

示例

set.seed(4)

x1<-rnorm(5,10,2)

x2<-letters[1:5]

x3<-1:5

df1<-data.frame(x1,x2,x3)

df1

输出结果

      x1    x2 x3

1 10.433510 a  1

2 8.915015  b  2

3 11.782289 c  3

4 11.191961 d  4

5 13.271236 e  5

将df1的列转换为行-

示例

df1_new<-as.data.frame(t(df1))

df1_new

输出结果

       V1        V2       V3       V4       V5

x1 10.433510 8.915015 11.782289 11.191961 13.271236

x2      a         b       c         d        e

x3      1         2       3         4        5

示例

a<-sample(0:1,20,replace=TRUE)

b<-sample(0:5,20,replace=TRUE)

c<-sample(1:10,20,replace=TRUE)

d<-sample(6:10,20,replace=TRUE)

df2<-data.frame(a,b,c,d)

df2

输出结果

   a b c d

1  0 3 5 10

2  1 4 9 10

3  1 4 2  9

4  1 5 10 7

5  1 4 4  6

6  1 0 8  6

7  1 5 10 9

8  0 2 2  6

9  1 5 10 9

10 0 4 6  9

11 0 3 10 9

12 0 0 6 10

13 0 3 1 10

14 0 5 4  7

15 1 2 2 10

16 1 4 4 10

17 0 3 3  8

18 0 3 1  7

19 1 5 7  9

20 1 5 7  7

将df2的列转换为行-

示例

df2_new<-as.data.frame(t(df2))

df2_new

输出结果

  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20

a 0   1 1   1 1   1  1  0 1    0   0   0  0   0    1   1   0   0   1 1

b 3   4 4   5 4   0  5  2 5    4   3   0  3   5    2   4   3   3   5 5

c 5   9 2   10 4  8  10 2 10   6   10  6  1   4    2   4   3   1   7 7

d 10  10 9  7  6  6  9  6 9    9   9  10  10  7   10  10   8   7   9 7

示例

y1<-LETTERS[1:20]

y2<-letters[1:20]

y3<-sample(LETTERS[1:4],20,replace=TRUE)

df3<-data.frame(y1,y2,y3)

df3

输出结果

 y1 y2 y3

1  A a A

2  B b A

3  C c D

4  D d C

5  E e C

6  F f B

7  G g A

8  H h C

9  I i B

10 J j A

11 K k A

12 L l C

13 M m C

14 N n A

15 O o A

16 P p C

17 Q q D

18 R r D

19 S s D

20 T t D

将df3的列转换为行-

示例

df3_new<-as.data.frame(t(df3))

df3_new

输出结果

  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20

y1 A B   C D   E F   G  H I   J   K   L    M   N   O   P  Q    R  S   T

y2 a b   c d   e f   g  h i   j   k   l    m   n   o   p  q    r  s   t

y3 A A   D C   C B   A  C B   A   A   C    C   A   A   C  D    D  D   D

示例

z1<-rpois(20,10)

z2<-rpois(20,5)

z3<-rpois(20,8)

z4<-rpois(20,4)

df4<-data.frame(z1,z2,z3,z4)

df4

输出结果

   z1 z2 z3 z4

1  10 11 13 2

2  8  3   9 2

3  6  4  10 3

4 16  6  10 4

5  9  7   5 8

6  4  5   5 3

7  7  4   3 2

8  8  2   9 3

9  12 6   9 4

10 15 7   9 3

11 8  5  10 2

12 20 4   6 4

13  5 4  10 8

14 10 2  8  1

15 20 5  9  3

16  5 5  8  5

17 13 5   8 6

18 7 1   14 3

19 12 2   9 6

20 9 8    11 2

将df4的列转换为行-

示例

df4_new<-as.data.frame(t(df4))

df4_new

输出结果

   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20

z1 10 8   6 16  9 4  7   8 12 15   8   20   5  10 20    5  13  7   12  9

z2 11 3   4 6   7 5  4   2 6  7    5   4    4   2  5    5  5   1   2   8

z3 13 9  10 10  5 5  3   9 9  9    10  6    10  8  9    8  8   14  9   11

z4 2 2    3 4   8 3  2   3 4  3    2   4    8   1  3    5  6   3   6    2

以上是 如何将R数据帧的列转换为行? 的全部内容, 来源链接: utcz.com/z/352447.html

回到顶部