2015-08-17 5 views
2

Очевидно, функция «object.size» принимает только один аргумент (т. Е. Объект), но не «единицы» или любые другие аргументы. Как я могу справиться с этим?Почему «object.size» не принимает аргумент «units»

вот что произойдет, если я попробовать его в любом случае:

object.size(averageBySubAct, units = "Mb") 

Error in object.size(averageBySubAct, units = "Mb") : 
    unused argument (units = "Mb") 
+2

'печати (object.size (х), ед = "MB")' или 'pryr :: object_size (x) ' – ExperimenteR

+0

Или' format (object.size (x), units = "Mb") '. Там все в верхней части 'help (object.size)' –

+2

Downvoting это необоснованно, это очень законный вопрос нового пользователя: я использовал R уже 7 лет и все еще путешествую по этому пути. путаница вводится в man-странице 'object.size()', которая явно ссылается на аргумент единиц, без четкого указания, что это относится к связанным с ним методам S3 'print/format', а не' object.size() '. Как и многие из нас, я написал пользовательский fn, чтобы получить форматированный размер объекта (до 'pryr :: object_size' когда-либо существовал). – smci

ответ

4
?object.size 

это дает

object.size(x) 

## S3 method for class 'object_size' 
format(x, units = "b", ...) 
## S3 method for class 'object_size' 
print(x, quote = FALSE, units = "b", ...) 

обратите внимание, что object.size() принимает один аргумент, x. Тем не менее, мы можем напечатать результат object.size(x), а затем использовать units аргумент (как указано в комментариях)

print(object.size(c(5,6,1)), units="Mb") 
# 0 Mb 
+2

«формат», вероятно, предпочтительнее, поскольку результаты сохраняются, как показано, например. сравните 'form <- format (object.size (x), units =" Mb ")' и 'prnt <- print (object.size (x), units =" Mb ")', а затем 'prnt; form;' – thelatemail

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