全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
22310 9
2014-09-15
问,各位大神:
    R怎样将多个列向量合并成一个矩阵?(注:各个列向量为for循环产生,求如何用cbind(…)合成一个矩阵,这里列向量较多,不适合一个一个输入)
还请各大神不吝赐教,非常感谢~

附注:一小段程序:
c1=as.matrix(c(rep(0,0),rep(1,3),rep(0,15)))
c2=as.matrix(c(rep(0,3),rep(1,3),rep(0,12)))
c3=as.matrix(c(rep(0,6),rep(1,3),rep(0,9)))
c4=as.matrix(c(rep(0,9),rep(1,3),rep(0,6)))
c5=as.matrix(c(rep(0,12),rep(1,3),rep(0,3)))
c6=as.matrix(c(rep(0,15),rep(1,3),rep(0,0)))
Z=cbind(c1,c2,c3,c4,c5,c6)

需要要生成的是Z形式的矩阵;而ci用的是for循环来实现:
for(i in 1:n)
{
ci=as.matrix(c(rep(0,(i-1)*3),rep(1,3),rep(0,(n.tot-3i))))

}
不知Z如何用循环生成(Z=cbind(c1,c2,…,cn))
二维码

扫码加我 拉你入群

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

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

全部回复
2014-9-16 17:06:35
在循环之前先生成一个矩阵,然后在循环中对矩阵赋值
二维码

扫码加我 拉你入群

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

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

2014-9-16 19:51:56
使用 for还是不用R了,使用R有一条戒律,放弃 for.


n = 15
fun = function(x) c(rep(0,(x-1)*3),rep(1,3),rep(0,15 - 3*x))
sapply(1:5,function(i) fun(i))
      [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    0    0
[2,]    1    0    0    0    0
[3,]    1    0    0    0    0
[4,]    0    1    0    0    0
[5,]    0    1    0    0    0
[6,]    0    1    0    0    0
[7,]    0    0    1    0    0
[8,]    0    0    1    0    0
[9,]    0    0    1    0    0
[10,]    0    0    0    1    0
[11,]    0    0    0    1    0
[12,]    0    0    0    1    0
[13,]    0    0    0    0    1
[14,]    0    0    0    0    1
[15,]    0    0    0    0    1
二维码

扫码加我 拉你入群

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

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

2014-9-17 09:12:52
复制代码
二维码

扫码加我 拉你入群

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

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

2014-9-17 11:55:45
daishen 发表于 2014-9-16 19:51
使用 for还是不用R了,使用R有一条戒律,放弃 for.
哇 谢谢 谢谢~这个太有用了~
还请问这个从哪学的啊,要是你不说我真没见过!
二维码

扫码加我 拉你入群

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

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

2014-9-17 11:56:27
xucaifeng66 发表于 2014-9-16 17:06
在循环之前先生成一个矩阵,然后在循环中对矩阵赋值
这个一直没弄懂怎么弄啊~不过还是谢了~
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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