- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 135 个
- 通用积分
- 35.1755
- 学术水平
- 0 点
- 热心指数
- 13 点
- 信用等级
- 5 点
- 经验
- 6217 点
- 帖子
- 57
- 精华
- 0
- 在线时间
- 138 小时
- 注册时间
- 2015-10-19
- 最后登录
- 2022-10-11
|
用C写的改的R,据说r中for循环效率低,LZ自己斟酌吧运行了一次,不保证没有bug
- function(find0){
- data<-matrix(c(1,2,0,3,5,0,0,2,1,0,7,9,0,5,7,2,0,0,0,0,0,0,1,2,4,3,7,0,0,0,7,0,0,0,0,0),nrow=4,byrow = T)
- n01<-0
- n02<-0
- n03<-0
- temp<-0 #0值索引
- index<-1 #是否是第一个非0值的标志位
- for(i in 1:dim(data)[2]){
- for(j in 1:dim(data)[1]){
- if(data[j,i]!=0){
- if(index==1){
- index=0
- next
- }
- else{
- if(temp==1) n01<-n01+1
- else if(temp==2) n02<-n02+1
- else if(temp==3) n03<-n03+1
- temp=0
- }
- }
- else{
- if(j==1){index=0}
- temp<-temp+1
- if(j==dim(data)[1]){
- if(temp==1) n01<-n01+1
- else if(temp==2) n02<-n02+1
- else if(temp==3) n03<-n03+1
- }
- }
- }
- temp=0
- index=1
- }
- print(n01)
- print(n02)
- print(n03)
- }
复制代码
|
|