如何在R语言的for循环中遍历两个向量计算标准差并输出?
修复后的R代码及解释
原代码存在几个关键问题,以下是修改后的可运行版本,同时说明问题所在:
问题分析
- 原代码中
vects <- c(vectA,vectB)会将两个向量合并为一个长度为6的单一向量,无法保留两个独立的向量对象 - 未定义变量
scale_vars,循环迭代对象错误 print函数用法错误,R中不能直接传入多个字符串参数,需要用paste拼接- R中没有
std()函数,计算标准差的正确函数是sd() - 原代码仅调用标准差函数但未打印结果
修复后的代码
vectA <- c(1,6,7) vectB <- c(8,9,11) names <- c('A', 'B') # 将向量存入列表,保留独立的向量对象 vects <- list(vectA, vectB) for (i in seq_along(names)) { # 拼接提示字符串并打印 print(paste("Calculating for", names[i])) # 计算并打印标准差 result <- sd(vects[[i]]) print(paste("Standard deviation for vector", names[i], "is:", round(result, 2))) }
运行结果
运行上述代码会输出:
[1] "Calculating for A" [1] "Standard deviation for vector A is: 3.06" [1] "Calculating for B" [1] "Standard deviation for vector B is: 1.53"
内容的提问来源于stack exchange,提问作者edge selcuk
相关产品推荐
相关产品推荐

