楼主: fmsr
4474 2

[问答] R有没有类似于笛卡尔积的比较高效的“笛卡尔和”函数 [推广有奖]

  • 6关注
  • 1粉丝

已卖:37份资源

博士生

43%

还不是VIP/贵宾

-

威望
0
论坛币
428 个
通用积分
0.0722
学术水平
0 点
热心指数
2 点
信用等级
1 点
经验
7225 点
帖子
248
精华
0
在线时间
302 小时
注册时间
2009-7-31
最后登录
2021-6-9

楼主
fmsr 在职认证  发表于 2017-1-23 10:54:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
做了个模型有25个变量,都是离散型,每个变量有2~8个取值不等,多数是2~3个取值,每个取值都有一个系数,默认值得0也算一个值。想求一下,所有可能的预测结果值。最后的问题归结到,如何高效的计算“笛卡尔和”。这里的“笛卡尔和”指的是两个向量的每个元素与另一个向量的每个元素相加,得到一个新的向量,比如:
a=c(1,2)
b=c(5,8,17)
则a与b的“笛卡尔和”就是
(1+5,1+8,1+17,2+5,2+8,2+17).
假设全部25个变量都是两水平变量,那么就需要计算2^25次求和,也就是3000多万次运算。况且好多不是两水平变量。

自己编了个循环,但是特别慢,(一个向量是17万的长度,另一个是70万的长度),请问各位大神有没有办法,加快计算“笛卡尔和”的速度。昨天差点把公司一台服务器算崩

我写的循环是:
  d=NULL
  for(i in a[!is.na(a)]){
    d=c(d,i+b[!is.na(b)])
    }
这里可以先计算一下b[!is.na(b)],但是感觉加快不了多少。


二维码

扫码加我 拉你入群

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

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

关键词:笛卡尔 有没有 null For 离散型 笛卡尔

回帖推荐

syslon 发表于2楼  查看完整内容

outer(a,b,"+")
沉浮白装偷空

沙发
syslon 发表于 2017-1-23 12:49:51
outer(a,b,"+")

藤椅
小朝 发表于 2017-1-24 10:11:48
syslon 发表于 2017-1-23 12:49
outer(a,b,"+")
正解!!!!!!

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

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