【发布时间】:2021-02-14 09:22:14
【问题描述】:
我有一个包含大约 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?
谢谢。
【问题讨论】:
-
嗨 edstrinova。你还没有向我们展示你的数据。您已经展示了您的数据的图片,我们无法使用这些图片来测试解决方案。您能否使用
dput(kader_test[1:11,])的结果编辑您的问题?谢谢 -
这可以使用
baseR=>cond<-kader_test$saison <= kader_test$jahr_im_team_seitkader_test$gespielt_von[cond] = kader_test$im_team_seit[cond]来实现 -
您可能需要在比较时更加小心。您可以提取
im_team_seit的年份部分并进行数字比较,或将saison变量设为日期(不确定这是否应该是一年中最后一天的第一天.. .)