列条目的操作
我想在一列上做Excel式的操作。 这已经被问过了,例如在这里: Excel像R数据框中的列操作
但是我没有find有用的答案,因为我不想为每个1700+行指定操作。 所以我的问题是这样的:
我有两列Data
和Close
。 我想要另一个列的条目是log(x_{n+1}/x_n)
n=1,...,1719
, x_i
在Close
(第二列)中。 链接中的答案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
diff
function:
df$LrReturn<-c(diff(log(df$close)),NA)