在 for 循环中使用 seq() 和 ifelse
Using seq() and ifelse in a for loop
我正在尝试制作以下内容"sequence":
0.0025,0.005, 0.010, 0.015, 0.020, 0.025, 0.030, 0.035, 0.040, 0.045, 0.050, 0.055, 0.060
如您所见,在第一个值 0.0025 之后,值增加 0.0025,然后连续增加 0.005。所以在第二个值0.005之后,本质上就是一个递增0.005的序列。我认为我可以在其中使用 seq()。
我认为可行的是:
matrix1 <- matrix("", nrow = 1, ncol = 13)
m <- for (i in 1:length(matrix1){
matrix1[,i] <- ifelse(i == 1, 0.0025, ifelse(i == 2, 0.005, seq(0.01, 0.05, by = 0.005)))
}
然而,这给了我以下结果:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
[1,] "0.0025" "0.005" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01"
这不是我想要的。
有什么建议吗?
如果问题真的是关于使用 for
循环,那么我宁愿使用 if
和 else
语句:
n <- 13
x1 <- vector("numeric", 13)
for (i in 1:n) {
if (i==1) {
x1[i] <- 0.0025
} else {
x1[i] <- 0.005 + (i-2)*0.005
}
}
... 因为 ifelse
是要应用于向量的:
j <- 1:n
x2 <- ifelse(j == 1, 0.0025, 0.005 + (j-2)*0.005)
但是还有很多其他方法可以获得所需的结果!我最喜欢的是
x3 <- c(0.0025, seq(0.005, 0.06, by=0.005))
因为当你大声朗读它时,你实际上创建了一个向量,,在第一个值 0.0025 之后,值增加 0.0025,然后连续增加 0.005。"。 =17=]
我正在尝试制作以下内容"sequence":
0.0025,0.005, 0.010, 0.015, 0.020, 0.025, 0.030, 0.035, 0.040, 0.045, 0.050, 0.055, 0.060
如您所见,在第一个值 0.0025 之后,值增加 0.0025,然后连续增加 0.005。所以在第二个值0.005之后,本质上就是一个递增0.005的序列。我认为我可以在其中使用 seq()。
我认为可行的是:
matrix1 <- matrix("", nrow = 1, ncol = 13)
m <- for (i in 1:length(matrix1){
matrix1[,i] <- ifelse(i == 1, 0.0025, ifelse(i == 2, 0.005, seq(0.01, 0.05, by = 0.005)))
}
然而,这给了我以下结果:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
[1,] "0.0025" "0.005" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01" "0.01"
这不是我想要的。
有什么建议吗?
如果问题真的是关于使用 for
循环,那么我宁愿使用 if
和 else
语句:
n <- 13
x1 <- vector("numeric", 13)
for (i in 1:n) {
if (i==1) {
x1[i] <- 0.0025
} else {
x1[i] <- 0.005 + (i-2)*0.005
}
}
... 因为 ifelse
是要应用于向量的:
j <- 1:n
x2 <- ifelse(j == 1, 0.0025, 0.005 + (j-2)*0.005)
但是还有很多其他方法可以获得所需的结果!我最喜欢的是
x3 <- c(0.0025, seq(0.005, 0.06, by=0.005))
因为当你大声朗读它时,你实际上创建了一个向量,,在第一个值 0.0025 之后,值增加 0.0025,然后连续增加 0.005。"。 =17=]