2013-10-08 42 views
0

我正在运行(尝试至少)R中的gibbs采样器,并且在查看数据时遇到问题。数据查看问题

我,使用R工作室

仅供参考这里是我的代码:

###Step 2 
###Draw from truncated normal 
for(i in 1:length(cens.list[,1])){ 

    row.i <- as.numeric(cens.list[i,1]) 

    mu.i <- as.numeric(x.mat[row.i,] %*% beta) 

    bio.set[row.i,var.name] <- rtnorm(1,mean=mu.i,sd=sqrt(var),lower=-Inf,upper=dl) 
} 

test <- bio.set[which(row.names(bio.set) %in% cens.list[,1]),] 

bio.set包含我的变量我试图推诿等信息

cens.list包含要被估算的审查值列表及其相应的行信息。

dl是检测极限。而打杀的意见失踪由于低于此值

问题:当我尝试查看数据(使用View()edit())的估算值都显示相同数量的(检测限)。无论我是通过测试数据框还是通过bio.set本身查看它们,都会发生这种情况。

但是,如果我通过键入

bio.set[995,var.name] #Where I set the row number to be one of the imputed rows. 

单独查看值它显示我正确绘制值。

我可以继续假设数据正确存储,它只是一个查看器问题?或者有什么我不正确的做法?

+3

可能的错误来源数量仍然很大。请发布一个定义当前未指定的所有参数的示例。 –

+0

你好,欢迎来到SO。为了提供一个可重现的例子,你可以使用'reproduce()'。说明在这里:http://bit.ly/SORepro - [如何使一个伟大的R可重现的例子](http://bit.ly/SORepro) –

+0

发布更新作为解决方案并接受它,我会建议,别人看到这是一个封闭的问题。这样它对社区来说就更加有用了。 – alap

回答

0

感谢您的回复。当我想出我的问题是什么时,我正在创建一个可重复的例子。

基本上发生的事情是,cens.list包含要计算的值的行号。创建后某些行会因为什么原因被删除,但前面的行号是由R存储的

在我介绍的代码中,您可以在循环内看到我引用特定于当前状态的行号数据帧而不是row.names。

为了解决这个问题,我将使用一个id变量,因为我应该一直这样做。

在未来的问题中,我会确保我的代码是可重现的。