【发布时间】:2016-02-18 01:51:11
【问题描述】:
目前我正在编写以下代码:
data <- rep(1:3, times = c(10,4,6))
for(i in 1:5) {
samp <- sample(data, 4)
data <- exclude(data, samp)
print(samp)
for(i in 1:3) {
prsamp <- sum(samp == i)/4
print(prsamp)
}
if (length(data) == 0) {
break
}
}
这当前打印出五个长度为 4 的向量,每个数字出现在每个向量中的相应概率。
> source("buffoon.R")
> buffoon(20, 4, 3, c(10,4,6))
[1] 1 1 2 3
[1] 0.5
[1] 0.25
[1] 0.25
[1] 1 3 3 2
[1] 0.25
[1] 0.25
[1] 0.5
[1] 2 1 1 1
[1] 0.75
[1] 0.25
[1] 0
[1] 3 1 2 3
[1] 0.25
[1] 0.25
[1] 0.5
[1] 1 3 1 1
[1] 0.75
[1] 0
[1] 0.25
因此,例如,第一个向量 1123 为我们提供了 1 的 0.5 个概率、2 的 0.25 和 3 的 0.25。我想将输出转换为一个不错的数据框,在第 1 列中列出每个行向量,在第 2 列中,另一个行向量对应于相应的元素概率出现,但我遇到了很多错误。我已经研究这个问题几个小时了,但没有成功。任何帮助表示赞赏。
我理想的数据框应该是这样的:
Sample Probability Dist
1 1123 0.5 0.25 0.25
2 1332 0.25 0.25 0.5
以此类推,一直到第 5 行。
【问题讨论】:
-
exclude函数来自哪个包? -
exclude <- function(from, where) { for (i in where) if (i %in% from) { from = from[-match(i, from)] }; from } -
这是一个基本上从多重集中删除子多重集的功能
-
向我们展示最终向量的样子,以及输出的样子。编辑您的问题。
标签: r