全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1248 3
2018-05-07
求助高手:
有一组数据:spc_all
USL        SL     LSL    CONTROLGROUP_ID     X1     X2     X3     X4     X5    X6    X7    X8    X9   X10   X11   X12
1  60.0  57.0  54.0   1-PI-CD-BE0002        55.45  57.39  55.45  56.42  57.39  57.0  57.0  57.0  57.0  57.0  57.0  57.0
2  11.0   9.5   8.0  1-PI-THK-BE0009         9.19   8.93   8.70   9.19   8.85   9.5   9.5   9.5   9.5   9.5   9.5   9.5
3  66.0  60.0  54.0  1-PI-CD-AF-A53A      60.19  61.17  61.17  61.17  61.17  60.0  60.0  60.0  60.0  60.0  60.0  60.0
4   6.5   5.0   3.5 1-PI-THK-AF-A53A       4.51   4.76   4.73   4.68   4.56   5.0   5.0   5.0   5.0   5.0   5.0   5.0
5 156.0 150.0 144.0      1-PR-CD0194    151.96 152.94 150.98 152.94 152.94 150.0 150.0 150.0 150.0 150.0 150.0 150.0
6  25.0  20.0  15.0     1-PR-THK0050      18.57  18.90  19.30  19.60  19.13  20.0  20.0  20.0  20.0  20.0  20.0  20.0
  Result
1      
2      
3      
4      
5      
6      


进行判断:
当X1->X12的数据 在USL 和LSL之间,就赋值为1,如果有任何一个数据>USL 或<LSL,就标记为0,并退出i的循环,t+1后再次循环

循环如下:
for(t in 1:nrow(spc_all)){
  for(i in 5:ncol(spc_all)-1)
    {
  if(spc_all[t,i]<spc_all[t,]$LSL | spc_all[t,i]>spc_all[t,]$USL){
     spc_all[t,]$Result<-0
     break
  }else if(spc_all[t,i]>spc_all[t,]$LSL & spc_all[t,i]<spc_all[t,]$USL{
spc_all[t,]$Result<-1
}
  }
  }

上面的循环是否准确?
二维码

扫码加我 拉你入群

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

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

全部回复
2018-5-7 17:52:30
library(dplyr)
spc_all002=spc_all %>%select(-c(5:16))%>%mutate_all(funs(ifelse(.>=LSL&.<=USL,1,0)))
%>% mutate(maxnum=pmax(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12)
%>%select(maxnum)

spc_all003=cbind(spc_all002,spc_all)
二维码

扫码加我 拉你入群

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

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

2018-5-8 10:55:49
rainningpoet 发表于 2018-5-7 17:52
library(dplyr)
spc_all002=spc_all %>%select(-c(5:16))%>%mutate_all(funs(ifelse(.>=LSL&.% mutate(max ...
用这个方法,我试下
二维码

扫码加我 拉你入群

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

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

2018-5-9 13:46:43
Gover_chen 发表于 2018-5-8 10:55
用这个方法,我试下
Hi ,用mutate_all函数可以解决问题,谢谢了。有机会一起探讨!
分享下:
spc_all001<-spc_all%>%select(c(14:25))%>%mutate_all(funs(ifelse(.>=spc_all$LSL&.<=spc_all$USL,1,0)))%>%
  mutate(Result=pmin(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12))%>%
  select(Result)
spc_all<-cbind(spc_all,spc_all001)
#spc_lsl判断:
spc_lsl001<-spc_lsl%>%select(c(14:25))%>%mutate_all(funs(ifelse(.<=spc_lsl$USL,1,0)))%>%
  mutate(Result=pmin(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12))%>%
  select(Result)
spc_lsl<- cbind(spc_lsl,spc_lsl001)  
#spc_usl判断:
spc_usl001<-spc_usl%>%select(c(14:25))%>%mutate_all(funs(ifelse(.>=spc_usl$LSL,1,0)))%>%
  mutate(Result=pmin(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12))%>%
  select(Result)
spc_usl<-cbind(spc_usl,spc_usl001)

# merge data:
rbind(spc_all,spc_lsl,spc_usl)->spc
as.factor(spc$Result)->spc$Result
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群