为什么要从以下for循环获取NAs?
我试图写一个for循环,用5个值来规范化向量x。但是,在运行下面的代码之后,我得到的前四个值是NAs,最后一个值是预期值。有人能指出问题所在吗?提前谢谢你为什么要从以下for循环获取NAs?,r,for-loop,R,For Loop,我试图写一个for循环,用5个值来规范化向量x。但是,在运行下面的代码之后,我得到的前四个值是NAs,最后一个值是预期值。有人能指出问题所在吗?提前谢谢你 x <- c(8.58, 10.46, 9.01, 9.64, 8.86) x_mean <- mean(x) x_sd <- sd(x) n_x <- numeric() for(i in length(x)){ n_x[i] <- x[i] - x_mean / x_sd } print(n_x)
x <- c(8.58, 10.46, 9.01, 9.64, 8.86)
x_mean <- mean(x)
x_sd <- sd(x)
n_x <- numeric()
for(i in length(x)){
n_x[i] <- x[i] - x_mean / x_sd
}
print(n_x)
x正如评论中所建议的那样,你的帖子中有几处拼写错误。如果您纠正了它们,您的代码应该可以工作。除此之外,您可以以矢量化的方式执行此操作,而无需for
循环
x <- c(8.58, 10.46, 9.01, 9.64, 8.86)
x_mean <- mean(x)
x_sd <- sd(x)
n_x <- (x - x_mean)/x_sd
n_x
#[1] -0.9718658 1.5310215 -0.3993969 0.4393366 -0.5990954
x您只需将length
替换为seq\u即可
:
x <- c(8.58, 10.46, 9.01, 9.64, 8.86)
x_mean <- mean(x)
x_sd <- sd(x)
n_x <- numeric()
for(i in seq_along(x)){
n_x[i] <- (x[i] - x_mean) / x_sd
}
n_x
编辑:
您在x[i]-x_mean/x_sd
中也缺少括号,应该是for(i in 1:length(x)){n_x[i]非常感谢!这非常有用!
-0.9718658 1.5310215 -0.3993969 0.4393366 -0.5990954