如何将列用作行中的条目?

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