2016-05-14 5 views
0

Я пытаюсь понять немного больше о R и наткнулся на это на самом деле хороший сценарий здесь на Kaggle: https://www.kaggle.com/msjgriffiths/d/kaggle/sf-salaries/explore-sf-salary-data/codeR: Создать список функций вызовов

Я новичок в R, и я изо всех сил понимать часть кода плакат используется, который приводится ниже:

data_csv <- read_csv("../Salaries.csv", na=c("Not Provided")) 
data <- data_csv 
glimpse(data_csv) 
non_numeric_vars <- names(data)[!sapply(data, is.numeric)] 
data %>% 
    select(one_of(non_numeric_vars)) %>% 
summarise_each(funs(unique_vars = length(unique(.)))) 

выбор Я не понимание является funs функции в коде выше. Если я прочитал R docs для dplyr, он говорит, что ему нужен список функций, указанных тремя аргументами. Где три аргумента или он был подключен по трубопроводу в соответствии с этой нитью What does %>% mean in R?

Также я попытался найти документы для unique_vars, но ничего не придумал. Я не уверен, где я могу больше узнать об этой переменной?

funs {dplyr} R Documentation Create a list of functions calls. 

Description 

funs provides a flexible way to generate a named list of functions for input to other functions like summarise_each. 

Usage 

funs(...) 

funs_(dots) Arguments 

dots,...  A list of functions specified by: Their name, "mean" The function itself, mean A call to the function with . as a dummy parameter, mean(., na.rm = TRUE) Examples 

funs(mean, "mean", mean(., na.rm = TRUE)) 

# Overide default names funs(m1 = mean, m2 = "mean", m3 = mean(., na.rm = TRUE)) 

# If you have function names in a vector, use funs_ fs <- c("min", "max") funs_(fs) 

В результате после запуска своего кода ниже - не уверен, где unique_vars переменная входит в его результатах:

## Source: local data frame [1 x 6] 
## 
## EmployeeName JobTitle Benefits Notes Agency Status 
##   (int) (int) (int) (int) (int) (int) 
## 1  110811  2159 98648  1  1  3 
+0

'unique_vars' не является функцией; это имя параметра, которое программист создает для значения. Программист просто получает количество уникальных значений для каждой категориальной переменной. –

+0

@ 42, но результат не показывает строку, которая говорит unique_vars, зачем ее называть, если вы не можете ее увидеть? – Simon

ответ

0

funs не нуждается в 3-х аргументов. В документации, где указано:

Список функций, указанных: Их имя, «среднее». Сама функция, означает вызов функции с. в качестве фиктивного параметра, среднее значение (., na.rm = TRUE)

Это 3 различных способа форматирования аргументов funs. Каждый аргумент funs интерпретируется как функция.

unique_vars = length(unique(.)) указывает на результат суммирования на length(unique(.)) в качестве столбца под названием «unique_vars».