所以我得到了这个问题,写一个R函数,给定一个向量x和一个值a,找到n的最小值,使得x的前n个元素的和大于a,或者如果不存在这样的n,则为NA,一次使用which循环,也使用for循环。
nloop=function(x,a){
sum=0
for (i in 1:length(x))
sum = sum + x[i]
if (sum>a)
end=x[i]
end
}
但这总是给我向量中的最后一个值?我无法想象,如果不使用for循环,我将如何处理which循环。我会将if循环改为which循环,但我不认为这是必需的?
我试图使用R中的dplyr包计算一个条件累积和,我正在构建一个带有负冲击的储蓄计算器。所以我想要一个有累积储蓄的变量,减去冲击。这似乎应该是相当简单的使用滞后函数,但我似乎无法使它发挥作用。
下面是一个示例:
event <- c(0,0,0,1,0)
save <- rep(.5,5)
## add up the savings from each prior row, then when event is one subtract 1
output_want <- c(.5,1,1.5,1,1.5)
df <- tibble(event,save,output_
我的教授给我布置了一个在R上编程的问题,我被困住了。他想让我们做一个函数,它将取一个向量中所有数字的指数(e^(xi) ),然后把它们和起来。方程式是:
e^x(i),n和i=1的求和。
我做了一个函数,它会给我向量中第一个值的指数。但是我想得到所有值的指数,然后把它们加起来。这是我的密码
#Vector for summing
x=c(2,1,3,0.4)
#Code for function
mysum = 0
myfun=function(x){
for (i in 1:length(x)){
mysum = mysum + exp(x[i])
return(mysum)
}
我试图用无限和绘制一个级数的累积和,但无法得到图例中的颜色来匹配图上的颜色。我不太清楚我在这里做错了什么。我的代码如下:
p = .99;
k = 0:1:1000;
geomSeries = p.^k;
G = sum(geomSeries);
figure;
hold on;
plot(k,G,'r');
h = cumsum(geomSeries);
plot(k,h,'b');
xlim([k(1) k(end)]);
ylim([0 G+10]);
xlabel('Values of k');
ylabe
使用For循环计算无限序列部分和的R中一个简单的问题遇到了一个错误。
t <- 2:20
a <- numeric(20) # first define the vector and its size
b <- numeric(20)
a[1]=1
b[1]=1
for (t in seq_along(t)){
a[t] = ((-1)^(t-1))/(t) # some formula
b[t] = b[t-1]+a[t]
}
b
bt <- bt -1+ at中的错误:替换长度为零
我是R编程的新手,面临着一个简单的问题,但找不到任何解决方案。
在其他编程语言中,可以将增量命名的变量生成到循环中。这在R中是可能的吗?多么?
例如,我想在每次循环完成时将操作的输出保存到一个新变量中:
for(i in 1:5) {
var_[i] <- i + pi
}
这样,我最终会得到var_1,var_2,...,var_5。
提前感谢您的帮助。
我的程序(应该是)解出两个物体的运动方程,但是结果是粒子的运行方式,我找不到误差在哪里。
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
DIM = 2
N = 2
ITER = 1000
def acc(r, v, a):
for i in range(N - 1):
for j in range(i+1, N):
r2 = 0.0
rij = [0.0, 0.0]
for
我收到了一些示例代码和示例数据,这些数据最初用于Stata。我想重写在R中使用的代码,这一点我比Stata更熟悉。最终目标是理解该代码,并能够将其应用于将来将在R.中完成的其他项目中的其他数据,以供参考,示例代码是中描述的秩和替换方法的示例。
这一方法有一个步骤,即需要根据种族对观察进行排序,并在每个种族中建立一个指标,说明他们对保健的需要。然后,每个观察都需要根据先前的排序顺序,分配一个调查加权等级。此步骤的示例Stata代码如下所示:
gsort +race +index
gen count1=_n if white==1
gen count2=_n if black==1
gen
假设我有一个向量v,并希望创建另一个长度相同的向量p,它编码v中每个位置的加和位置权重(v中0表示0)。例如,对于v= c( 0,1,3,0,1),我得到p= c(0,2,11,0,16)。换句话说,p中的I‘the元素(不是0)变成vi*i加上p中的前一个元素(不是0)。
我想出了一个方法,但它看起来很难看,我担心它的时间/内存效率不高--我需要在巨大的向量上这样做。有什么需要改进的吗?
fun <- function(v){
res <- NULL
s = 0
for(i in 1:length(v)){
ifelse(v[i
我正在寻找一种方法,以cumsum列(按组),但具有特定的条件。我的条件是:
添加起始值
和受上、下限的限制。
我已经使用了一个迭代解决方案,但不知道是否可以找到更优雅的解决方案:
# Init my data.frame with random values
# Knowing my cumsum on "value" must be applied on the "group" column using the "ordering" column
random_values <- c(-1, 0, 1, 2, 3, 4,
我用forward矢量和up矢量制作了我自己的相机对象。我碰巧在安卓系统中使用OpenGL ES 2.0进行编程,但我认为这个问题与所有框架都相关,这似乎是一些我不理解的数学题。
这里有一个我的音高/偏航正确工作的提示:
📷
这里是一个圆的俯仰/偏航的gif,因为相机是倾斜的(当我继续的时候,up矢量变成了负值),使得正方形旋转。
📷
下面是我的pan/偏航函数的伪代码:
function pitch(amount) {
if (amount == 0) return;
forward = normalize(forward + up * amount);
// No