【问题标题】:Use loop to replace word and run multiple lines使用循环替换单词并运行多行
【发布时间】:2021-01-28 00:10:48
【问题描述】:

我在很多行中有“JAN”这个词。这是一个例子:

OccRateJAN_Yuki<-YukiJANoccupied/31

我想使用循环,以便每次“JAN”在一行中时,将其替换为“FEB”并运行整个过程。然后将每个“JAN”更改为“MAR”并运行整个过程......直到“DEC”然后结束语句。

是否可以通过所有代码行搜索单词“JAN”,替换单词并运行?代码怎么写?

提前致谢。

【问题讨论】:

  • 到目前为止您尝试过什么?值得注意的是,R 有一个名为“month.abb”的内置常量,其中包含值“Jan”/“Feb”/“Mar”等,这可能会帮助您完成任务,例如print(toupper(month.abb))
  • 你所说的“运行整个事情”是什么意思? R 同时对向量 e 起作用。 G。要在每个元素 1:10 中添加 2,您无需创建循环,只需 1:10 + 2 即可完成这项工作

标签: r loops


【解决方案1】:

如果您从 bash 运行 R 脚本,则可以使用以下命令对其进行循环:

array=(JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC)
for f in {0..11}
  do sed "s/JAN/"${array[f]}"/g" script.R > script_"$f".R
  Rscript --vanilla script_"$f".R
done

这会保留每个单独的脚本(每月一个,名为 script_0.R / script_1.R / etc),以防运行失败并且您需要重新运行它。

【讨论】:

  • 感谢您的回复。我正在从 R Markdown 运行。你能解释一下我如何从 R Markdown 中做到这一点吗?
猜你喜欢
  • 2022-01-03
  • 2014-03-11
  • 2012-04-23
  • 2021-10-13
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
相关资源
最近更新 更多