当NA包含在R中时,取对数差

时间:2018-11-05 04:47:47

标签: r

我想在忽略NA的同时获取X和Y列的绝对对数差

>data
       X           Y
40.29958    43.97335
52.89373    51.79441
      NA          NA
      NA          NA
27.10122          NA
39.14277    35.10647
32.26840    33.05149
27.38999    28.07941

我的代码:

diff <-abs(log(data$X)-log(data$Y))
  

错误:   “日志”对因素没有意义

进行此计算时,R中是否有一种解决方法可以忽略NA?

1 个答案:

答案 0 :(得分:0)

NA对于所使用的功能没有问题。如果仅用NA s计算对数,差值和绝对值,它将返回NA。正如@rar所建议的,您的问题出在您列的结构中。似乎data$Xdata$Y属于factor类,无法通过log函数求值(请参见错误消息)。您可以先将它们转换为数字,然后再将它们传递给log函数,因此:

 diff <-abs(log(as.numeric(data$X))-log(as.numeric(data$Y)))

请仔细检查数据框的结构,以确认您XY确实属于factor类:str(data)