楼主: tangfever
5528 3

[问答] R循环+排列组合 [推广有奖]

  • 1关注
  • 0粉丝

已卖:69份资源

本科生

40%

还不是VIP/贵宾

-

威望
0
论坛币
480 个
通用积分
0.2400
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3808 点
帖子
80
精华
0
在线时间
99 小时
注册时间
2012-11-1
最后登录
2017-2-28

楼主
tangfever 发表于 2014-2-15 17:44:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位:如何把排列组合运用到循环中呢?比如下面这个列子



y4为10行4列的矩阵,行为文本数,列为关键词,矩阵中的元素1代表有,0代表没有,想要求包含有关键词1和2,1和3,1和4,2和3,2和4,3和4的文本数(也就是按照组合S=combinations(4,2)来算)分别有多少?
我的程序是一个一个求的,但是当关键词数量很大时,就不实际了。请各位高手帮帮忙,感谢!程序如下:
m1=vector( )
for(i in 1:10) {
if (y4[i,1]+y4[i,2]==2) {      
m1=1
} else {
m1=0
}
}
sum(m1)

m2=vector( )
for(i in 1:10) {
if (y4[i,1]+y4[i,3]==2) {      
m2=1
} else {
m2=0
}
}
sum(m2)

m3=vector( )
for(i in 1:10) {
if (y4[i,1]+y4[i,4]==2) {      
m2=1
} else {
m3=0
}
}
sum(m3)

m4=vector( )
for(i in 1:10) {
if (y4[i,2]+y4[i,3]==2) {      
m4=1
} else {
m4=0
}
}
sum(m4)

m5=vector( )
for(i in 1:10) {
if (y4[i,2]+y4[i,4]==2) {      
m5=1
} else {
m5=0
}
}
sum(m5)

m6=vector( )
for(i in 1:10) {
if (y4[i,3]+y4[i,4]==2) {      
m6=1
} else {
m6=0
}
}
sum(m6)






二维码

扫码加我 拉你入群

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

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

关键词:Combinations combination Nations Vector Nation 关键词 程序 如何 元素

沙发
jmpamao 发表于 2014-2-15 19:16:35
这个觉的倒是可以简单的向量相加

  1. #比如考察10个文本,中10个关键词的情况
  2. #10个关键词之间两两配对,共有45种可能。
  3. set.seed(1)
  4. data<-matrix(sample(c(0,1),100,replace=T),nrow=10)
  5. comb<-t(combn(c(1:10),2));comb
  6. newmatrix<-data[,comb[,1]]+data[,comb[,2]]
  7. new2<-newmatrix
  8. new2[which(newmatrix>=2)]=1
  9. new2[which(newmatrix<2)]=0
  10. new2
  11. #为1的为有两两有关键词,new2列 查看 comb的行对应于原来data的哪两个列。
复制代码


已有 2 人评分学术水平 热心指数 信用等级 收起 理由
tangfever + 1 + 1 + 1 精彩帖子
求证1加1 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

藤椅
ntsean 发表于 2014-2-16 02:58:48

y4 <- matrix(sample(0:1, 40, replace = T), nrow = 10)


pair <- as.matrix(expand.grid(col1 = 1:ncol(y4), col2 = 1:ncol(y4)))

pair <- pair[pair[, 1] < pair[, 2], ]

comp <- apply(pair, 1, function(x) y4[, x[1]] & y4[, x[2]])

colnames(comp) <- apply(pair, 1, function(x) paste0("m", x, collapse=""))

cbind(y4, comp)

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
tangfever + 1 + 1 + 1 精彩帖子
求证1加1 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
tangfever 发表于 2014-2-17 12:11:09
非常感谢

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

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