我已经使用R中的MICE包成功完成了对我的问卷调查缺失数据的多重估算,并对汇总的推算变量进行了线性回归.我似乎无法弄清楚如何提取单个池化变量并在图形中绘图.有任何想法吗?
例如
>imp <- mice(questionnaire)
>fit <- with(imp, lm(APE~TMAS+APB+APA+FOAP))
>summary(pool(fit))
Run Code Online (Sandbox Code Playgroud)
我想通过TMAS绘制汇集的APE.
使用nhanes的可重现示例:
> library(mice)
> nhanes
> imp <-mice(nhanes)
> fit <-with(imp, lm(bmi~chl+hyp))
> fit
> summary(pool(fit))
Run Code Online (Sandbox Code Playgroud)
我想将汇集的chl与汇集的bmi(例如)联系起来.
我能够实现的最好的是
> mat <-complete(imp, "long")
> plot(mat$chl~mat$bmi)
Run Code Online (Sandbox Code Playgroud)
我相信这给出了所有5个插补的综合情节,并不是我想要的(我认为).
我还没有完全了解R以及如何重新排列数据.我有一个旧的SPSS数据文件需要重新排列,所以我可以在R中进行ANOVA
我当前的数据文件具有以下格式:
ONE <- matrix(c(1, 2, 777.75, 609.30, 700.50, 623.45, 701.50, 629.95, 820.06, 651.95,"nofear","nofear"), nr=2,dimnames=list(c("1", "2"), c("SUBJECT","AAYY", "BBYY", "AAZZ", "BBZZ", "XX")))
Run Code Online (Sandbox Code Playgroud)
我需要重新安排它:
TWO <- matrix(c(1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 777.75, 701.5, 700.5, 820.06, 609.3, 629.95, 623.95, 651.95), nr=8, dimnames=list(c("1", "1", "1", "1", "2", "2", "2", "2"), c("SUBJECT","AA", "ZZ", "XX", "RT")))
Run Code Online (Sandbox Code Playgroud)
我确信有一种简单的方法,而不是手工编码.谢谢你的考虑.
这不是功课.我有兴趣在R中设置一个投掷硬币的模拟.我想将模拟运行一周.R中是否有一个函数可以让我在一周的时间内启动和停止模拟?如果一切顺利,我可能想要增加模拟周期的长度.
例如:
x <- rbinom(10, 1, 1/2)
Run Code Online (Sandbox Code Playgroud)
因此,为了澄清,而不是上面的代码中的10,我如何保持模拟一周(一周的试验次数与试验的设定次数)?谢谢.
我有一个我想在R中重新创建的情节.这是情节:

来自:Boring,EG(1941).统计频率为动态均衡.心理学评论,48(4),279.
这略高于我的薪水(能力)因此在这里问.无聊状态:
在第一种情况下,A只能出现'从'(0)或'永远'(1).在第二种情况下,频率为0,1/2或1; 在第三个,1/3,2/3或1等等
显然,您不必担心标签等.只是提示生成数据以及如何绘制将是很好的.;)我不知道如何开始......
鉴于此代码:
from datetime import datetime
Time = datetime.now()
print(Time)
Run Code Online (Sandbox Code Playgroud)
我怎么才打印最后一位数字?例如.
2013-02-08 15:13:32.150263打印3
2013-02-08 15:17:40.759672打印2
我有一个解决我的问题的工作解决方案,但我将无法使用它因为它太慢(我的计算预测整个模拟将需要2 - 3年!).因此,我正在寻找更好(更快)的解决方案.这(实质上)是我正在使用的代码:
N=4
x <-NULL
for (i in 1:N) { #first loop
v <-sample(0:1, 1000000, 1/2) #generate data
v <-as.data.frame(v) #convert to dataframe
v$t <-rep(1:2, each=250) #group
v$p <-rep(1:2000, each=500) #p.number
# second loop
for (j in 1:2000) { #second loop
#count rle for group 1 for each pnumber
x <- rbind(x, table(rle(v$v[v$t==1&v$p==j])))
#count rle for group 2 for each pnumber
x <- rbind(x, table(rle(v$v[v$t==2&v$p==j])))
} #end second loop
} #end first loop
#total rle …Run Code Online (Sandbox Code Playgroud) 我正在进行抛硬币模拟,循环运行大约100万次.
每次运行循环时,我都希望保留RLE命令的表输出.不幸的是,简单的追加似乎不合适.每次我运行循环时,我得到的数据量略有不同,这似乎是一个难点.
这段代码让我知道我在做什么:
N <- 5 #Number of times to run
rlex <-NULL
#begin loop#############################
for (i in 1:N) { #tells R to repeat N number
x <-sample(0:1, 100000, 1/2)
rlex <-append(rlex, rle(x))
}
table(rlex) #doesn't work
table(rle(x)) #only 1
Run Code Online (Sandbox Code Playgroud)
因此,我没有五个单独的rle结果(在此模拟中,完整版中有100万个),我想要一个合并的rle表.希望这很清楚.显然我的实际代码有点复杂,因此任何解决方案都应尽可能接近我指定的代码.
更新:循环是绝对要求.没有ifs或buts.也许我可以拉出表(rle(x))数据并将其放入矩阵中.然而,绊脚石的另一个原因是一些较不频繁的运行长度并不总是在每个循环中出现.因此,我想我希望根据行程数有条件地填充矩阵?
在我放弃之前的最后更新:保留rle $值意味着保留了太多数据.我的模拟是大规模的,我真的只想保留rle的表输出.我保留每个循环的每个表(rle(x))并手动组合(将有数千个),或者我找到一种编程方式来保存数据(对于零和一些是),并且有一个表由在我继续时合并每个循环.
要么这很容易,要么按照规定,或者我不会这样做.这似乎是一个愚蠢的想法/要求,但这应该是偶然的,是否可以做到.
说真的是上次.这是一个动画gif,显示了我期望发生的事情.
每次循环后,循环数据都会添加到表中.这很清楚,我将能够进行沟通.
r ×6
loops ×2
plot ×2
append ×1
frequency ×1
imputation ×1
matrix ×1
missing-data ×1
probability ×1
python ×1
r-mice ×1
simulation ×1
time ×1