r - 如何在R中实现一个带有总和的函数?
问题描述
我正在尝试使用 for 循环和 R studio 中的条件定义一个函数。昨天我能够在另一个线程的帮助下设计出这段代码。问题是我想对任何可能的 x 的向量元素 ma 求和,所以它在函数 l 内。这是一个更简单的案例,我试图解决它以适应原始模型。但是,我不知道如何进行。
ma<-rep(0,20)
l <- function(x, ma) {
for(i in seq_along(ma)) {
if(i %% 2 == 1) {
ma[i] <- i + x
} else {
ma[i] <- 0
}
}
return(ma)
}
我的问题是我想得到 i+x+0+i+x... 对于任何可能的 x 的总和。我的意思是任何可能的 x的那种函数。
问题:
有人可以向我解释如何在 R 中实现这样的功能吗?
提前致谢!
我将更新原始功能:
Theta_alpha_s<-function(s,alpha,t,Basis){
for (i in seq_along(Basis)){
if(i%% 2==1) {Basis[i]=s*i^{-alpha-0.5}*sqrt(2)*cos(2*pi*i*t)}
else{Basis[i]=s*i^{-alpha-0.5}*sqrt(2)*sin(2*pi*i*t)}
}
return(Basis)
}
解决方案
如果您不想更改 Basis 中的值,您可以在result
将返回的函数(此处)中创建一个新向量:
l = function(s,alpha,t,Basis){
is.odd = which(Basis %% 2 == 1)
not.odd = which(Basis %% 2 == 0)
result = rep(NA, length(Basis))
result[is.odd] = s*is.odd^{-alpha-0.5}*sqrt(2)*cos(2*pi*is.odd*t)
result[not.odd] = s*not.odd^{-alpha-0.5}*sqrt(2)*sin(2*pi*not.odd*t)
#return(result)
return(c(sum(result[is.odd]), sum(result[not.odd])))
}
推荐阅读
- javascript - 如何在 JS 中返回两个连续异步函数的值?
- ios - 如何对 String 和 NSAttributedString 使用泛型类型?
- sql-server - 索引扫描而不是索引查找
- google-bigquery - 在 Bigquery 中使用 SQL 创建表备份
- exe - 将 nodejs excel 插件部署为 pkg/exe
- php - 如何在 Lumen 中获取验证错误消息?
- python - 从 Python 中的排序交易列表计算余额
- go - 我如何阅读这个 YAML?
- vert.x - 如何在 vert.x 选择查询上设置行数限制
- azure - 为 Snowflake 外部 OAuth 配置 Microsoft Azure Active Directory 后访问令牌无效