r - 如何使用R将多列堆叠成一列
问题描述
我有以下数据框:
A <- c(3,5,6,7)
B <- c(2,4,5,3)
C <- c(4,6,7,8)
D <- c(2,4,5,3)
gene <- c(1,2,3,4)
df <- data.frame(gene,A,B,C,D)
df
gene A B C D
1 1 3 2 4 2
2 2 5 4 6 4
3 3 6 5 7 5
4 4 7 3 8 3
如何将每个字母列堆叠到一个名为“count”的新列中,以便有另一个名为“sample”的新列跟踪每个计数值来自的原始列(即,我想要以下输出) :
count sample
3 A
5 A
6 A
7 A
2 B
4 B
5 B
3 B
4 C
6 C
7 C
8 C
2 D
4 D
5 D
3 D
抱歉,这很难解释,但上面的输出数据框应该可以清楚地说明。
谢谢
解决方案
在base R
,stack
删除第一列后使用
out <- stack(df[-1])
names(out) <- c("count", "sample")
推荐阅读
- wordpress - 无法从 Google App Engine PHP 7.2 环境建立外部 HTTP 连接
- r - 如何根据 ID 重命名文件名
- python - 如何在 Python 中为大型复杂参数获取 gamma 函数的值?
- .net - .NET 和 .NET Core 的 dotnet.exe 命令
- python - 将文本搜索添加到基于内容的图像检索 (convnet)
- json - reduce 函数正在打印一个空字典 [:]
- sql - 汇总不同仓库位置的库存值
- node.js - TCP 数据包中的禁止字符
- android-studio - 如何从 Android Studio 的“分析->检查代码”中排除某些目录?
- android - 如何通过 android 中的数据绑定将 onTextChanged 侦听器添加到包含布局 xml