I have estimated a regression where yields are a function of nitrogen.
yields<-rnorm(50, mean=2000, sd=10)
nitrogen<-rnorm(50, 110, sd=5)
nitrogen_square <- nitrogen^2
reg<-lm(yields~nitrogen+nitrogen_square)
summary(reg)
I have used the delta method to see the marginal effects of nitrogen on yield. I can see the marginal effect of nitrogen at the average value of nitrogen =110
deltaMethod(reg, "(nitrogen*110)+(nitrogen_square*110^2)", vcov(reg))
I want to make a data frame to easily see the changes in the marginal effect of nitrogen on yield at different nitrogen rates ranging from 0-110 relative to the average.
Nitrogen_avg<-110
Nitrogen_rate<-0:110
A<-deltaMethod(reg, "(nitrogen*Nitrogen_avg)+(nitrogen_square*Nitrogen_avg^2)", vcov(reg))
B<-deltaMethod(reg, "(nitrogen*Nitrogen_rate)+(nitrogen_square*Nitrogen_rate^2)", vcov(reg))
Marg_yield_diff<- A-B
df<- data.frame(Nitrogen_avg, Nitrogen_rate, A, B, Marg_yield_diff)
I am getting an error code when I try to run B<-deltaMethod(reg, "(nitrogen*Nitrogen_rate)+(nitrogen_square*Nitrogen_rate^2)", vcov(reg)). The error says Error in row.names < 1L : comparison is not allowed for expressions In addition: Warning messages: 1: In gd[i] <- eval(reg(g., para.names[i]), envir) : number of items to replace is not a multiple of replacement length 2: In gd[i] <- eval(reg(g., para.names[i]), envir) : number of items to replace is not a multiple of replacement length.
I am new to R and looking for guidance on how to get this formula in a data frame.