相当新的R,所以这可能是一个简单的答案。 我有一个字符列表。我想删除最后一个字母等A变为乙通过一个迭代它,1变成2等在R循环中迭代一个字符或数字
waferlist<-c('L2MLQ','L2MIW','L2MK0','L2ML6','L2MO2','L2MHE','L2MK4','L2MN6','L2MLM')
for (i in waferlist)
{
lastchar<-substr(i,5,6) #Get last character
k<-lastchar==LETTERS #Is it a Letter
pos<-min(which(k==TRUE)) #Find letter position and itterate
pos<-pos+1
pos<-LETTERS[pos]
时遇到的问题是,如果最后一个字符是一个数字,它返回其作为Inf
或NA_character_
,因为它不是。
我试图找到一种方法来选择下面的这些非结果,但它并没有看到它作为TRUE/FALSE
语句,所以它不起作用。有没有另一种方法来做到这一点?
if(pos==Inf | pos==NA_character_)
{
lastchar<-as.numeric(lastchar)
pos<-lastchar+1
}
是什么9变成什么? Z成为什么?我会分别猜出零和A,回到开始,但你应该澄清一点。 –
有没有一种简单的方法可以回到基地36'strtoi(晶圆列表,36)+ 1' –
对不起理查德,Ids的设置,所以他们永远不会结束在9或Z,所以我不必担心关于该 – Marcus