Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R使用For循环匹配字母和数字_R_Loops_Matrix_Letter_Ordinal - Fatal编程技术网

R使用For循环匹配字母和数字

R使用For循环匹配字母和数字,r,loops,matrix,letter,ordinal,R,Loops,Matrix,Letter,Ordinal,我试图在每一行打印一个匹配的字母和数字。但是,代码会重复26 x 26次,而不是26 x 1次。我希望到达第一个“z”后的中断可以停止循环,但事实并非如此 for (i in 1:26) { l = letters num = sapply(1:26, toOrdinal) print(paste0(l," is the ",num," letter of the alphabet.")) if (l == "z") {

我试图在每一行打印一个匹配的字母和数字。但是,代码会重复26 x 26次,而不是26 x 1次。我希望到达第一个“z”后的中断可以停止循环,但事实并非如此

for (i in 1:26) {
  l = letters
  num = sapply(1:26, toOrdinal)
  print(paste0(l," is the ",num," letter of the alphabet."))
  if (l == "z") {
    break
  }
}
我编写了另一段代码,将数据放入矩阵中以控制打印,但我想让最上面的代码发挥作用,以供我自己借鉴

#Create Data Matrix contain desired data to restrict continuous printing
matrix.letters <- matrix(nrow = 26, ncol = 3, dimnames = list(NULL, c("num", "letter", "ordinal")))
matrix.letters[,'num'] <- 1:26
matrix.letters[, 'ordinal'] <- sapply(1:26, toOrdinal)
matrix.letters[,'letter'] <- letters

#create index observation
letters.df <- as.data.frame(matrix.letters)

#YES - correct print achieved
for (i in nrow(letters.df)) {
  print(paste0(letters.df$letter," is the ",letters.df$ordinal, " letter of the alphabet."))
}
#创建包含所需数据的数据矩阵以限制连续打印

matrix.letters首先,请明确非基本包装。在你的问题中,我是在推断“toOrdinal::toOrdinal”函数

首先,您的问题是您正在循环,但您应该在代码的多个位置使用循环计数进行索引:

for(1:26中的i){
l=字母[i]
num=toOrdinal(i)
打印(粘贴0(l,“是字母表中的字母”,num,“字母表中的字母”)
如果(l=“z”){
打破
}
}
#[1]“a是字母表中的第一个字母。”
#[1]“b是字母表中的第二个字母。”
#[1]“c是字母表中的第三个字母。”
#[1]“d是字母表中的第四个字母。”
#[1]“e是字母表中的第五个字母。”
#[1]“f是字母表中的第六个字母。”
#[1]“g是字母表中的第七个字母。”
#[1]“h是字母表中的第8个字母。”
#[1]“我是字母表中的第9个字母。”
#[1]“j是字母表中的第十个字母。”
#[1]“k是字母表中的第11个字母。”
#[1]“l是字母表中的第12个字母。”
#[1]“m是字母表中的第13个字母。”
#[1]“n是字母表中的第14个字母。”
#[1]“o是字母表中的第15个字母。”
#[1]“p是字母表中的第16个字母。”
#[1]“q是字母表中的第17个字母。”
#[1]“r是字母表中的第18个字母。”
#[1]“s是字母表中的第19个字母。”
#[1]“t是字母表中的第20个字母。”
#[1]“u是字母表中的第21个字母。”
#[1]“v是字母表中的第22个字母。”
#[1]“w是字母表中的第23个字母。”
#[1]“x是字母表中的第24个字母。”
#[1]“y是字母表中的第25个字母。”
#[1]“z是字母表中的第26个字母。”
正如@Joe在评论中所说,在您的原始代码中,
paste0
得到了
l
(长度26)和
num
(长度26),因此它返回了正在打印的向量(长度26)。我对你的
for
循环的第一个想法是低效的重新分配,因为
l=letters
每次传递都做完全相同的事情,与
num=sappy(…)
相同,所以这些可能已经被移动到循环之外。事实上,这种情况可能会发生,代码略有不同:


Ls首先,请明确非基本包。在你的问题中,我是在推断“toOrdinal::toOrdinal”函数

首先,您的问题是您正在循环,但您应该在代码的多个位置使用循环计数进行索引:

for(1:26中的i){
l=字母[i]
num=toOrdinal(i)
打印(粘贴0(l,“是字母表中的字母”,num,“字母表中的字母”)
如果(l=“z”){
打破
}
}
#[1]“a是字母表中的第一个字母。”
#[1]“b是字母表中的第二个字母。”
#[1]“c是字母表中的第三个字母。”
#[1]“d是字母表中的第四个字母。”
#[1]“e是字母表中的第五个字母。”
#[1]“f是字母表中的第六个字母。”
#[1]“g是字母表中的第七个字母。”
#[1]“h是字母表中的第8个字母。”
#[1]“我是字母表中的第9个字母。”
#[1]“j是字母表中的第十个字母。”
#[1]“k是字母表中的第11个字母。”
#[1]“l是字母表中的第12个字母。”
#[1]“m是字母表中的第13个字母。”
#[1]“n是字母表中的第14个字母。”
#[1]“o是字母表中的第15个字母。”
#[1]“p是字母表中的第16个字母。”
#[1]“q是字母表中的第17个字母。”
#[1]“r是字母表中的第18个字母。”
#[1]“s是字母表中的第19个字母。”
#[1]“t是字母表中的第20个字母。”
#[1]“u是字母表中的第21个字母。”
#[1]“v是字母表中的第22个字母。”
#[1]“w是字母表中的第23个字母。”
#[1]“x是字母表中的第24个字母。”
#[1]“y是字母表中的第25个字母。”
#[1]“z是字母表中的第26个字母。”
正如@Joe在评论中所说,在您的原始代码中,
paste0
得到了
l
(长度26)和
num
(长度26),因此它返回了正在打印的向量(长度26)。我对你的
for
循环的第一个想法是低效的重新分配,因为
l=letters
每次传递都做完全相同的事情,与
num=sappy(…)
相同,所以这些可能已经被移动到循环之外。事实上,这种情况可能会发生,代码略有不同:


Ls索引!我不敢相信我忽视了这一点。不管出于什么原因,在我所有不同的尝试中,我从未做过索引。我尝试了不同的方法来欺骗计数器/环路。谢谢你们两个例子。我想我有一个反隧道视力的病例。索引!我不敢相信我忽视了这一点。不管出于什么原因,在我所有不同的尝试中,我从未做过索引。我尝试了不同的方法来欺骗计数器/环路。谢谢你们两个例子。我想我是患了反隧道视力。