2016-12-11 5 views
1

У меня есть dataframe:R применить функцию для вычисления журнала различий в виде dataframe

df1 <- data.frame(a=runif(10),b=runif(10),c=runif(10)) 
df1 

Затем я попытался вычислить лог диф всех столбцов в dataframe

df2 <- apply(df1,2,function(x) diff(log(df1[,x]), lag=1)) 
df2 

, но я получаю a ошибка.

Благодарим за помощь.

+1

спасибо что это. Спасибо, что нашли мою ошибку. –

ответ

1

Анонимная функция function(x) возвращает значение этого столбца, а не его индекс, поэтому мы должны принять log на «х»

r1 <-apply(df1,2,function(x) diff(log(x), lag=1)) 

Другой вариант colDiffs после приема log из набор данных

library(matrixStats) 
r2 <- colDiffs(log(as.matrix(df1))) 
all.equal(r1, r2, check.attributes=FALSE) 
#[1] TRUE 
+0

Спасибо за помощь. –

 Смежные вопросы

  • Нет связанных вопросов^_^