我需要一种更快的方法来实现这一点,而不是在R中使用for循环



所以我要做的是向这个数据帧中添加一列0,但如果其中任何一行的代码为"h353";在该行的任何列中,则我希望该行在新列中具有1而不是0。我甚至不确定代码是否按原样运行,但我只知道它需要很长时间才能在当前状态下运行,因为文件相当大。关于如何解决这个问题/提高效率,有什么建议吗?

当前代码

这应该完成任务:

dat<-data.frame(x=rep(0,30), y=rep(0,30), z=rep(0,30))
dat[2,2]<-"h353"
dat[15,3]<-"h353"
dat[20,1]<-"h353"

dat$md<-0
for (i in 1:length(dat[1,])) {if (i==1){mdrows<-as.character(dat[,i])=="h353"} else {mdrows<-mdrows|as.character(dat[,i])=="h353"}}
dat$md[mdrows]<-1

相关内容

最新更新