2016-05-14 65 views
0

我想了解多一點關於R和跨這裏Kaggle這真的好劇本就來了:https://www.kaggle.com/msjgriffiths/d/kaggle/sf-salaries/explore-sf-salary-data/codeR:創建一個函數列表調用

我在R A初學者,我掙扎理解所使用的海報的代碼,其總結如下的一部分:

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功能。如果我讀了dplyr的R文檔,它說它需要一個由3個參數指定的函數列表。根據這個線程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個參數。在說明文檔中,它說

指定的函數列表:它們的名稱,「mean」函數本身,意味着對函數的調用。作爲虛擬參數,意思是(。,na.rm = TRUE)

這是3種不同的方法來將參數格式設置爲funsfuns的每個參數都被解釋爲一個函數。

unique_vars = length(unique(.))將由length(unique(.))進行彙總的輸出標記爲名爲「unique_vars」的列。

相關問題