楼主: sty1882
1666 3

[问答] 用R实现一个矩阵的计算 [推广有奖]

  • 4关注
  • 0粉丝

硕士生

32%

还不是VIP/贵宾

-

威望
0
论坛币
2548 个
通用积分
2.8500
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
422 点
帖子
34
精华
0
在线时间
258 小时
注册时间
2009-5-4
最后登录
2025-4-10

楼主
sty1882 发表于 2014-2-1 00:15:08 |AI写论文
10论坛币
A <-c(1,2,3)
B <-c(2,3,4)
C <-c(4,5,6)
D <-list(A,B,C)
E <- matrix(rep((D), 4), nrow=3, ncol=4)
E
得到E如下:

现在要分别从V1的第1,2,3行 每一行随机取一个数,相加 得到一个和,这样执行3次(length(c(1,2,3))), 得到三个和,组成一个新的包含三个元素的Vector. 对于V2, V3, V4来说一样。 最后得到的结果应该是四个向量,每个向量包含三个数值元素。

这只是个简化的例子,实际情况是 "c(1,2,3) "不是三个元素,而是100000个。

多谢!


最佳答案

yywan0913 查看完整内容

你再优化下吧
关键词:R实现 Vector matrix 元素

沙发
yywan0913 在职认证  发表于 2014-2-1 00:15:09
  1. v1=c()
  2. for(i in 1:3){
  3. v1=c(v1,sum(unlist(lapply(1:3,function(x)sample(unlist(E[x,1]),1)))))
  4. }
  5. v1
复制代码
你再优化下吧
是什么给了你自信

藤椅
sty1882 发表于 2014-2-3 22:37:29
yywan0913 发表于 2014-2-1 23:25
你再优化下吧
多谢,
有个问题,i 似乎没用到。把 sample(unlist(E[x,1]),1) 里面的1  变成 i ?

板凳
yywan0913 在职认证  发表于 2014-2-4 11:17:34
sty1882 发表于 2014-2-3 22:37
多谢,
有个问题,i 似乎没用到。把 sample(unlist(E[x,1]),1) 里面的1  变成 i ?
  1. v1=c();v2=c();v3=c();v4=c()
  2. for(i in 1:3){

  3. v1=c(v1,sum(unlist(lapply(1:3,function(x)sample(unlist(E[x,1]),1)))))

  4. v2=c(v2,sum(unlist(lapply(1:3,function(x)sample(unlist(E[x,2]),1)))))

  5. v3=c(v3,sum(unlist(lapply(1:3,function(x)sample(unlist(E[x,3]),1)))))

  6. v4=c(v4,sum(unlist(lapply(1:3,function(x)sample(unlist(E[x,4]),1)))))

  7. }

  8. v=data.frame(v1=v1,v2=v2,v3=v3,v4=v4)
复制代码
就这样的,i用来执行三次的。等想到好的函数可以优化下
是什么给了你自信

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 12:38