我刚学会了,ifelse
会返回一个与test
形状相同的值。
如果某个逻辑变量设置为TRUE
,我想从数据框返回一个日志转换列,但我只得到一个值,有时候是NaN
。
有没有正确的方法来做到这一点。我喜欢ifelse
解决方案,因为它易于阅读。
以下是一些示例代码:
log_a <- TRUE
jnk <- data.frame(a=c(1,2,3,4))
ifelse(log_a, log2(jnk[['a']]), jnk[['a']])
我期望的是0.000000 1.000000 1.584963 2.000000
,但我得到0
。
我想用这个结果来构建另一个数据框:
jnk2 <- data.frame(x=ifelse(log_a, log2(jnk[['a']]), jnk[['a']]), y=c(1,2,3,4))
答案 0 :(得分:1)
试试这个:
sapply(jnk$a, function(i) ifelse(log_a, log2(i), i))
# result
# [1] 0.000000 1.000000 1.584963 2.000000