R/add_r_theta.R

Defines functions add_r_theta norm_vec

Documented in add_r_theta

#' Utility for adding r and theta to simulated data
#' @export
add_r_theta <- function(dat, orient=FALSE){

  if(orient){
    ixhat <- which(dat$beta_hat_1 < 0)
    dat$beta_hat_1[ixhat] <- -1*dat$beta_hat_1[ixhat]
    dat$beta_hat_2[ixhat] <- -1*dat$beta_hat_2[ixhat]

    ix <- which(dat$b1 < 0)
    dat$b1[ix] <- -1*dat$b1[ix]
    dat$b2[ix] <- -1*dat$b2[ix]
  }


  dat$z1 <- with(dat, b1/seb1)
  dat$z2 <- with(dat, b2/seb2)

  dat$z_hat_1 <- with(dat, beta_hat_1/seb1)
  dat$z_hat_2 <- with(dat, beta_hat_2/seb2)

  dat$r <- apply(dat[,c("z1", "z2")], 1, norm_vec)
  dat$rhat <- apply(dat[,c("z_hat_1", "z_hat_2")], 1, norm_vec)

  dat$theta <- with(dat, atan2(z2, z1))
  dat$thetahat <- with(dat, atan2(z_hat_2, z_hat_1))
  return(dat)
}
norm_vec <- function(x) sqrt(sum(x^2))
jean997/bvpolar documentation built on May 22, 2019, 12:37 p.m.