我有一个存储在R的数字向量。
my_vector <- c(1,2,3,4,5)
我想为每个号码添加两个。
my_vector + 2
[1] 3 4 5 6 7
但是,我希望每次运行代码时,只有20%的机会在向量中添加两个数字。有没有办法在R中编码?
我的意思是,如果我运行代码,输出可能是: [1] 3 4 5 6 9
或者
[1] 5 4 5 6 7
即。只有20%的可能性,向量中的任何一个数字都会增加两个。
答案 0 :(得分:2)
myvector + 2*sample(c(TRUE,FALSE), length(myvector), prob=c(0.2,0.8), repl=TRUE)
这将添加一个可变数量的2(这是你要求的)但有时候人们想要知道正好20%将会增加2的情况:
myvector + 2*sample(c(TRUE,rep(FALSE,4)))