尽管stringsAsFactors = FALSE,因此无效的因子级data.frame错误

时间:2013-07-17 10:15:51

标签: r dataframe r-factor

我有因子水平问题。我认为它可以用stringAsFactors = FALSE解决,但它不起作用。

此处pL是包含290个元素的列表。 我想定义一个空的data.frame,而不是使用rbind填充它。

ttable <- data.frame(ID_REF=c(1,2,3,4,5,6), IDENTIFIER=c("ERN2", "HTR5A", "ACPP", "GNAO1", "HTR1F", "DNAH1"), GSM11708=c("<NA>", 1.994, "<NA>","<NA>","<NA>","<NA>"), GSM11735=c(0.18, "<NA>","<NA>","<NA>","<NA>","<NA>"))
pL <- list("GSTT4", "AHRR", "HAX1", "DNM1L", "MEIS1", "SLC17A3", "CES2", "MLL2", "IKBKB", "GSTA4")

gn <- data.frame(gn = character(0), stringsAsFactors=FALSE)

for(i in pL){
  n <- nrow(subset(ttable, IDENTIFIER==i))
  if (n < 1){
    gn <- rbind(gn, i)
  }
  else{
    for(j in 1:n){
      gn <- rbind(gn, i)
    }
  }
}

1 个答案:

答案 0 :(得分:0)

没有可重复的例子,很难提供帮助。但这应该有效:

gn1 <- unlist(lapply(pL,function(i){
  n <- nrow(subset(ttable, IDENTIFIER==i))
  gn <- if (n < 1) i  else seq(n)
}))

z我运行你的代码我得到gn data.frame。你跑我的,你得到gn1向量。我cbind 2进行比较。

    cbind(as.data.frame(gn1),gn)
       gn1 X.GSTT4.
1    GSTT4    GSTT4
2     AHRR     AHRR
3     HAX1     HAX1
4    DNM1L    DNM1L
5    MEIS1    MEIS1
6  SLC17A3  SLC17A3
7     CES2     CES2
8     MLL2     MLL2
9    IKBKB    IKBKB
10   GSTA4    GSTA4

当您播种时,2列是相同的。