【问题标题】:My code returns me single value instead of a vector我的代码返回单个值而不是向量
【发布时间】:2019-07-20 10:14:58
【问题描述】:

这是代码。我试图找出几何级数的总和。它应该为 4 个 n 值返回 4 个值,但只返回一个带有警告消息的值。

n <- c(10,20,30,40)
j <- 1:n
r <- 1.06
A <- r^j
A
sum(A)

警告信息: 在 1:n 中:数值表达式有 3 个元素:只使用第一个`

【问题讨论】:

  • 我想计算 n=10,20,30,40 的 A 的总和。其中 j 应该从 1 到 10 ,1 到 20,1 到 30,1 到 40 。这 4 种情况的总和。
  • 这是您需要的吗? sapply(n, function(x) sum(1.06**(1:x)))?
  • @NelsonGon 我不知道,抱歉。我现在熟悉序列和重复命令。
  • cumsum(r^(1:max(n)))[n]会更直接
  • @AndrewGustar 哇谢谢我明白谢谢。你应该把它作为答案我会打勾。

标签: r


【解决方案1】:

更直接的方法是使用cumsum 对序列求和一次,并取向量n 指示的值。所以rn定义如上...

cumsum(r^(1:max(n)))[n]    #i.e. sum 40 values and take 10th, 20th, 30th and 40th of them

[1]  13.97164  38.99273  83.80168 164.04768

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多