将tibble作为带有行名的矩阵传播

时间:2018-03-04 16:46:26

标签: r matrix dplyr tidyr tibble

我希望传播tibble作为矩阵,第一列为如下所示的rownames:

必需

        E1         E2
G1  0.5855288 -1.8179560
G2  0.7094660  0.6300986
G3 -0.1093033 -0.2761841
G4 -0.4534972 -0.2841597
G5  0.6058875 -0.9193220

获得

到目前为止得到以下

            E1         E2
[1,]  0.5855288 -1.8179560
[2,]  0.7094660  0.6300986
[3,] -0.1093033 -0.2761841
[4,] -0.4534972 -0.2841597
[5,]  0.6058875 -0.9193220

最低工作示例

使用给定的代码

set.seed(12345)
Y   <- rnorm(10)
Env <- paste0("E", rep(1:2, each = 5))
Gen <- paste0("G", rep(1:5, times = 2))
df1 <- data.frame(Y, Env, Gen)

library(magrittr)
library(tidyverse)

df1 %>%
  tidyr::spread(key =  Env, value = Y) %>%
  dplyr::ungroup() %>%
  dplyr::select(-Gen) %>%
  as.matrix()

1 个答案:

答案 0 :(得分:1)

在我们使用layout(binding = 0, std140) uniform uCommon 时,该选项为magrittr

set_rownames

也可以使用library(tidyverse) df1 %>% spread(Env, Y) %>% set_rownames(.$Gen) %>% select(-Gen) %>% as.matrix # E1 E2 #G1 0.5855288 -1.8179560 #G2 0.7094660 0.6300986 #G3 -0.1093033 -0.2761841 #G4 -0.4534972 -0.2841597 #G5 0.6058875 -0.9193220

中的acast来完成
reshape2