【发布时间】:2016-07-14 13:14:56
【问题描述】:
我正在尝试从一项大型研究中清理数据框。在名为“startdate”的列中输入了错误的开始日期,有 12 个研究对象。我创建了一个向量,其中包含需要编辑的 12 个主题的学习 ID,称为“badids”。
badids<-c(41, 4169, 12004, 7768, 180, 78, 4082, 430, 585, 1313, 449, 9074)
我还为这 12 个主题创建了一个包含 12 个正确日期的向量,称为“正确日期”。
我可以使用以下命令一一替换不正确的日期:
dat[dat$Study.ID.Number.==badids[1], "startdate"]<-correctdates[1]
但那是低效的。
嵌套的 for 循环似乎是一个更好的解决方案,所以我尝试了:
for(i in 1:12)
{
for (j in 1:12) {
dat[dat$Study.ID.Number.==badids[i], "startdate"]<-correctdates[j]
}
}
我没有从这个循环中收到错误消息,但它也没有更正数据框中的开始日期。我错过了什么?有没有更好的方法来完全做到这一点,我应该考虑特别是在未来处理超过 12 次编辑时?谢谢你教我。
【问题讨论】:
标签: r for-loop indexing nested