R应用函数来计算数据帧的日志差异
R apply function to calculate log diff of a dataframe
我有一个数据框:
df1 <- data.frame(a=runif(10),b=runif(10),c=runif(10))
df1
然后我尝试计算数据框中所有列的对数差异
df2 <- apply(df1,2,function(x) diff(log(df1[,x]), lag=1))
df2
但是我得到一个错误。
感谢您的帮助。
匿名函数 function(x)
returns 该列的值而不是它的索引,所以我们必须在 'x' [=16= 上取 log
]
r1 <-apply(df1,2,function(x) diff(log(x), lag=1))
取数据集log
后的另一个选项是colDiffs
library(matrixStats)
r2 <- colDiffs(log(as.matrix(df1)))
all.equal(r1, r2, check.attributes=FALSE)
#[1] TRUE
我有一个数据框:
df1 <- data.frame(a=runif(10),b=runif(10),c=runif(10))
df1
然后我尝试计算数据框中所有列的对数差异
df2 <- apply(df1,2,function(x) diff(log(df1[,x]), lag=1))
df2
但是我得到一个错误。
感谢您的帮助。
匿名函数 function(x)
returns 该列的值而不是它的索引,所以我们必须在 'x' [=16= 上取 log
]
r1 <-apply(df1,2,function(x) diff(log(x), lag=1))
取数据集log
后的另一个选项是colDiffs
library(matrixStats)
r2 <- colDiffs(log(as.matrix(df1)))
all.equal(r1, r2, check.attributes=FALSE)
#[1] TRUE