楼主: dxystata
6676 27

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

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2010-6-21 17:17:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
local aaa "a b c d"  或 local "a b c d f g"
想把前一半words赋给暂元bbb(a b)  后一半赋给ccc( c d )
二维码

扫码加我 拉你入群

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

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

关键词:Local words word OCA RDS local 如何

沙发
houquan 发表于 2010-6-21 23:58:14
1# dxystata
local aaa "a b c d"
local bbb substr("`aaa'", 1, int(length("`aaa'")/2))
local ccc substr("`aaa'", int(length("`aaa'")/2) + 1, length("`aaa'"))
di `aaa' `bbb' `ccc'
已有 1 人评分论坛币 收起 理由
dxystata + 5 好的意见建议

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

We all love to instruct, though we can teach only what is not worth knowing. -- J. Austen

藤椅
dxystata 发表于 2010-6-22 07:02:54
欠通用
local aaa "aa b c d"

板凳
jzhyue 发表于 2010-6-22 17:31:19
dxystata 发表于 2010-6-22 07:02
欠通用
local aaa "aa b c d"
local aaa "aa b c d"
token `aaa'
scal n=0
foreach v in `*'{
scal n=n+1
}
local bbb=word("`aaa'", int(n/2))
local ccc=word("`aaa'", -int(n/2))
di "`bbb'"
di "`ccc'"

报纸
jzhyue 发表于 2010-6-22 18:29:46
试试这个:
local aaa "aa b c d"
token `aaa'
scal n=0
foreach v in `*'{
scal n=n+1
}
loca m=int(n/2)
loca bbb="`1'"
forvalue j=1/`m'{
macro shift
loca bbb="`bbb'"+" "+"`1'"
}
loca ccc `*'
macro list


受sungmoo启发:
local aaa "aa b c d"
loca m=wordcount("`aaa'")/2
token `aaa'
loca bbb="`1'"
forvalue j=1/`m'{
macro shift
loca bbb="`bbb'"+" "+"`1'"
}
loca ccc `*'
di "`bbb'"
di "`ccc'"
已有 1 人评分论坛币 收起 理由
dxystata + 5 好的意见建议

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

地板
sungmoo 发表于 2010-6-22 18:33:24
dxystata 发表于 2010-6-21 17:17 local aaa "a b c d"  或 local "a b c d f g"
想把前一半words赋给暂元bbb(a b)  后一半赋给ccc( c d )
这里的“前一半”与“后一半”是否以空格为准?

7
sungmoo 发表于 2010-6-22 18:40:58
*试一下:
loc aaa "a bb ccc dddd eeeee ffffff"
loc n=wordcount("`aaa'")/2
forv i=1/`n'{
loc bbb="`bbb' "+word("`aaa'",`i')
}
forv i=-`n'/-1{
loc ccc="`ccc' "+word("`aaa'",`i')
}
di "`bbb'"
di "`ccc'"
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 5 对论坛有贡献
jzhyue + 1 + 1 + 1 对论坛有贡献

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

8
sungmoo 发表于 2010-6-23 07:55:35
*若宏变量aaa:(1)恰含偶数个words,(2)不含重复的words,(3)不含字符"|",可采用:

loc aaa "a bb ccc dddd eeeee ffffff"

loc w=word("`aaa'",wordcount("`aaa'")/2)
loc p=subinword("`aaa'","`w'","`w'|",1)
gettoken bbb p:p,p("|")
gettoken ccc p:p,p("|")    /*ccc中有首空格*/
gettoken ccc p:p,p("|")    /*ccc中无首空格*/

n di "`bbb'"
n di "`ccc'"
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
jzhyue + 1 + 1 + 1 我很赞同
dxystata + 20 好的意见建议

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

9
dxystata 发表于 2011-2-19 07:40:19
local aaa "a b c d f g"
想得到的结果:
aaa1 a b
aaa2 c d
aaa3 f  g

如何实现呢?

10
sungmoo 发表于 2011-2-19 08:37:08
dxystata 发表于 2011-2-19 07:40
local aaa "a b c d f g"
想得到的结果:
aaa1 a b
aaa2 c d
aaa3 f  g

如何实现呢?
这种比较规律的分段,用substr()即可吧

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-21 15:49