r - 在 R 中使用全局变量和局部变量
问题描述
我是 R 编程的初学者,我试图创建一个如下所述的 for 循环,当我运行代码时,我得到了正确的输出。
但是,当我只看到 mtcars$M 时,输出与我运行循环时得到的不同。编码时有什么我错过的吗?我们如何处理全局和局部变量?
for (i in mtcars[,1]) {
if(i >= 15){
M <- print("the value is greter than 15")} else {
M <- print("the value is not greter than 15")
mtcars$M <- M
}
}
解决方案
你的错误来了,因为你只分配列 M,当值不大于 15 时。所以整个列将是相同的。您必须在 if-else 条件之外分配值,并指定要将值保存在哪一行。如果您只是使用mtcars$M <- M
它将向量 M, 分配给该列的所有行。
for (i in seq_along(mtcars$mpg)) {
if(mtcars$mpg[i] >= 15){
M <- "the value is greter than 15"
} else {
M <- "the value is not greter than 15"
}
print(M)
mtcars$M[i] <- M
}
mtcars$M
推荐阅读
- tampermonkey - 从网页中调用用户脚本函数以关闭当前选项卡
- powershell - 如何检查是否存在自定义文化
- python - 在分布式模式下运行 Locust 时出现关键错误
- javascript - 将图像上传到 Firebase 后,Google Vision API 无法正常工作
- web-scraping - 从buymeacoffee网站刮掉支持者的名字
- symfony - 表单字段验证失败,但它们不在表单中
- next.js - 您可以将语言环境转发到 nextjs i18n 中的语言吗?
- javascript - react-native-track-player 隐藏通知
- pandas - 从熊猫的多列和不同行中添加数字
- amazon-web-services - 尽管添加了有效的 arn,但在云端分发的设置下看不到证书