全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8825 5
2015-04-10
library(Matrix)
a<-sample(1:10,10,replace=T)
b<-sample(1:10,10,replace=T)
c<-sparseMatrix(a,b,x=1)
输入以上函数,为什么结果会是这样:
10 x 10 sparse Matrix of class "dgCMatrix"

[1,] . . . . 1 . 1 . . .
[2,] . . . . 1 . . . . .
[3,] . . . . . . . . . .
[4,] . . . . 1 . . . 1 .
[5,] . . . . . . . . . .
[6,] . . . . . . . 2 1 .
[7,] . . . . . . . . . .
[8,] . . . . . . . . . .
[9,] . . . . . . . . . .
[10,] . 1 . . . . . . . 1
不是应该随机生成十个值为1的元素吗?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-4-10 09:47:10
这里的‘.’表示0,为了看的时候方便
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-10 09:51:28
a,b是给出10*10 spase矩阵的哪个位置应该赋值为1,a 为行,b为列,由于你的a,b在sample时有有放回的,因此可能出现重复值,这样导致matrix的元素也可能重复,每重复一次,该元素值增加1,因此你上述代码的matrix中(6,9)重复了一次,因此是2.解决该问题你可以用无放回抽样。
library(Matrix)
set.seed(1) # 加入这个是为了抽样的结果是完全一样的。
a<-sample(1:10,10,replace=F)
b<-sample(1:10,10,replace=F)
c<-sparseMatrix(a,b,x=1)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-10 09:51:28
a,b是给出10*10 spase矩阵的哪个位置应该赋值为1,a 为行,b为列,由于你的a,b在sample时有有放回的,因此可能出现重复值,这样导致matrix的元素也可能重复,每重复一次,该元素值增加1,因此你上述代码的matrix中(6,9)重复了一次,因此是2.解决该问题你可以用无放回抽样。
library(Matrix)
set.seed(1) # 加入这个是为了抽样的结果是完全一样的。
a<-sample(1:10,10,replace=F)
b<-sample(1:10,10,replace=F)
c<-sparseMatrix(a,b,x=1)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-10 10:22:47
秋日私语 发表于 2015-4-10 09:51
a,b是给出10*10 spase矩阵的哪个位置应该赋值为1,a 为行,b为列,由于你的a,b在sample时有有放回的,因此 ...
谢谢,如果不加set.seed(1)也是可以的吧?
加入这个只是为了每次调用这个代码时生成的结果一样?
set.seed()是不是可以在任何r代码中使用,只是为了验证结果的相同性?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-10 12:27:40
只是抽样或伪随机数生成的时候用,只是为了抽样或伪随机数生成结果的相同性。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群