【问题标题】:How to cycle through variables without a for-loop如何在没有 for 循环的情况下循环变量
【发布时间】:2016-03-17 18:08:16
【问题描述】:

在最后一点使用 R 之后,我不再使用 for 循环来处理所有事情,但我仍然不知道如何在不使用 for 循环的情况下循环名称。每当我处理多个事情时,我都会使用 for 循环来一次性覆盖我的所有基础。这是我会做的一个模拟示例。有没有更简单的方法来做到这一点?

names <- c("John_Doe","Jane_Doe")
employee <- vector(length = length(names))
for(i in 1:length(names)){
    filename <- paste0(names[i],".csv")
    employee[i] <- read.csv(filename,header = FALSE)
}

【问题讨论】:

  • 我猜你可以做names &lt;- c("John_Doe","Jane_Doe") ; employee &lt;- lapply(paste0(names, ".csv"), read.csv, header = FALSE)。您不需要以这种方式预定义employee。此外,paste 已矢量化,因此无需将其放入循环中。

标签: r for-loop iteration


【解决方案1】:

不确定是否更简单,但你可以试试这个:

dfs <- lapply(seq_along(names), function(i) read.csv(paste0(names[i], ".csv"), header = FALSE))

它不是循环,而是将相同的函数应用于您的索引或 1 通过您的名称向量的长度

【讨论】:

  • 您好,请在代码中添加一些解释,因为它有助于理解您的代码。仅代码的答案是不受欢迎的。
  • 抱歉没看到 - 我认为你的更简单/更好
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 2019-03-11
  • 2019-09-02
  • 1970-01-01
相关资源
最近更新 更多