我正在探索数据并得出一个函数将是有用的。附加的代码使用了iris数据集,有4次尝试创建一个可用的函数,但每个尝试都给出了找不到group_by变量的错误。
这是代码。第一部分只是简单的代码。接下来的4个是失败的功能。
# dplyr group by programically
library(dplyr)
data(iris)
dtbl <- tbl_df(iris)
dtbl %>% group_by(Species) %>%
mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
mean(Sepal.Width))
datafun <- function(groupbyvar)
library(dplyr)
data(iris)
groupbyvar <- as.character(groupbyvar)
dtbl <- tbl_df(iris)
dtbl %>% group_by_(groupbyvar) %>%
mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
mean(Sepal.Width))
bb <- datafun("Species")
datafun <- function(groupbyvar)
library(dplyr)
data(iris)
groupbyvar <- as.character(groupbyvar)
dtbl <- tbl_df(iris)
dtbl %>% group_by_("groupbyvar") %>%
mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
mean(Sepal.Width))
bb <- datafun("Species")
datafun <- function(groupbyvar)
library(dplyr)
data(iris)
groupbyvar <- as.character(groupbyvar)
dtbl <- tbl_df(iris)
dtbl %>% group_by(groupbyvar) %>%
mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
mean(Sepal.Width))
bb <- datafun("Species")
datafun <- function(groupbyvar)
library(dplyr)
data(iris)
groupbyvar <- as.character(groupbyvar)
dtbl <- tbl_df(iris)
dtbl %>% group_by("groupbyvar") %>%
mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
mean(Sepal.Width))
bb <- datafun("Species")
and the console output
> # dplyr group by programically
> library(dplyr)
> data(iris)
> dtbl <- tbl_df(iris)
> dtbl %>% group_by(Species) %>%
+ mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
+ summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
+ mean(Sepal.Width))
Source: local data frame [3 x 3]
Species MeanSepalLenght MeanSepalWidth
(fctr) (dbl) (dbl)
1 setosa 5.006 3.428
2 versicolor 5.936 2.770
3 virginica 6.588 2.974
>
>
> datafun <- function(groupbyvar)
+ library(dplyr)
> data(iris)
> groupbyvar <- as.character(groupbyvar)
Error: object 'groupbyvar' not found
> dtbl <- tbl_df(iris)
> dtbl %>% group_by_(groupbyvar) %>%
+ mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
+ summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
+ mean(Sepal.Width))
Hide Traceback
Rerun with Debug
Error in as.lazy_dots(list(...)) : object 'groupbyvar' not found
12 as.lazy_dots(list(...))
11 lazyeval::all_dots(.dots, ...)
10 group_by_prepare(.data, ..., .dots = .dots, add = add)
9 group_by_.data.frame(., groupbyvar)
8 group_by_(., groupbyvar)
7 function_list[[i]](value)
6 freduce(value, `_function_list`)
5 `_fseq`(`_lhs`)
4 eval(expr, envir, enclos)
3 eval(quote(`_fseq`(`_lhs`)), env, env)
2 withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
1 dtbl %>% group_by_(groupbyvar) %>% mutate(SpeciesArea = Sepal.Length *
Sepal.Width) %>% summarise(MeanSepalLenght = mean(Sepal.Length),
MeanSepalWidth = mean(Sepal.Width))
>
> bb <- datafun("Species")
>
> datafun <- function(groupbyvar)
+ library(dplyr)
> data(iris)
> groupbyvar <- as.character(groupbyvar)
Error: object 'groupbyvar' not found
> dtbl <- tbl_df(iris)
> dtbl %>% group_by_("groupbyvar") %>%
+ mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
+ summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
+ mean(Sepal.Width))
Hide Traceback
Rerun with Debug
Error: unknown column 'groupbyvar'
12 stop(structure(list(message = "unknown column 'groupbyvar'",
call = NULL, cppstack = NULL), .Names = c("message", "call",
"cppstack"), class = c("Rcpp::exception", "C++Error", "error",
"condition")))
11 grouped_df_impl(data, unname(vars), drop)
10 grouped_df(groups$data, groups$groups)
9 group_by_.data.frame(., "groupbyvar")
8 group_by_(., "groupbyvar")
7 function_list[[i]](value)
6 freduce(value, `_function_list`)
5 `_fseq`(`_lhs`)
4 eval(expr, envir, enclos)
3 eval(quote(`_fseq`(`_lhs`)), env, env)
2 withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
1 dtbl %>% group_by_("groupbyvar") %>% mutate(SpeciesArea = Sepal.Length *
Sepal.Width) %>% summarise(MeanSepalLenght = mean(Sepal.Length),
MeanSepalWidth = mean(Sepal.Width))
>
> bb <- datafun("Species")
>
>
> datafun <- function(groupbyvar)
+ library(dplyr)
> data(iris)
> groupbyvar <- as.character(groupbyvar)
Error: object 'groupbyvar' not found
> dtbl <- tbl_df(iris)
> dtbl %>% group_by(groupbyvar) %>%
+ mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
+ summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
+ mean(Sepal.Width))
Hide Traceback
Rerun with Debug
Error: unknown column 'groupbyvar'
13 stop(structure(list(message = "unknown column 'groupbyvar'",
call = NULL, cppstack = NULL), .Names = c("message", "call",
"cppstack"), class = c("Rcpp::exception", "C++Error", "error",
"condition")))
12 grouped_df_impl(data, unname(vars), drop)
11 grouped_df(groups$data, groups$groups)
10 group_by_.data.frame(.data, .dots = lazyeval::lazy_dots(...),
add = add)
9 group_by_(.data, .dots = lazyeval::lazy_dots(...), add = add)
8 group_by(., groupbyvar)
7 function_list[[i]](value)
6 freduce(value, `_function_list`)
5 `_fseq`(`_lhs`)
4 eval(expr, envir, enclos)
3 eval(quote(`_fseq`(`_lhs`)), env, env)
2 withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
1 dtbl %>% group_by(groupbyvar) %>% mutate(SpeciesArea = Sepal.Length *
Sepal.Width) %>% summarise(MeanSepalLenght = mean(Sepal.Length),
MeanSepalWidth = mean(Sepal.Width))
>
> bb <- datafun("Species")
>
> datafun <- function(groupbyvar)
+ library(dplyr)
> data(iris)
> groupbyvar <- as.character(groupbyvar)
Error: object 'groupbyvar' not found
> dtbl <- tbl_df(iris)
> dtbl %>% group_by("groupbyvar") %>%
+ mutate(SpeciesArea = Sepal.Length * Sepal.Width) %>%
+ summarise(MeanSepalLenght = mean(Sepal.Length), MeanSepalWidth =
+ mean(Sepal.Width))
Source: local data frame [1 x 3]
"groupbyvar" MeanSepalLenght MeanSepalWidth
(chr) (dbl) (dbl)
1 groupbyvar 5.843333 3.057333
>
> bb <- datafun("Species")
>
感谢任何帮助。我一天中的大部分时间都花费了大量时间来完成这项工作。没有发现任何解决问题的方法,当然我可以复制,粘贴,搜索和替换,但这是最后的手段。我希望从数据中创建有意义的变量将揭示我怀疑隐藏在数据中的混淆因素。
由于 卡尔萨顿