r - 如何在数组和矩阵上使用应用族函数而不是 R 中的 for 循环?
问题描述
有没有办法在下面的代码中使用类似函数而不是 for 循环?
a <- array(rnorm(100,0,1), c(10, 5, 2)) ; a
b <- matrix(rnorm(20,0,1), 10, 2) ; b
m <- matrix(NA, 10, 2) ; m
for (i in 1:2){ m[,i] <- fitted(lm(b[,i]~a[,,i])) }
m
非常感谢
解决方案
您可以在这里使用sapply
/ lapply
:
m1 <- sapply(seq_len(ncol(b)), function(i) fitted(lm(b[,i]~a[,,i])))
seq_len(ncol(b))
创建一个序列,该序列与您的循环和循环内的代码1:ncol(b)
相似,并且保持不变。1:2
for
for
sapply
推荐阅读
- java - Java如何从浏览器/系统自动请求用户PKI证书?
- google-cloud-platform - 如何禁用 gke 主机的自动升级(不仅仅是节点池)
- r - 在 R 中通过 ID 随机分配已建立的值
- ruby-on-rails - 没有路线匹配 [POST] "/webhooks/orders/fulfilled" Shopify rails
- c++ - 合并排序 C++ 错误排序
- python - 在 python 脚本中有一个 wget 命令(Windows)
- python - 如何绘制时间序列的倒数
- python - 如何比 iterrows() 更有效地根据条件从 df 中删除行?(Python)
- google-sheets - 使用数据验证过滤多个工作表
- c++ - 函数内部的数组初始化