【发布时间】:2019-03-13 02:46:09
【问题描述】:
我在 R 中运行这段代码:
set.seed(4997)
n =50
data1 <- runif(n, min = 0, max = 1)
data2 <- runif(n, min = 2, max = 5)
sample.data <- c(data1,data2)
sample.data
y <- numeric(2*n)
for(i in 1:n){
if((sample.data[i] < 1)) {y[i] <- -1
} else if ((sample.data[i] > 1)) {y[i] <- 1}}
y
基本上,我要做的是根据“sample.data”的每个索引处的值为“y”分配一个值。
我的逻辑似乎是合法的,但输出不是我所期望的:
> y
[1] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[29] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0
[57] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[85] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
我什至不知道零是怎么来的。
任何提示都会很棒!谢谢!
【问题讨论】:
-
你的循环从 1:n 开始,其中 n = 50。你的向量 y 是 2 * n = 100。所以只有前 50 个值被分配。前 50 个都是 -1,因为 data1 总是
标签: r