Очень хорошее наблюдение. Это пример функции замены , если вы внимательно посмотрите и наберете apropos('attributes')
в консоли R, она вернет
"attributes"
"attributes<-"
вместе с другими выходами.
Итак, в основном, место, где вы можете назначить левый знак оператора присваивания, вы не вызываете attributes
, вы на самом деле вызываете attributes<-
, в R есть много функций, например, таких: names(), colnames(), length()
и т. Д. В вашем примере log
не имеет заменяющего аналога, следовательно, он не работает так, как вы ожидали.
Definiton (из расширенной ссылки на книгу R, приведенной ниже):
Функции замены действуют так, как будто они изменяют свои аргументы на месте,
и иметь специальное имя ххх <-. У них обычно есть два аргумента (х
и ценность), хотя они могут иметь больше, и они должны вернуть
модифицированный объект </p>
Если вы хотите увидеть список этих функций, вы можете сделать:
apropos('<-$')
и вы можете проверить похожие функции, которые имеют аналогичные свойства.
Вы можете прочитать об этом здесь и здесь
Я надеюсь, что это решит вашу проблему.