0
我有一個數據幀,如下給出:runSD具有空值
> dput(head(dt[,c("IBC","FYEAR","GVKEY")],20))
structure(list(IBC = c(1.138, 2.576, NA, 0.236, 0.793, -0.525, -7.838, -2.554, 9.071, 11.506, 15.361, 21.233, 24.814, 25.655, NA, 10.02, 0.283, 9.484, 10.463, 16.012),
FYEAR = c(1984L, 1985L, 1984L, 1985L, 1986L, 1987L, 1988L, 1989L, 1984L, 1985L, 1986L, 1987L, 1988L, 1989L, 1990L, 1991L, 1992L, 1993L, 1994L, 1995L), GVKEY = c(1001L, 1001L, 1003L, 1003L, 1003L, 1003L, 1003L, 1003L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L, 1004L)),
.Names = c("IBC", "FYEAR", "GVKEY"),
row.names = c(NA, 20L), class = "data.frame")
下面的代碼生成標準偏差爲列稱爲IBC
4個元件的每個連續序列。但是,如果存在NULL
值,則會出現錯誤。如何修改以下代碼以爲NULL
值騰出空間?
dt <- dt[order(dt$GVKEY,dt$FYEAR),]
dt$STDEARN <- ave(dt$IBC, dt$GVKEY, FUN = function(x) {
if(length(x)>3) c(NA,head(runSD(x,4),-1))
else sample(NA,length(x),TRUE)
})
一個原子向量不能包含'NULL'值。請提供一個可重複的例子。 –
提供了可重現的例子。 – Sumit
如果數據包含「NA」,那麼'runSD'的期望輸出是什麼? –