For 循环适用于初学者 - 它如何在 R 中更好地工作?

For loops are for beginners - how does it work better in R?

我有一个包含大约 75,000 个观察值的数据集,我想在第一步中稍微准备一下。

比如我想在某个条件下设置一个变量。

我现在的经典方法是逐行迭代整个数据集。检查每一行的条件,然后设置变量。

这种方法是否正确,尤其是在计算时间方面?

初始数据

for (row in 1:nrow(kader_test)) {
  if (kader_test[row,]$saison <= kader_test[row,]$jahr_im_team_seit) {
    kader_test[row,]$gespielt_von = kader_test[row,]$im_team_seit
  }
}

Nach der FOR Schleife sieht man, dass sich in Zeile 1 und 6 etwas geändert hat。 Gibt es hierfür einen eleganteren Weg?

结果

谢谢。

我想一个好的解决方案是 dplyr 包:

library(dplyr)

kader_test %>%
  dplyr::mutate(gespielt_von = ifelse(saison <= jahr_im_team_seit, im_team_seit, NA))

因为 R 是矢量化的,所以您可以使用简单的基本 R ifelse 语句。

kader_test$gespielt_von <- ifelse(kader_test$saison <= kader_test$jahr_im_team_seit, kader_test$im_team_seit, NA)

对不起,我没有显示数据。下次我会做得更好

首先,感谢您的回答,它实际上工作得很好。计算在几毫秒内完成。

现在我还有更多的障碍。我们开始了:)