Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使ddply中创建的对象在函数外部可用(在全局环境中)?_R_Plyr_Glm - Fatal编程技术网

R 如何使ddply中创建的对象在函数外部可用(在全局环境中)?

R 如何使ddply中创建的对象在函数外部可用(在全局环境中)?,r,plyr,glm,R,Plyr,Glm,我试图在一个数据集中对多个单独的主题运行glm,以返回特定的系数。我在这里找到了一个非常好的例子()。除此之外,结果打印到屏幕上,但之后不可用。因此,除非我在RStudio中突出显示屏幕,然后复制/粘贴到Excel中,否则无法保存结果或重命名变量 数据: 我的剧本: ddply(Data, .(Subject), function (x){ intercept <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=q

我试图在一个数据集中对多个单独的主题运行glm,以返回特定的系数。我在这里找到了一个非常好的例子()。除此之外,结果打印到屏幕上,但之后不可用。因此,除非我在RStudio中突出显示屏幕,然后复制/粘贴到Excel中,否则无法保存结果或重命名变量

数据:

我的剧本:

ddply(Data, .(Subject), function (x){
  intercept <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=quasibinomial(link='logit'),data=x)))[1]
  slope     <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=quasibinomial(link='logit'),data=x)))[2]
  SNR50      <- (log(0.5/(1-0.5))/slope) - (intercept/slope)
  Data_Summary <- c(SNR50,slope)
})
然而:

Data_Summary
Error: object 'Data_Summary' not found

如何使ddply函数的结果可用于主/全局环境?

将结果分配给变量:

Data_Summary_df <- ddply(Data, .(Subject), function (x){
  intercept <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=quasibinomial(link='logit'),data=x)))[1]
  slope     <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=quasibinomial(link='logit'),data=x)))[2]
  SNR50      <- (log(0.5/(1-0.5))/slope) - (intercept/slope)
  Data_Summary <- c(SNR50,slope)
})

Data_Summary_df

Data\u Summary\u df您需要将函数的结果分配给globalenv()中的名称Data\u Summary,而不是函数中的名称Data\u Summary。这是我无法解决的问题。函数的结果在函数外部不可用。如果我在函数后尝试Data_Summary,我会得到:Error:object'SNR50'not foundtry
assign
function。除了我只得到最后一个主题的结果外,这几乎可以正常工作<代码>结果使用
列表
而不是
c
。太棒了,非常简单!非常感谢。那个与我的评论建议非常接近。
数据摘要
Data_Summary
Error: object 'Data_Summary' not found
Data_Summary_df <- ddply(Data, .(Subject), function (x){
  intercept <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=quasibinomial(link='logit'),data=x)))[1]
  slope     <- coef(summary(glm(Prop_Correct~SNRs, weights=Ntrials,family=quasibinomial(link='logit'),data=x)))[2]
  SNR50      <- (log(0.5/(1-0.5))/slope) - (intercept/slope)
  Data_Summary <- c(SNR50,slope)
})

Data_Summary_df
mean(1:25)
calc_mean <- mean(1:25)
calc_mean