gpt4 book ai didi

r - 在R中的循环中迭代字符或数字

转载 作者:行者123 更新时间:2023-12-04 11:51:01 25 4
gpt4 key购买 nike

对 R 很陌生,所以这可能是一个简单的答案。我有一个字符列表。我想删除最后一个字母并将其迭代一个,使 A 变为 B,1 变为 2,依此类推。

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]

我遇到的问题是,如果最后一个字符是数字,它会以 InfNA_character_ 的形式返回,因为它不在 LETTERS 中。

我试图找到一种方法来选择下面的这些非结果,但它不会将其视为 TRUE/FALSE 语句,因此它不起作用。还有另一种方法可以做到这一点吗?

     if(pos==Inf | pos==NA_character_)
{
lastchar<-as.numeric(lastchar)
pos<-lastchar+1
}

最佳答案

对于一个有效的解决方案(假设您使用大写字母),

res <- sapply(waferlist, function(i) {
out <- utf8ToInt(i)
out[[nchar(i)]] <- out[[nchar(i)]] + 1
if (out[[nchar(i)]] == 91) out[[nchar(i)]] <- 65
## For 9 cycling back to 0?
else if (out[[nchar(i)]] == 58) out[[nchar(i)]] <- 48
intToUtf8(out)
})

关于r - 在R中的循环中迭代字符或数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com