如何将列用作行中的条目?
How can I use columns as entries in rows?
在附图中你可以看到两个数据帧。我想将第一个数据框转换为第二个数据框。我觉得可能有一个简单的解决方案,我只是不知道。
请注意,此示例是在 Excel 中创建的,“实际工作”将在 R 中完成。
你需要pivot_longer
.
library(tidyr)
df %>%
pivot_longer(cols=starts_with("Gene"), names_to="Gene", values_to="Count")
这很容易用 tidyr::pivot_longer()
完成。
textFile <- "Volume,Gene1,Gene2,Gene3,Gene4,Gene5
Set 1,1,2,3,4,5
Set 2,6,7,8,9,10
Set 3,11,12,13,14,15"
df <- read.csv(text = textFile,header=TRUE)
library(tidyr)
df %>% pivot_longer(.,-Volume,names_to = "Gene",values_to="Count")
...输出:
# A tibble: 15 x 3
Volume Gene Count
<chr> <chr> <int>
1 Set 1 Gene1 1
2 Set 1 Gene2 2
3 Set 1 Gene3 3
4 Set 1 Gene4 4
5 Set 1 Gene5 5
6 Set 2 Gene1 6
7 Set 2 Gene2 7
8 Set 2 Gene3 8
9 Set 2 Gene4 9
10 Set 2 Gene5 10
11 Set 3 Gene1 11
12 Set 3 Gene2 12
13 Set 3 Gene3 13
14 Set 3 Gene4 14
15 Set 3 Gene5 15
在附图中你可以看到两个数据帧。我想将第一个数据框转换为第二个数据框。我觉得可能有一个简单的解决方案,我只是不知道。
请注意,此示例是在 Excel 中创建的,“实际工作”将在 R 中完成。
你需要pivot_longer
.
library(tidyr)
df %>%
pivot_longer(cols=starts_with("Gene"), names_to="Gene", values_to="Count")
这很容易用 tidyr::pivot_longer()
完成。
textFile <- "Volume,Gene1,Gene2,Gene3,Gene4,Gene5
Set 1,1,2,3,4,5
Set 2,6,7,8,9,10
Set 3,11,12,13,14,15"
df <- read.csv(text = textFile,header=TRUE)
library(tidyr)
df %>% pivot_longer(.,-Volume,names_to = "Gene",values_to="Count")
...输出:
# A tibble: 15 x 3
Volume Gene Count
<chr> <chr> <int>
1 Set 1 Gene1 1
2 Set 1 Gene2 2
3 Set 1 Gene3 3
4 Set 1 Gene4 4
5 Set 1 Gene5 5
6 Set 2 Gene1 6
7 Set 2 Gene2 7
8 Set 2 Gene3 8
9 Set 2 Gene4 9
10 Set 2 Gene5 10
11 Set 3 Gene1 11
12 Set 3 Gene2 12
13 Set 3 Gene3 13
14 Set 3 Gene4 14
15 Set 3 Gene5 15