阅读权限 255 威望 2 级论坛币 497178 个 通用积分 12679.5631 学术水平 517 点 热心指数 662 点 信用等级 353 点 经验 147986 点 帖子 2346 精华 1 在线时间 2047 小时 注册时间 2012-11-6 最后登录 2022-8-19
给你一下查找配对括号的函数吧:
xx <- "for i=46:60dY(i)=(E5(i-45,1)*Y(46)+E5(i-45,2)*Y(47)+E5(i-45,3)*Y(48)+E5(i-45,4)*Y(49)+E5(i-45,5)*Y(50)+E5(i-45,6)*Y(51)+E5(i-45,7)*Y(52)+E5(i-45,8)*Y(53)+E5(i-45,9)*Y(54)+E5(i-45,10)*Y(55)+E5(i-45,11)*Y(56)+E5(i-45,12)*Y(57)+E5(i-45,13)*Y(58)+E5(i-45,14)*Y(59)+E5(i-45,15)*Y(60))...
+(E6(i-45,1)*Y(16)+E6(i-45,2)*Y(17)+E6(i-45,3)*Y(18)+E6(i-45,4)*Y(19)+E6(i-45,5)*Y(20)+E6(i-45,6)*Y(21)+E6(i-45,7)*Y(22)+E6(i-45,8)*Y(23)+E6(i-45,9)*Y(24)+E6(i-45,10)*Y(25)+E6(i-45,11)*Y(26)+E6(i-45,12)*Y(27)+E6(i-45,13)*Y(28)+E6(i-45,14)*Y(29)+E6(i-45,15)*Y(30))...
*(A11(i-45,1)*Y(1)+A11(i-45,2)*Y(2)+A11(i-45,3)*Y(3)+A11(i-45,4)*Y(4)+A11(i-45,5)*Y(5)+A11(i-45,6)*Y(6)+A11(i-45,7)*Y(7)+A11(i-45,8)*Y(8)+A11(i-45,9)*Y(9)+A11(i-45,10)*Y(10)+A11(i-45,11)*Y(11)+A11(i-45,12)*Y(12)+A11(i-45,13)*Y(13)+A11(i-45,14)*Y(14)+A11(i-45,15)*Y(15))...
+(E6(i-45,1)*Y(1)+E6(i-45,2)*Y(2)+E6(i-45,3)*Y(3)+E6(i-45,4)*Y(4)+E6(i-45,5)*Y(5)+E6(i-45,6)*Y(6)+E6(i-45,7)*Y(7)+E6(i-45,8)*Y(8)+E6(i-45,9)*Y(9)+E6(i-45,10)*Y(10)+E6(i-45,11)*Y(11)+E6(i-45,12)*Y(12)+E6(i-45,13)*Y(13)+E6(i-45,14)*Y(14+E6(i-45,15)*Y(15))...
*(A11(i-45,1)*Y(16)+A11(i-45,2)*Y(17)+A11(i-45,3)*Y(18)+A11(i-45,4)*Y(19)+A11(i-45,5)*Y(20)+A11(i-45,6)*Y(21)+A11(i-45,7)*Y(22)+A11(i-45,8)*Y(23)+A11(i-45,9)*Y(24)+A11(i-45,10)*Y(25)+A11(i-45,11)*Y(26)+A11(i-45,12)*Y(27)+A11(i-45,13)*Y(28)+A11(i-45,14)*Y(29)+A11(i-45,15)*Y(30));"
library(stringr)
left_bracket_index <- str_locate_all(xx,"\\(")[[1]][,1]
left_bracket <- data.frame(location=left_bracket_index,symbol=1)
right_bracket_index <- str_locate_all(xx,"\\)")[[1]][,1]
right_bracket <- data.frame(location=right_bracket_index,symbol=2)
df <- rbind(left_bracket,right_bracket)
find_match_bracket <- function(df){
cc <- df[order(df[,1]),]
match_bracket <- sort(c(which(diff(cc[,2],1)==1),which(diff(cc[,2],1)==1)+1))
not_match <- cc[-match_bracket,]
return(not_match)
}
df1 <- find_match_bracket(df)
df2 <- find_match_bracket(df1) 复制代码
重复find_match_bracket就可以了