r - 将 mapply 的输出修改为数据帧

标签 r

我正在处理一个数据集,并希望在数据帧的行上应用带有两个参数的函数。我使用了mapply并得到了结果。但我想要的是输出也是一个具有两列的数据框。我如何在 R 中做到这一点。这是我在模拟数据上的函数

set.seed(10)

n=100
x<-rnorm(n)
 e<-rnorm(n,0,2)
 y=0.5+2*x+e

df<-as.data.frame(cbind(y,x))
a<- 0.293
b<- 1.880 
s<-1.945
invssq<-1/(s^2)

sf<-function(x,y){
  sc<-invssq*(y-a-(b*x))%*% matrix(c(1,x),nrow=1,ncol=2)
  return(sc)
}

csf<-mapply(sf,df$x,df$y)

最佳答案

我只需转置 (t) 并从 tibble 添加 %>% as_tibble() (在 dplyr 中导出) 到 maply

的末尾
csf <- t(mapply(sf, df$x, df$y)) %>% as_tibble()

# A tibble: 100 x 2
           V1           V2
        <dbl>        <dbl>
 1 -0.3474360 -0.006513095
 2  0.2705878 -0.049856495
 3 -0.5385760  0.738565694
 4  0.4119052 -0.246800319
 5 -0.2707042 -0.079734592
 6  0.3648204  0.142204908
 7  0.3658459 -0.441969730
 8 -0.8333920  0.303084690
 9  0.5466882 -0.889282805
10  0.6429061 -0.164891522

如果您想留在基地,可以用以下内容替换。

csf <- as.data.frame(t(mapply(sf, df$x, df$y)))

关于r - 将 mapply 的输出修改为数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46636945/

相关文章:

r - 如何为几个正态分布下方的区域着色?

r - 给定颜色的透明等效项

r - 使用不同长度的向量与 tidyr 分开

r - 对 Rprof 和 R 感到困惑

r - 使用 R 的非零零假设的相关显着性

r - 在 R 中寻找一种直接的方法来完成 Stata 的排序任务

重置 ggplot 分面每列中的颜色

r - 从由特殊字符包围的字符串中提取年份数字

r - 优化 r 中函数的函数

C# 和 R.Net 不使用 ggplot2 显示任何图形