根据数据矩阵中的另一列生成新列
Generate a new column based on another column in the data matrix
我有这样的数据:
> 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)
我有这样的数据:
> 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)