1
我有一个数据是这样的:生成一个新的列
> 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
任何人都可以让我知道一个更聪明的方法来生成数据,就像使用应用或其他功能?谢谢你教我!
我想'数据$ FC < - 符号(DF $ log2FC)* 2^ABS(DF $ log2FC)'应该没有任何'if'工作或'ifelse'或'for'循环。 – nicola
@nicola - 这应该是一个答案。 – thelatemail