2016-11-07 4 views
-2

Я пытаюсь присвоить класс объекту из функции без успеха.Назначение класса объекту из функции в R

 a <- 1 
     f <- function(x){class(x) <- "first"} 
     f(a) 
     class(a) 
     [1] "numeric" 

Я не понимаю, почему назначение не работает. Не могли бы вы объяснить мне, почему и сказать мне, как изменить класс объекта изнутри функции? Спасибо.

+1

Подсказка: вам необходимо назначить соответствующую среду. Другой намек: Это не очень хорошая идея. –

ответ

0

Попробуйте

a <- 1 

f <- function(x){ structure(x, class = "first") } 
b <- f(a) 
class(b) 
[1] "first" 

Как @Rich намекал в комментариях, вы не определили новый объект, поэтому, когда вы сделали class(a) это было просто вернуться к исходному определению a, который был numeric (потому что вы никогда не переопределяли a, чтобы быть f(a)).

Смежные вопросы