-2

我有一个包含大约 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?

结果 结果

谢谢你。

4

3 回答 3

2

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

kader_test$gespielt_von <- ifelse(kader_test$saison <= kader_test$jahr_im_team_seit, kader_test$im_team_seit, NA)
于 2020-11-01T15:48:30.570 回答
1

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

library(dplyr)

kader_test %>%
  dplyr::mutate(gespielt_von = ifelse(saison <= jahr_im_team_seit, im_team_seit, NA))
于 2020-11-01T15:17:55.860 回答
-1

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

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

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

于 2020-11-01T20:19:18.193 回答