R 如何在条件下编写循环以查找最大值及其对应的滞后值
我只是写了一个块来找出互相关值的最大峰值,但是当我运行循环代码时,根本没有输出。所以我只想问我写循环时的逻辑是否有问题,或者我是否可以尝试修改顺序 我的预期输出逻辑:R 如何在条件下编写循环以查找最大值及其对应的滞后值,r,if-statement,for-loop,R,If Statement,For Loop,我只是写了一个块来找出互相关值的最大峰值,但是当我运行循环代码时,根本没有输出。所以我只想问我写循环时的逻辑是否有问题,或者我是否可以尝试修改顺序 我的预期输出逻辑: for (i in 1:n) { if (y[i]=max(y[i]) & x[i]>0) { p=x[i] } else if (y[i]=min(y[i] & x[i]<0) { p=-x[i] } } 很抱歉,我忘记了C语言中的一些基本循环知识,我想把它带回我
for (i in 1:n) {
if (y[i]=max(y[i]) & x[i]>0) {
p=x[i]
}
else if (y[i]=min(y[i] & x[i]<0) {
p=-x[i]
}
}
很抱歉,我忘记了C语言中的一些基本循环知识,我想把它带回我的脑海。非常感谢你的帮助
另外,我测试了一些基本的数据帧,它确实工作,但不幸的是,它在我自己的数据集上不工作(没有错误,但没有输出)。因此,我猜ccf函数的输出是否也有问题。代码中没有输出,因为缺少“}”。如果没有错误消息,通常意味着您尚未关闭循环。运行下面的,你会看到它的工作
d1 <- data.frame(runif(100), runif(100))
colnames(d1) <- c('x','y')
for(i in 1:length(d1[,2])) {
if (d1[i,2] == max(d1[,2])) {
if(d1[i,1]>0){
cat(d1[i,1])
cat("CHIE lags CHIQ \n")
p=d1[i,1]
} else {
if (d1[i,2] == min(d1[,2]) & d1[i,1]<0) {
d=-d1[i,2]
cat(d1)
cat("CHIE leads CHIQ \n")
p=d1
}
}
}
}
d1它不起作用。我猜最后一个}是额外的,因为Rstudio给出了一个错误,指出这是一个意外的错误。我只是回答了。它给了我一个错误。我认为这是不可能的——如果你在代码中找到所有的“{”字符,你会找到5个。如果你在代码中找到所有的“}”字符,你会找到4个。如果你对我的代码做同样的计算,你会发现每个都有5个。我再次测试了我的代码-它肯定会运行。您可能没有以干净的输入开始,或者可能在末尾添加了另一个“}”。我重试了。您的不会产生任何错误。但它不起作用。所以我推测这应该是输入问题。我认为这可能与ccf功能有关。
d1 <- data.frame(runif(100), runif(100))
colnames(d1) <- c('x','y')
for(i in 1:length(d1[,2])) {
if (d1[i,2] == max(d1[,2])) {
if(d1[i,1]>0){
cat(d1[i,1])
cat("CHIE lags CHIQ \n")
p=d1[i,1]
} else {
if (d1[i,2] == min(d1[,2]) & d1[i,1]<0) {
d=-d1[i,2]
cat(d1)
cat("CHIE leads CHIQ \n")
p=d1
}
}
}
}
tester <- apply(d1, FUN=which.max, 2)