Error: Can only supply single unnamed argument to do()
Error: Can only supply single unnamed argument to do()
我尝试使用以下 link 中的代码,使用 bigvis 包对大型数据集进行可视化
http://rstudio-pubs-static.s3.amazonaws.com/7457_8740a6a481f042ad8d2bce17e7b5bd04.html#Grouped
来自 link 的函数是:
bin_by <- function(.data, ...){
plyr:::list_to_dataframe(do(.data,
function(.data, ...){
eval(substitute(condense(bin(...))),
env=.data,
enclos=parent.frame())
}
, ...)
,labels=attr(.data, 'labels'))
}
但是当我 运行 它 R 给了我这样的错误:
错误:只能为 do() 提供一个未命名的参数
调用自:named_args(args)
任何人都可以帮助我理解这一点吗?太感谢了!!
我不想直接 运行 condense 和 bin 因为我想做箱线图,如果有人能告诉我如何用 bigvis 做的话我也很感激。
函数dplyr::do和bugvis::bin已经有了很大的改变。以下代码将起作用(将 bigvis/dplyr 更新为当前 2017-04-28 Github 版本)
的确,您不再需要 list_to_dataframe。我认为 do
函数不会接受超过一个未命名的参数。此外,由于'...'用于传递不带引号的符号,因此检查函数(此处为bigvis::vis)是否已更新始终是一个好习惯。
注:
dplyr::do
函数可以在这里删除
plyr::list_to_dataframe
导致其他问题,因为 do/bin 函数的 return 值已更新。
library(ggplot2)
library(bigvis)
library(dplyr)
library(data.table)
f<-function(.data,x, width){
eval(substitute(condense(bin(x, width=width))),
env=.data,
enclos=parent.frame())
}
bin_by <- function(.data, x, width){
do(.data,f(.,x,width = width))
}
num <- 10e6
binwidth=1
obs <- rbind(data.frame(x=rnorm(num), name='normal'),
data.frame(x=rnorm(num, sd=6), name='wide'),
data.frame(x=rnorm(num, mean=3), name='right'))
bins <- bin_by(obs, x, binwidth)
ggplot(data=bins, aes(x=x, y=.count)) + geom_line() + geom_area(alpha=1/10, position="identity")
我尝试使用以下 link 中的代码,使用 bigvis 包对大型数据集进行可视化
http://rstudio-pubs-static.s3.amazonaws.com/7457_8740a6a481f042ad8d2bce17e7b5bd04.html#Grouped
来自 link 的函数是:
bin_by <- function(.data, ...){
plyr:::list_to_dataframe(do(.data,
function(.data, ...){
eval(substitute(condense(bin(...))),
env=.data,
enclos=parent.frame())
}
, ...)
,labels=attr(.data, 'labels'))
}
但是当我 运行 它 R 给了我这样的错误:
错误:只能为 do() 提供一个未命名的参数 调用自:named_args(args)
任何人都可以帮助我理解这一点吗?太感谢了!! 我不想直接 运行 condense 和 bin 因为我想做箱线图,如果有人能告诉我如何用 bigvis 做的话我也很感激。
函数dplyr::do和bugvis::bin已经有了很大的改变。以下代码将起作用(将 bigvis/dplyr 更新为当前 2017-04-28 Github 版本)
的确,您不再需要 list_to_dataframe。我认为 do
函数不会接受超过一个未命名的参数。此外,由于'...'用于传递不带引号的符号,因此检查函数(此处为bigvis::vis)是否已更新始终是一个好习惯。
注:
dplyr::do
函数可以在这里删除plyr::list_to_dataframe
导致其他问题,因为 do/bin 函数的 return 值已更新。
library(ggplot2)
library(bigvis)
library(dplyr)
library(data.table)
f<-function(.data,x, width){
eval(substitute(condense(bin(x, width=width))),
env=.data,
enclos=parent.frame())
}
bin_by <- function(.data, x, width){
do(.data,f(.,x,width = width))
}
num <- 10e6
binwidth=1
obs <- rbind(data.frame(x=rnorm(num), name='normal'),
data.frame(x=rnorm(num, sd=6), name='wide'),
data.frame(x=rnorm(num, mean=3), name='right'))
bins <- bin_by(obs, x, binwidth)
ggplot(data=bins, aes(x=x, y=.count)) + geom_line() + geom_area(alpha=1/10, position="identity")