我正在使用下面的代码生成正确的审查生存数据。但是,每当我运行这段代码时,就会出现一个错误,并且我无法打印我的数据帧,因为R说“找不到'dat‘对象”。
我不知道是什么问题,请帮我这个!
守则如下:
library(methods)
library(copula)
library(muhaz)
library(foreach)
library(survival)
library (MASS)
tau = 0.2
nsample = 100
err_dist = "Normal"
generate.dat <- function(tau,nsample,err_dist)
{
C <- rexp(nsample, rate = 0.8) # Censoring
cc <- claytonCopula(copClayton@iTau(tau))
u <- rCopula(nsample, cc)
e <- qnorm(u,mean=0,sd=1) # Error term
b1 <- 0.5 ; b2 <- 0.2 # using the old betas
beta <- matrix(c(b1, 0, 0, b2), 2) # as Beta got to be 2x2
RHO <- 0 # Indpendence
MU1 <- 0; S1 <- 1 # Std. Normal
MU2 <- 0; S2 <- 1 # Std. Normal
MU <- c(MU1, MU2) # mean vector
SIGMA <- matrix (c(S1^2, S1*S2*RHO, S1*S2*RHO, S2^2), 2) # Var-Covar matrix
Z <- mvrnorm(nsample, mu=MU, Sigma=SIGMA)
T <- exp(-Z%*%beta + e)
T1 <- T[,1]
T2 <- T[,2]
x1 <- pmin(T1,C)
x2 <- pmin(T2,C);
d1 <- ifelse(T1<=C, 1, 0)
d2 <- ifelse(T2<=C, 1, 0)
dat <- data.frame(x1, x2, d1, d2)
return(dat)
print(dat)
}
发布于 2018-10-30 21:00:53
我运行你的代码没有任何错误。你这样运行这个函数吗?
dat = generate.dat(tau, nsample, err_dist)
如果希望函数每次都打印dat
,那么将print
语句放在return
之前(通常,return
语句应该始终是函数中的最后一件事)。
https://stackoverflow.com/questions/53075907
复制