R:创建函数调用列表

时间:2016-05-14 17:48:50

标签: r dplyr kaggle

我试图更多地了解R并在Kaggle上发现了这个非常好的剧本:https://www.kaggle.com/msjgriffiths/d/kaggle/sf-salaries/explore-sf-salary-data/code

我是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函数。如果我读了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

1 个答案:

答案 0 :(得分:0)

funs不需要3个参数。在文档中,它说的是

  

指定的功能列表:他们的名字,&#34;意思是&#34;函数本身,意味着对函数的调用。作为虚拟参数,mean(。,na.rm = TRUE)

这是将参数格式化为funs的3种不同方法。 funs的每个参数都被解释为一个函数。

unique_vars = length(unique(.))length(unique(.))汇总的输出标记为名为&#34; unique_vars&#34;。

的列。