【问题标题】:By batch, how can I run a for-loop for a R script?通过批处理,如何为 R 脚本运行 for 循环?
【发布时间】:2016-07-14 14:51:18
【问题描述】:

现在我有 10 个数据集,例如以 out1sim.txt, out2sim.txt ... out10sim.txt 命名。

我的R脚本是一个可以加载每个数据集并输出out1.Rdata, out2.Rdata ... out10.Rdata的函数。

假设 R 脚本是 test.R

如何批量循环函数?我的意思是当我做for循环时,如何将变量i指向R脚本?

像批量一样,我可以这样循环

for i in {1,10}
do # here I want to point this i into R script to make it load outisim.data and output outi.Rdata.

我该怎么做? (顺便说一句,我的R代码已经有加载outisim.data和输出outi.Rdata的功能。我只想知道如何将i指向R脚本。)

完成

【问题讨论】:

  • 您能否提供一个您在任何其他编程语言中寻找的代码示例?将帮助我确定如何回答。
  • 当你说“将 i 指向 R 脚本”时不清楚,你能澄清一下吗?您想保存、访问、打印吗?
  • 您需要编写您的函数,以便它 expects i(或其他一些参数 - 文件的实际名称会是更好的选择),您可以不要只是从外部强制它。

标签: r batch-file for-loop


【解决方案1】:

为您的输入文件名创建一个向量。

file_n <- c("out1sim.txt", ..., "out10sim.txt")
for (i in 1:length(file_n)) {
    infile <- read.table(file_n[i], sep="\t")
    save(infile, file=paste0(out[i], ".RData"))
}

【讨论】:

  • 我做了一些更正...不知道为什么您使用c 作为循环索引但从未提及它并选择手动递增i。您也不需要初始化循环索引。还添加了一个缺失的" 并使其文件索引可以用于读取数据。如果您刚刚开始分配给特定索引,则需要初始化 infile 。刚刚删除了索引,因为似乎不需要将所有文件都保存在 R 的内存中。
  • 感谢 Gregor35。我杀了那个。我正在修改我的其他代码。忘记了一些东西。
猜你喜欢
  • 1970-01-01
  • 2023-01-08
  • 2011-02-05
  • 2013-10-01
  • 2017-02-03
  • 2023-03-06
  • 1970-01-01
  • 2022-10-23
  • 2011-06-15
相关资源
最近更新 更多