dplyr中的R用户定义函数摘要

罗里·肖

我正在尝试使用中的用户定义函数dplyr summarise我正在处理的数据集可以在此处下载,并准备使用以下代码进行使用:

raw_data <- read.csv("Output/FluxN2O.csv", stringsAsFactors = FALSE)
test_data <- raw_data %>% mutate(Chamber = as.factor(Chamber), Treatment = as.factor(Treatment. Time = as.POSIXct(Time, format = "%Y-%m-%d %H:%M:%S")))

这里是 head()

> head(test_data)
             Time Chamber_closed         Slope R_Squared Chamber Treatment   Flux_N2O Time_relative Time_cumulative
1 2016-05-03 00:08:21          10.23  8.873843e-07 0.6941540      10        AN  0.7567335           0.0             0.0
2 2016-05-03 06:10:21          12.24 -5.540907e-06 0.7728001      12         U -4.7251117         362.0           362.0
3 2016-05-03 06:42:21          10.24 -5.260463e-06 0.9583473      10        AN -4.4859581          32.0           394.0
4 2016-05-03 07:12:21           9.23 -5.320429e-06 0.7602987       9        IU -4.5370951          30.0           424.0
5 2016-05-03 07:42:21           7.23  3.135043e-06 0.7012436       7         U  2.6734669          30.0           454.0
6 2016-05-03 20:10:15           5.24  5.215290e-06 0.7508935       5        AN  4.4474364         747.9          1201.9

对于因子的每个水平Chamber,我想计算x =Time_cumulative和y =时曲线下的面积Flux_n2O

我可以使用传递给by调用的以下函数来执行此操作

cum_ems_func <- function(x) {last(cumtrapz(x$Time_cumulative, x$Flux_N2O))}
by(test_data, test_data$Chamber, cum_ems_func)

但是,dpylr由于要进行进一步的数据处理,而使用summarise输出将是最简单的,所以我更喜欢使用

当我尝试使用该dplyr方法时

test_data %>% 
group_by(Chamber) %>% 
summarise(cumulative_emmission = last(cumtrapz(Time_cumulative, Flux_N2O)))

我收到以下错误:

Error: Unsupported vector type language

我还尝试了cums_ems_func在summary调用中使用用户定义的函数,并产生错误:

test_data %>% 
group_by(Chamber) %>% 
summarise(cumulative_emmission = cum_ems_func())
Error: argument "x" is missing, with no default

有人可以为此指出正确的方向吗?

dimitris_ps

如果我正确理解,则应执行以下任一操作

library(pracma); library(dplyr)


test_data <- test_data %>% group_by(Chamber) %>% 
             mutate(emission=max(cumtrapz(Time_cumulative, Flux_N2O))) %>% ungroup

### or 

test_data <- test_data %>% group_by(Chamber) %>% 
             mutate(cumulative_emission=cumtrapz(Time_cumulative, Flux_N2O)) %>% ungroup

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R用户定义函数中的整洁评估语法

来自分类Dev

SQL中的用户定义的标量函数

来自分类Dev

gotoxy()用户定义的函数,在c ++中

来自分类Dev

在R中的用户定义函数中,如何检查R中的输入格式是否正确?

来自分类Dev

R中用户定义函数的性能

来自分类Dev

在SQLAlchemy中创建用户定义的函数

来自分类Dev

R data.table用户定义函数

来自分类Dev

使用dplyr(R)将条件表达式传递到用户定义的函数中

来自分类Dev

r:错误:找不到函数-用户定义

来自分类Dev

用户定义函数中的#value错误

来自分类Dev

R中的交互式散点图,叠加/悬停摘要/工具提示作为用户提供的图函数

来自分类Dev

PySpark SQL中的用户定义的聚合函数

来自分类Dev

dplyr:是否可以使用一个函数返回摘要中的两列?

来自分类Dev

从dplyr :: mutate调用用户定义的函数

来自分类Dev

用户定义的函数在python中返回错误

来自分类Dev

R Shiny-用户定义的函数在mainPanel中打印

来自分类Dev

在R中的用户定义函数中更新某些列值

来自分类Dev

用户定义函数在dplyr管道中不起作用

来自分类Dev

如何在R中的用户定义函数上应用向量

来自分类Dev

如何避免在R中的用户定义函数上使用sapply()

来自分类Dev

dplyr汇总用户定义函数的多个输入值

来自分类Dev

R用户定义函数中的整洁评估语法

来自分类Dev

在R中传递摘要dplyr软件包的参数

来自分类Dev

新环境中的R用户定义函数

来自分类Dev

R摘要函数和时间

来自分类Dev

r:错误:找不到函数-用户定义

来自分类Dev

用户在r中的函数中定义的变量

来自分类Dev

r中的用户定义函数:找不到对象

来自分类Dev

在 R 中的用户定义函数中传递多个参数?

Related 相关文章

热门标签

归档