Взятие логарифмической разницы, когда NA включены в R - PullRequest
0 голосов
/ 05 ноября 2018

Я хотел бы взять абсолютную логарифмическую разницу столбцов X и Y, игнорируя при этом NA

>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))

Ошибка: «Log» не имеет значения для факторов

Есть ли обходной путь в R, чтобы игнорировать NA, когда я делаю этот расчет?

1 Ответ

0 голосов
/ 05 ноября 2018

NA s не являются проблемой для используемых функций. Если вы вычислите лог, разность и абсолютные значения всего за NA с, он вернет NA. Как предположил @rar, ваша проблема заключается в структуре ваших столбцов. Кажется, что data$X и data$Y относятся к классу factor, который не может быть оценен функцией log (см. Ваше сообщение об ошибке). Вы можете просто преобразовать их в числовые, прежде чем передавать их в функцию log, так:

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

Пожалуйста, перепроверьте структуру вашего фрейма данных, чтобы подтвердить, что вы X и Y действительно принадлежите к классу factor: str(data)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...