Reputation: 9
Anyone know why I keep getting grouby not defined?[error message][1] [1]: https://i.sstatic.net/cLmGl.png
rename!(df_🔥,Symbol("climate change") => :🔥)
rename!(df_🔥,:Month => :date)
df_🔥[!,:Δ🔥] = [missing;log.(df_🔥.🔥[2:end]) - log.(df_🔥.🔥[1:end-1])]
df_🔥 = df_🔥[completecases(df_🔥),:]
first(df_🔥,6)
df_sp[!,:r] = [missing;df_sp[2:end,:closeadj]./df_sp[1:end-1,:closeadj].-1]
firstobs = [true;df_sp.ticker[2:end] .!= df_sp.ticker[1:end-1]]
df_sp = df_sp[.!firstobs,:]
df_sp = df_sp[completecases(df_sp),:]
df_m[!,:rₘ] = [missing;df_m[2:end,:closeadj]./df_m[1:end-1,:closeadj].-1]
df_m = df_m[completecases(df_m),:]
df_sp = leftjoin(df_sp,df_m[:,[:date,:rₘ]];on=:date)
df_sp = leftjoin(df_sp,df_🔥[:,[:date,:Δ🔥]];on=:date)
first(df_sp,6)
gdat = grouby(df_sp,:ticker)
Upvotes: 0
Views: 41
Reputation: 13800
It's a simple typo - you need groupby
, not grouby
(note the p
)
Also you can use the ShiftedArrays
package to compute log returns as
log.(df.close) .- lag(log.(df.close))
and you can also do that in a groupby
call so you don't have to manually identify the first observation for each security.
Upvotes: 3