【发布时间】:2017-04-26 03:16:53
【问题描述】:
考虑对数据框进行这种 dplyr 处理:
existing.df <- filter(existing.df, justanEx > 0) %>%
arrange(desc(justanEx)) %>%
mutate(mean = mean(justanEx),
median = median(justanEx),
rank = seq_len(length(anotherVar)))
我必须在我正在做的工作中做很多事情,所以我尝试为它制作一个函数:
df.overZ <- function(data, var){
df <- data %>% filter(var > 0) %>%
arrange_(desc((var))) %>%
mutate(mean = mean(var),
median = median(var),
rank = seq_len(length(anotherVar)))
df
}
他们
existing.df <- df.overZ(existing.df, "realVar")
但这给了我这个错误:
Error in arrange_impl(.data, dots) :
incorrect size (1), expecting : 50000
如果我尝试:
existing.df <- df.overZ(existing.df, realVar)
我收到此错误:
Error in filter_impl(.data, dots) : obj 'realVar' not found
我已经尝试过filter_、arrange_和mutate_,
但没有任何意义。
这行得通吗?
但以下功能有效:
make.df <- function(var, n){
df <- orign.df %>% filter(!is.na(var)) %>%
select(1:2,n,3:6)
df
}
existing.df <- make.df("oneVar",7)
【问题讨论】:
-
错误信息是什么?另外,请提供一些示例数据(
data.df的内容)。 -
请使用
dput显示一个小示例数据以及基于此的预期输出 -
添加了错误信息。请注意,这必须适用于现有的 data.frame,任何 data.frame。