我想创建一个函数 k(n(,它从集合 {0,1,2,3,4,5,6,7,8,9,10} 中绘制"n"次(每个概率相同(,然后如果这是奇数或偶数,它就会写入每个数字。例如:
k(3( 绘制数字 1,6,8,然后我的函数打印:
1 是奇数
6是偶数
8是偶数
到目前为止我的工作:
关于检查奇偶数函数:
k=function(x)
if((x %% 2) == 0) {
print(paste(x,"is Even"))
} else {
print(paste(x,"is Odd"))
}
我对下一个问题有以下想法:我将从集合 {0,1,2,3,4,5,6,7,8,9,10} 绘制 n 次,得到一个长度为 n 的列表。然后我将对该列表使用 sapply 函数。
但是我在从上面的集合中绘制 n 次时遇到问题。你能帮我解决这个问题吗,如果我的想法是正确的,你能不能提到?
您没有显示问题是什么或如何绘制随机数,但我猜您正在使用sample()
.阅读该函数的手册页。默认行为是选择不替换,例如:
sample(1:5, 5)
# [1] 2 5 3 1 4
sample(1:5, 6)
错误在 sample.int(长度(x(, 大小, 替换, 概率( : 当"替换 = FALSE"时,无法获取大于总体的样本
您需要用替换样本抽取样品,例如:
set <- 0:10
set.seed(42)
x <- sample(set, 5, replace=TRUE)
OE <- ifelse(x %% 2 == 0, "Even", "Odd")
cat("n", paste(x, "is", OE, "n"))
#
# 0 is Even
# 4 is Even
# 0 is Even
# 8 is Even
# 9 is Odd
请注意,现在 0 出现了两次。由于它将随机数种子设置为 42,因此您应该获得此处显示的相同值。