Если вы говорите о map
из пакета purrr
, эта функция предназначена для отображения функции по вектору.
length(unique(iris$Sepal.Length))
- это конкретное значение (35 для стандартного iris
набор данных), поэтому
iris_unique <- map(iris, length(unique(iris$Sepal.Length)))
эквивалентно
iris_unique <- map(iris, 35)
, поскольку 35
не является функцией, это, вероятно, не то, что вы имеете в виду.Однако map()
пытается разобраться в этом. В документации говорится, что если для параметра функции вы передадите ему "символьный вектор, числовой вектор или список, он преобразуется в функцию экстрактора", что означает, что 35
преобразуется в функцию function(x){x[35]}
, следовательно, конечный результат состоит в извлечении 35-го наблюдения iris
.
С другой стороны, документация также описывает, как она переводит формулы в функции.В соответствии с этим формула ~length(unique(.))
переводится в функцию function(x){length(unique(x))}
.Поскольку это функция, имеет смысл сопоставить ее со списком или вектором.