使数据框不在列表中

时间:2016-12-23 22:08:37

标签: r

我的问题非常简单:我有一个包含3列的数据框

       > head(subset_only_aster)
                       compound                                     contrast sign_level
2  10 + 11 + 12 + 13 + 14-MeC30  Precocene.undeveloped - Acetone.undeveloped  *         
7  10 + 11 + 12 + 13 + 14-MeC30    Precocene.developed - Acetone.undeveloped **         

其中我想制作一个数据框,其中'复合'应该是行名(共有65种化合物),对比' (这是一个有6个级别的变量)应该是列(6列)和变量' sign_level'应该是数据框中的数据。

不知道从哪里开始,也无法在网上找到答案。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

以下是基础R解决方案:

dat <- expand.grid(compounds=letters[1:3], contrast=LETTERS[5:10])
dat[, "sgn"] <- sample(c("*", "**", "***"), nrow(dat), replace=TRUE)
reshape(dat, direction="wide", idvar="compounds", timevar="contrast")

答案 1 :(得分:0)

您可以在tidyr中使用spread-function:

DF<-data.frame(compound=rep(LETTERS[1:2],2),
    contrast=c(rep(letters[1],2),rep(letters[2],2)),
           signlevel=1:4)

enter image description here

library(tidyr)
DF2<-tidyr::spread(DF,contrast,signlevel)

enter image description here