Включайте уровни нулевого количества в результате таблицы ()

Все в порядке в вашей функции. Вы, кажется, потерялись с позиционными переменными и аргументами ключевых слов.

Позвольте мне объяснить: позиционные аргументы, a и b в вашем случае, являются обязательными (и могут иметь значения по умолчанию). Другие аргументы необязательны. Если вы хотите сделать аргумент обязательным или иметь значение по умолчанию, поставьте его перед * args и ** kwargs. Но помните, что вы не можете предоставить аргумент дважды:

def x(a = 1, b = 2, *args, **kwargs):
    print a, b, args, kwargs

>>> x(3, 4, 5, b=6)
TypeError: x() got multiple values for keyword argument 'b'

Есть другой способ, но не настолько удобочитаемый, иметь значения по умолчанию для аргументов и не иметь позиционных аргументов:

def x(*args, **kwargs):
    kwargs.updae({'a': 1, 'b': 2})

Ваша функция, которая анализирует аргументы, в порядке, хотя я не понимаю, почему вы пишете varargs и keywords в _. Он передает аргументы прозрачно:

def x(a = 1, b = 2, *args, **kwargs):
    print a, b, args, kwargs

def y(*args, **kwargs):
    x(*args, **kwargs)

>>> y(3, 4, 5, 6)
3 4 (5, 6) {}

>>> y(3, 4, 5, b=6)
TypeError: x() got multiple values for keyword argument 'b'
35
задан Henrik 24 September 2018 в 12:13
поделиться

1 ответ

Преобразуйте вашу переменную в коэффициент и установите категории, которые вы хотите включить в результат, используя уровни . Значения с нулевым счетчиком также появятся в результате:

y <- c(0, 0, 1, 3, 4, 4)
table(factor(y, levels = 0:5))
# 0 1 2 3 4 5 
# 2 1 0 1 2 0 
49
ответ дан 27 November 2019 в 07:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: