我很难在R中编写代码行来查看股票A的最新价格,并将其与存储在不同列中的股票A的收盘价进行比较。理想情况下,代码将查看库存A,B,C,D,E,并根据我在下面提供的IF语句吐出结果。
现在我的代码将比较四次而不是两次。我找不到重写它的好方法。有关如何执行此操作的任何想法?
x<-c(2,4)
y<-c(3,5)
for(i in x) for(j in y){
if (c[nrow(c),i]>c[nrow(c),j]){
print("Ok")
}else{
print("no")
}
}
答案 0 :(得分:1)
尝试mapply,先前将股票的最后价格和收盘价分为两个不同的数据帧:
Lista <- list("A_Last", "B_Last", "C_Last", "D_Last", "E_Last")
Lista2 <- list("A_Close", "B_Close", "C_Close", "D_Close", "E_Close")
lapply(Lista, function(x){
assign(x, runif(10), envir = globalenv())
})
lapply(Lista2, function(x){
assign(x, runif(10), envir = globalenv())
})
StockLast <- cbind.data.frame(A_Last, B_Last, C_Last, D_Last, E_Last)
StockClose <- cbind.data.frame(A_Close, B_Close, C_Close, D_Close, E_Close)
mapply(function(x, y) {
if (x[[nrow(x)]] > y[[nrow(y)]]) {
print("Ok")
} else {
print("no")
}
}, x = StockLast, y = StockClose)
希望有帮助。