本人是R新手。现在要用R做不等概率随机抽样,但总是出错,觉得程序没写错,错在哪里呢?

x

[1] 1 2 3 4 5

> w

prob

1 0.1

2 0.2

3 0.1

4 0.1

5 0.5

> y<-sample(x,3,replace=F,prob=w)

错误在sample(x, 3, replace = F, prob = w) :

    (串列)目标对象不能强制改变double

谢谢
直接把w写成一个vector的形式试试,而不是现在的dataframe.

w=c(0.1,0.2,0.1,0.1,0.5)
y<-sample(x,3,replace=F,prob=w$prob)
谢谢指教。但抽出结果感觉不对,请您看以下结果,

w<-c(0,0,0,0,1)

> y<-sample(x,3,replace=F,prob=w$prob)

> y

[1] 2 1 3



我付给前四个元素“0”概率,但结果却抽出来了,怎么理解?

谢谢