列条目的操作

我想在一列上做Excel式的操作。 这已经被问过了,例如在这里: Excel像R数据框中的列操作

但是我没有find有用的答案,因为我不想为每个1700+行指定操作。 所以我的问题是这样的:

我有两列DataClose 。 我想要另一个列的条目是log(x_{n+1}/x_n) n=1,...,1719x_iClose (第二列)中。 链接中的答案build议根据行号指定操作,但我不能很好地花费1720行的时间。

以下是一些其他问题的答案,我不明白: http : //r.789695.n4.nabble.com/Log-difference-in-a-dataframe-column-td3221225.html

使用as.ts不起作用,结果只是0.我需要类似的东西

 > df$LReturn <- log(df$Close / df$Close) 

它指定这个新列中的第一个条目是一个,而其他所有条目都是第(n+1):th n:th

尝试这个:

 library(Hmisc) set.seed(3) df = data.frame(date=1:10, close=25+rnorm(10)) df$Lreturn = log(df$close/Lag(df$close,1)) # date close Lreturn #1 1 24.03807 NA #2 2 24.70747 0.027467119 #3 3 25.25879 0.022068343 #4 4 23.84787 -0.057479317 #5 5 25.19578 0.054981806 #6 6 25.03012 -0.006596575 #7 7 25.08542 0.002206653 #8 8 26.11661 0.040284808 #9 9 23.78114 -0.093678580 #10 10 26.26737 0.099434498 

你也可以做这个基地R

 df$LreturnBaseR = log(c(df$close[-1],NA)/df$close) 

应用日志属性和base difffunction:

 df$LrReturn<-c(diff(log(df$close)),NA)