如何在不使用for循环的情况下在数据框中进行逐行计算-R
How to do Row-wise calculations in a dataframe Without using for loop - R
这是我要计算的输出:
这是我遍历数据帧的每一行并进行计算的代码,我知道这不是最好的方法
STOCKsbyQuarter_LOCF_Ticker <- subset(STOCKsbyQuarter_LOCF, STOCKsbyQuarter_LOCF$Ticker == input$STOCKTickers)
for( i in 1:length(STOCKsbyQuarter_LOCF_Ticker$ROIC)){
STOCKsbyQuarter_LOCF_Ticker$ROICDelta <- (STOCKsbyQuarter_LOCF_Ticker$ROIC[i+1] - STOCKsbyQuarter_LOCF_Ticker$ROIC[1]) /
(STOCKsbyQuarter_LOCF_Ticker$date[i+1] - STOCKsbyQuarter_LOCF_Ticker$date[1])
}
df <- STOCKsbyQuarter_LOCF_Ticker
df$ROIC_Delta <- (df$ROIC - df$ROIC[1])/(df$Date - df$Date[1])
第一行的 ROIC_Delta
将是 NaN
。您可以将其替换为适当的值。
library(data.table)
dt = setDT(STOCKsbyQuarter_LOCF_Ticker)
dt[ , "ROIC Delta" := (ROIC - shift(ROIC))/as.numeric(difftime(Date, shift(Date),units = c("days")))]
这是我要计算的输出:
这是我遍历数据帧的每一行并进行计算的代码,我知道这不是最好的方法
STOCKsbyQuarter_LOCF_Ticker <- subset(STOCKsbyQuarter_LOCF, STOCKsbyQuarter_LOCF$Ticker == input$STOCKTickers)
for( i in 1:length(STOCKsbyQuarter_LOCF_Ticker$ROIC)){
STOCKsbyQuarter_LOCF_Ticker$ROICDelta <- (STOCKsbyQuarter_LOCF_Ticker$ROIC[i+1] - STOCKsbyQuarter_LOCF_Ticker$ROIC[1]) /
(STOCKsbyQuarter_LOCF_Ticker$date[i+1] - STOCKsbyQuarter_LOCF_Ticker$date[1])
}
df <- STOCKsbyQuarter_LOCF_Ticker
df$ROIC_Delta <- (df$ROIC - df$ROIC[1])/(df$Date - df$Date[1])
第一行的 ROIC_Delta
将是 NaN
。您可以将其替换为适当的值。
library(data.table)
dt = setDT(STOCKsbyQuarter_LOCF_Ticker)
dt[ , "ROIC Delta" := (ROIC - shift(ROIC))/as.numeric(difftime(Date, shift(Date),units = c("days")))]