问题标签 [do-loops]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
fortran - 澄清 fortran 隐含循环
多年前,我使用了 FORTRAN,最近我的任务是维护一个旧的 FORTRAN 程序 (F77)。以下代码不熟悉:
回顾一些在线论坛发现,让我感到困惑的部分,即续行,是一个隐含的循环。由于我的程序在这里给我带来了麻烦,因此我想将其转换为传统的 DO 循环。转换它也可能会帮助下一个在 5 年后冷冷地捡起这个东西的穷人!无论如何,我对 DO 循环等效项的最佳猜测是
但是当我只做这个改变时,正在工作的测试用例停止工作。我仍然觉得这里发生的是两个不同的 READ(第一个获取 NUM_WORDS,第二个循环遍历数据),所以我尝试了一个不太剧烈的更改,将其转换为两个语句,但保留了隐含的循环:
但是只是这种变化也会导致好的测试用例失败。在我的两个更改中,NUM_WORDS 的值都按预期通过,因此循环似乎是它失败的地方。
那么,原始隐含循环的等效 DO 循环是什么?还是我完全走错了路?
谢谢
sas - SAS: do loop help: variable =1 from start of by group until marker =1
In SAS, I have data that is sorted by time. For the first n minutes, a marker variable is marked 0 then changes to 1. This occurs within a 'by' variable. I want to create a new variable that =1 for each minute from the start of the 'by' group observations until the marker variable gets to 1. I have tried dozens of do loop combinations and have been unsuccessful. Any help would be appreciated!
loops - 如何在 Fortran 的 do 循环中跳过几次迭代
例如,我想以 2 的增量从 1 循环到 500。但是,对于每 8 个循环,我想跳过接下来的 18 个循环(使 do-variable 增加 18)。我怎么做?
我的代码是:
但是,我收到错误:“DO 主体中的 do 变量不应出现在变量定义上下文中”。基本上我不能改变循环中的变量“i”。那么我应该如何编写代码来实现呢?
谢谢。
bash - 如何遍历参数列表并提交作业?
我有一个有输入的作业,我想在提交作业时遍历参数列表。这是我的脚本的一部分:
当我运行它时,我既没有得到答案也没有得到结果。那有什么问题?
macros - 匹配多个变量;使用_n_作为变量时,SAS宏做循环
我想将我在“父”数据集中的观察结果拆分为他们自己独特的“子”数据集。我需要对几个父数据集执行此操作,因此我尝试创建一个内部带有 do 循环的宏来生成这些数据集。但是我的代码不起作用(可能有多种原因)。
这是手动代码作为我想要自动化的示例(此代码工作正常,“父”数据集ta220092在这种情况下有四个观察结果,但在其他“父”数据集中它可能更大或更小):
在试图自动化这一点。我想我应该使用自动“ n ”变量添加到数据集名称和 %to 语句,因为每个“父”数据集中的观察数量各不相同,但我不知道该怎么做。我创建了以下代码,其中有一个问题,我希望有人能提供帮助:
谢谢你。
除了为了清楚起见编辑上述内容外,我还需要编辑我的问题以解决为什么我不相信这是 Joe 标记的重复问题。他提出的重复问题是分割 sas 数据集以进行批处理的最快方法是什么?
我认为这个问题不是重复的有两个原因。首先,想要分裂的根本原因是不同的。对于我的问题,这不是试图分解大型数据集以进行合理批处理的问题。我将在下一段中解决我想要拆分的根本原因。我不认为这是重复的第二个原因是解决“什么是对 SAS 数据集进行批处理进行分区的最快方法”的代码不适用于我的情况。提供的两个代码答案指定了要拆分父数据集的多个数据集。我事先不知道要拆分的每个数据集的拆分数量,因为每个数据集中的观察数量不同。我试图根据我的情况修改第二个答案(由 RWill),并且到目前为止一直没有成功。这是我迄今为止修改我的情况的第二个答案的最佳尝试(尝试过变体):
日志中的错误似乎表明 do 循环中的 DSN_OBS 变量存在问题(第二个宏中的第 5 行):
SYMBOLGEN:宏变量 DSN_OBS 解析为错误:%EVAL 函数没有要计算的表达式,或者 %IF 语句没有条件。错误:%DO I 循环的 %TO 值无效。
为了解决我想要将数据集拆分为每个数据集一个观察值的根本原因,我修改了一个宏,它几乎可以按照我需要的方式工作,但有一个问题。我修改的原始宏用于倾向得分匹配http://www.biostat.umn.edu/~will/6470stuff/Class25-12/PSmatching.sas. 我对其进行了修改以更好地处理我的数据集(更改变量名称),并且我还添加了一个我称为“CC”的方法来计算卡尺,因为我想捕获在我的治疗匹配变量的 10% 或 20% 范围内的所有控件组(将有第二个匹配变量,由最近的邻居选择,但我对该步骤的代码没有问题)。问题在于,在处理数据集(例如上面的 ta220092)中,有两个观察值具有匹配的变量,这些变量具有重叠的计算厚度“区域”——一个具有 62 的资产,一个具有 64 的资产。宏有一个替换选项; 如果我选择“是”,那么我会得到与同一控件匹配的处理 100 次(不是我想要的,我想要计算出的卡尺内的所有控件)。如果我选择“
另一个注意事项是,我将通过 WRDS 系统上的 PC SAS 运行这场比赛,这样更快,并且在处理过程中不会冻结我的计算机。
loops - 用于重命名变量的 SAS 循环
我想替换一些变量的值并重命名它们。基本上,我有很多变量,称为 f2 f3 f4 等等,直到 f1065。逻辑如下:我需要用变量 f2 f3 f4 到 f12 的值将变量 f14 f18 等的值替换为 4 到 f54。f13、f55、f56 和 f57 保持原样。然后我需要用 f58 f59 到 f68 的值将 f70 f74 等替换为 4 到 f110。所以 f69 不变。所以我需要说SAS以下内容:
并多次这样做,以便下一次
我怎样才能使这项任务自动化,甚至可能删除我用于替换的变量(我的意思是像 f2 f3 f4 ... f12 这样的变量)。提前致谢!
ruby-on-rails - 为什么 Rails 表单助手看起来像一个 do 循环?
这是我很久以来一直想问的一个问题,但到目前为止,我只是将其视为“Rails 魔法”。正如标题所述,为什么 Rails 表单助手看起来像一个 do 循环?如果您查看官方 Rails 文档,它似乎没有解释这一点,它只是通过给出以下作为基本示例直接跳进去:
那么这里到底发生了什么?为什么表单似乎正在创建一个循环,而不是其他语言中没有所述循环的输入表单。
macros - 在 DO 循环中更改宏变量
我使用以下循环使用类语句生成某些列的总和:
我想用作一个类的名称列是“C_ze_Risiko_50_2014_50_2015”“C_ze_Risiko_60_2014_40_2015”等等。
不幸的是,代码产生了“C_ZE_RISIKO_95_2014_5_2015”,但我需要“C_ZE_RISIKO_95_2014_ 05 _2015”。我标记了我试图改变它的那一行。不幸的是,这不起作用。有人可以告诉我为什么并提出解决方案吗?
提前致谢。
sas - sas用do循环创建变量
我有以下代码:
如何使用do
来自的语句压缩此代码i = 15 to 49
?
arrays - 数据步内的 SAS 阵列 DO 循环计算
我有以下数据集:
我想创建四个名为log_x10
, log_x22
,的新列log_x13
,log_x64
它们是原始列的日志。我知道这可能是一个相当简单的数组循环过程,但我对数组相当陌生,不太了解语法。这是我所拥有的:
它并不总是四个变量,有时更少或更多。我已将 ID 号拉入宏列表id=(10,22,13,64)
,因此可以尝试使用类似的名称来命名。
想法?谢谢。