我有因子水平问题。我认为它可以用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)
}
}
}
答案 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列是相同的。