我有这样的数据:
> data
gene log2FC
1 A NA
2 B 1
3 C 2
4 D -3
我想使用基于log2FC的新列FC生成数据:
> data
gene log2FC FC
1 A NA NA
2 B 1 2
3 C 2 4
4 D -3 -8
我写了一个循环来得到结果:
LFC <- data$log2FC
FC <- NULL
for ( i in 1:length(LFC) ) {
a <- LFC[i]
if ( is.na(a) ) {
FC[i] <- NA
} else {
if ( a < 0 ) {
FC[i] <- (-1)/(2^a)
} else {
FC[i] <- 2^a
}
}
}
data$FC <- FC
谁能让我知道一种更聪明的方式来生成数据,例如使用Apply或其他功能?谢谢你教我!
没有任何循环或if
ifelse
类似现象:
data$FC<-sign(df$log2FC)*2^abs(df$log2FC)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句