楼主: dxystata
6658 27

[其他] 如何把暂元中的内容分开? [推广有奖]

21
sungmoo 发表于 2011-2-20 00:32:54
dxystata 发表于 2011-2-20 09:01 如果是"a1 a2 a3 b4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4"传递进去 分成4组?
*设aaa中不含重复的word,如下命令可按分组插入"|",再按"|"分组(以分4组为例):

loc p="`aaa'"
forv i=1/4{
loc w=word("`p'",`i'*wordcount("`p'")/4)
loc p=subinword("`p'","`w'","`w'|",1)
}

forv i=1/4{
gettoken aaa`i' p:p,p("|")
loc p=subinstr("`p'","|","",1)
}
已有 1 人评分论坛币 热心指数 收起 理由
dxystata + 10 + 1 好的意见建议

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

22
dxystata 发表于 2011-2-20 07:52:19
1. 传递进去的word的总数是已知的,分组也是已知的!能否用循环写?
2. substr这个函数不能用,如果传递进去的变量名是x0 x1 rbc0 rbc1 aptt0 aptt1

23
sungmoo 发表于 2011-2-20 08:28:26
loc n=wordcount("`aaa'")
if mod(`n',2)==0{
  loc c=`n'/2
  forv i=1/`c'{
    loc aaa`i'=word("`aaa'",2*`i'-1)+" "+word("`aaa'",2*`i')
  }
}
else if mod(`n',9)==0{
  loc c=`n'/3
  forv i=1/3{
    forv j=1/`c'{
      loc aaa`i'="`aaa`i''"+word("`aaa'",`j'+`c'*(`i'-1))+" "
    }
  }
}

24
dxystata 发表于 2011-2-20 09:01:33
如果是a1 a2 a3 b4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 传递进去 分成4组?

25
dxystata 发表于 2011-2-20 09:11:03
如果传递进去是20个变量名 分成5组?

26
dxystata 发表于 2011-2-20 09:54:39
讨论就有收获!

27
sungmoo 发表于 2011-2-20 13:17:04
dxystata 发表于 2011-2-20 09:11 如果传递进去是20个变量名 分成5组?
*可以依此类推,aaa中含任意5n个words(n是正整数),且把aaa中各word按顺序平均分成5组:

loc n=wordcount("`aaa'")/5
forv i=1/5{
forv j=1/`n'{
loc aaa`i'="`aaa`i''"+word("`aaa'",`j'+`n'*(`i'-1))+" "
}
}
已有 1 人评分学术水平 热心指数 收起 理由
jzhyue + 1 + 1 我很赞同

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

28
sungmoo 发表于 2011-2-20 13:46:28
dxystata 发表于 2011-2-20 09:01 如果是a1 a2 a3 b4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 传递进去 分成4组?
*aaa中含任意4n个words,均分成4组:

loc n=wordcount("`aaa'")/4
forv i=1/4{
forv j=1/`n'{
loc aaa`i'="`aaa`i''"+word("`aaa'",`j'+`n'*(`i'-1))+" "
}
}
已有 1 人评分论坛币 收起 理由
dxystata + 10 好的意见建议

总评分: 论坛币 + 10   查看全部评分

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 13:38