r - 在 ddply 中应用函数

标签 r

我正在尝试使用 ddply 应用分组函数。 我的数据如下所示:

https://echange-fichiers.inra.fr/get?k=b1jD63CWkT93hDsbZ0g

以下函数计算 y=0 时的 x 值

intercept=function (x,y){

    if (length(y[y==0])==0){
      x1=min(x[y >0])
      y1=min(y[y >0])

      x2=max(x[y <0])
      y2=max(y[y <0])

      p =(y2-y1)/(x2-x1)

      x0= -y1/p + x1

    }else{
      x0=x[y==0]

    }
return(x0)
}

然后我尝试通过 ddply 分组应用它:

zzz=ddply(Data,.(Genotype,T), summarise
         InterDays=(intercept(Data$Days,Data$Diff)) 
)

我的语法一定是错误的,因为它不会返回与以下格式类似的输出:

zzz=ddply(DataAll,.(Genotype,T), summarise
         InterDays=mean(DataAll$Days) 
)

我认为我调用函数变量的方式有问题,但我不知道在哪里...... 欢迎任何帮助。 一切顺利, 文森特

最佳答案

我认为你应该这样调用ddply:

ddply(Data,.(Genotype,T), summarise,
         InterDays=(intercept(Days,Diff)) 
)

IIUC,如果您使用 Data$DaysData$Diff 作为参数调用拦截函数,则每次都会将整个向量传递给该函数。对于 DaysDiff,仅使用与 Data 当前子集相对应的值。

关于r - 在 ddply 中应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14892910/

相关文章:

r - 是否可以在lapply中使用 "quietly = TRUE"?

r - 多组(类型)的 Rmarkdown block 的多组全局选项

r - 将列添加到 R 中数据帧的数据帧列表中的特定行

html - blogdown:将 html 文件附加到网站

使用 scale_x_discrete() 删除图的左侧(从 0 到 13)

r - ggplot2 示例中的两点运算符

r - 使用因子水平将 corr 函数应用于矩阵?

R X Axis 日期标签使用 plot()

r - 为什么我对球体的核密度估计不起作用?

arrays - 按索引对切片 R 数组