- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看来summarise
和 summarise_each
正在对它们提供的回调函数进行不必要的额外调用。假设我们有以下
X <- data.frame( Group = rep(c("G1","G2"),2:3), Var1 = 1:5, Var2 = 11:15 )
Group Var1 Var2
1 G1 1 11
2 G1 2 12
3 G2 3 13
4 G2 4 14
5 G2 5 15
f <- function(v)
{
cat( "Calling f with vector", v, "\n" )
## ...additional bookkeeping and processing...
mean(v)
}
dplyr
,我们可以通过以下方式进行:
X %>% group_by( Group ) %>% summarise_each( funs(f) )
f
为 G1 中的每个变量额外调用一次:
Calling f with vector 1 2
Calling f with vector 1 2
Calling f with vector 3 4 5
Calling f with vector 11 12
Calling f with vector 11 12
Calling f with vector 13 14 15
# A tibble: 2 x 3
Group Var1 Var2
<fctr> <dbl> <dbl>
1 G1 1.5 11.5
2 G2 4.0 14.0
summarize
时也会出现同样的问题:
> X %>% group_by( Group ) %>% summarise( test = f(Var1) )
Calling f with vector 1 2
Calling f with vector 1 2
Calling f with vector 3 4 5
# A tibble: 2 × 2
Group test
<fctr> <dbl>
1 G1 1.5
2 G2 4.0
summarise
和
summarise_each
从打那些额外的电话?
R
版本 3.3.0 和
dplyr
版本 0.5.0)
group_by
之间的相互作用有关。和
summarise
/
summarise_each
.没有分组,就不会进行额外的调用。另外,
mutate
和
mutate_each
不要遭受这个问题。 (信用:
eddi 和
eipi10 这些发现)
最佳答案
尽管 dplyr 0.5.0(2016-06-24 发布)中仍然存在此问题,但已在 dplyr GitHub repro 中修复。已通过 this commit 修复于 2016-09-24 制作。我已经确认,当我在上一次提交中 checkout 和构建版本时,我可以重现该问题,但在从该版本或后续版本构建时无法重现。
(是的,在我找到它之前,我尝试了一大堆其他的。为什么我为了获得想象中的互联网积分而竭尽全力,我留给我的治疗师一个问题。:)
特别是在函数 SEXP process_data(const Data& gdf)
在 inst/include/dplyr/Result/CallbackProcessor.h
,请注意以下更改:
CLASS* obj = static_cast<CLASS*>(this);
typename Data::group_iterator git = gdf.group_begin();
RObject first_result = obj->process_chunk(*git);
++git; // This line was added
for (int i = 1; i < ngroups; ++git, ++i) { // changed from starting at i = 0
RObject chunk = obj->process_chunk(*git);
关于r - dplyr summarise() 和 summarise_each() 对提供的函数进行额外调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42470926/
如何使用 dplyr 中的 summarise_each 计算数据集中所有字段的加权平均值?例如,假设我们要将 分组mtcars 数据集来自 气缸 并计算所有列的加权平均值,其中权重为 齿轮柱子。我已
我有一个这样的数据框: metric1 metric2 metric3 field1 field2 1 1.07809668 4.2569882 7.1710095
我可以总结我的数据并使用以下方法计算平均值和标准差值: summary % group_by(year,Spp,CO2) %>% summarise_each(funs(mean,sd)) 但是,我也
我想使用 summarise_each() 将多个函数应用于分组数据集。但是,我不想将每个函数应用于所有列,而是希望将每个函数应用于特定的子集。我意识到我可以通过使用 summarise() 指定每一
我有一个包含 30 个变量的数据集。其中之一是指示变量(0 或 1),我想减去某些列的标签为 1 的行的平均值(类似于居中,但取某些行而不是整列的平均值)。 Col2 Col3 Col4 label
有没有办法指导dplyr使用 summarise_each带规范first和 na.rm=TRUE ? 我有一个包含许多 NA 和数值的数据框。 A 列是患者 ID。我想根据患者 ID 通过获取每个变
问候:我是 dplyr 的新手,并且在格式化我的输出时遇到了一些挑战。这是一个使用 melt 生成一些可重现数据的代码片段。让它变成我需要的形状。 set.seed(1234) library(res
有没有办法使用summarise_each()计算数据框中的记录数,但忽略 NA ? 示例/样本数据 df_sample df_samp var_1 var_2 var_3 var_4 var
我正在使用以下代码和数据来汇总值: bvsubcount.subset %>% group_by(bv.parentbvid) %>% summarise_each(funs(sum),
看来summarise和 summarise_each正在对它们提供的回调函数进行不必要的额外调用。假设我们有以下 X % group_by( Group ) %>% summarise_each(
有没有办法指示dplyr将summarise_each与na.rm=TRUE一起使用?我想用 summarise_each("mean") 获取变量的平均值,但我不知道如何指定它来忽略缺失值。 最佳答
这个问题已经有答案了: Using anonymous functions with summarize_each or mutate_each (1 个回答) 已关闭 5 年前。 众所周知,可以调用
我正在尝试使用 dplyr 对数据框进行分组和汇总,但不断收到以下错误: Error: cannot modify grouping variable 这是生成它的代码: data_summary %
我试图将一些 dplyr 魔法包装在一个函数中以生成一个 data.frame,然后我用 xtable 打印它。 最终目标是拥有 this 的 dplyr 版本工作和阅读我遇到了非常有用的 summa
以下面的例子为例。 library(dplyr) temp % mutate_each(funs(mean, median)) 检查 temp_each 的名称,我们看到 > names(te
我对 dplyr 动词 mutate_each 有点困惑。 使用基本的 mutate 将一列数据转换为 z 分数,并在 data.frame 中创建一个新列(此处名称为 z_score_data):
我是一名优秀的程序员,十分优秀!