r - 在 R 中从几列中制作一个大列
问题描述
我有一个格式有点不幸的数据框。我有几个值应该是表格格式的一列的一部分,如下所示:
X_1 X_2 X_3 X_4 X_5
Wasser Strand Zangen Beine Schmerz
Wasser Meer rot Steine beißen
Rot Lecker Restaurant Teuer Gourmet
Zellen Leid Schmerzen Chemotherapie Tot
rot Krallen tödlich Schmerzen schlimm
Hummer salz sternzeichen krankheit rot
Wasser Meer Sternzeichen Krankheit Tumor
我想让我的数据框看起来“整洁”,因此,我想将几列堆叠成一列,如下所示:
X_1
Wasser
Wasser
Rot
Zellen
rot
Hummer
Wasser
Strand
Meer
Lecker
Leid
Krallen
....
这需要对几个“块”进行。有没有办法在tidyverse
框架内做到这一点?我试着弄乱,gather()
但我无法让它工作......
为了提供一个小代码片段,可以从中制作一个可重现的示例:
matrix(1:40, ncol = 8)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 6 11 16 21 26 31 36
[2,] 2 7 12 17 22 27 32 37
[3,] 3 8 13 18 23 28 33 38
[4,] 4 9 14 19 24 29 34 39
[5,] 5 10 15 20 25 30 35 40
我想要的结果是这样的:
[,1] [,2]
[1,] 1 21
[2,] 2 22
[3,] 3 23
[4,] 4 24
[5,] 5 25
[6,] 6 26
[7,] 7 27
[8,] 8 28
[9,] 9 29
[10,] 10 30
[11,] 11 31
[12,] 12 32
[13,] 13 33
[14,] 14 34
[15,] 15 35
[16,] 16 36
[17,] 17 37
[18,] 18 38
[19,] 19 39
[20,] 20 40
解决方案
不需要 tidyverse。
从您以前的矩阵创建一个新矩阵.. 设置列数,并按列填充(byrow = FALSE)
m <- matrix(1:40, ncol = 8)
matrix(m, ncol = 2, byrow = FALSE)
[,1] [,2]
[1,] 1 21
[2,] 2 22
[3,] 3 23
[4,] 4 24
[5,] 5 25
[6,] 6 26
[7,] 7 27
[8,] 8 28
[9,] 9 29
[10,] 10 30
[11,] 11 31
[12,] 12 32
[13,] 13 33
[14,] 14 34
[15,] 15 35
[16,] 16 36
[17,] 17 37
[18,] 18 38
[19,] 19 39
[20,] 20 40
推荐阅读
- r - 使用 lapply()-函数查找 R 中数据框中每一行的平均值
- python - Django,保存图像,OSError:无法识别图像文件
- java - Dropwizard 中的数据库设置单元测试
- woocommerce - Woo-commerce 产品图片打开直接图片网址而不是灯箱
- excel - 如何将数字转换为音乐字母?
- c# - 在 ARkit 中的 FocusSquare Scene 的任何教程。如何通过类似于 ARHitCubeScene 的一键显示模型?
- r - 在 Shiny 中,数据框可以用作 selectizeInput 中的选择吗?
- php - 如何将 JSON 字符串的引号写入回显的 PHP 以为 jQuery 准备?
- c# - Telerik RadAutoCompleteBox 重复选择问题
- java - 如何将下载的图像存储在缓存中