我的代码需要大量时间才能解决。我有一个包含某些公司市值的数据框,而我有一个包含比率的数据框。下面有一个可重现的示例

AAPL <- c(500,550,600,540,580)
MSFT <- c(600,670,630,650,650)
WDC <- c(50,40,40,45,50)
mcap<- data.frame (AAPL,MSFT,WDC)

AAPL.r <- c(3,3.2,4,4.5,5)
MSFT.r <- c(6,5.8,5.7,6.3,6)
WDC.r <- c(10,8,8.2,9,9)
ratio <- data.frame (AAPL.r,MSFT.r,WDC.r)


我想做的是在市值低于100时用NA代替比率。这就是我在做的

for (i in 1:5){
for (j in 1:3){
    ratio[i,j] <- ifelse (mcap[i,j]<100,NA,ratio[i,j])
}
}


但是,在大数据框架中,这需要几个小时才能运行。有没有更有效的方法可以做到这一点?

先感谢您

最佳答案

您可以简单地执行ratio[mcap<100]<-NA

关于r - 如何使循环在R中更有效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45709675/

10-10 17:16