如果您能帮助我解决以下两个问题,我将不胜感激:
- 下面的“for”循环忽略了我的第一个循环项。下面的代码是我程序的一小部分。在这里,我正在迭代对象“num”并使用函数“Grep”循环遍历“mySet”,该函数标记了 mySet 中的某些项目。
“for”循环在“num”对象的第一个元素“0”处起作用。因此,它在 mySet 中找不到任何以“0”开头的项目。
num <- c(0,2,4,6,8,10,15,20,30,40,45,50,55,60,65,70,80,85,90,92,94,96,98,100)
mySet <- c("0.C.A", "2.C.A", "4.C.A", "6.C.A", "8.C.A", "10.C.A", "15.C.A", "20.C.A",
"30.C.A", "40.C.A", "45.C.A", "50.C.A", "55.C.A", "60.C.A", "65.C.A", "70.C.A",
"80.C.A", "85.C.A", "90.C.A", "92.C.A", "94.C.A", "96.C.A", "98.C.A", "100.C.A")
varLoop <- c()
Grep <- function(num)grep(paste("^" , num, "\\.", sep=""), mySet, value = TRUE)
for(i in num){
varLoop[i] <- Grep(i)
print(varLoop[i])}
- 如果我按如下方式修改脚本,第二个问题是不完整的输出和警告。警告是:“要替换的项目数不是替换长度的倍数”。不完整的输出不包括任何以字母B结尾的项目
下面的脚本会产生问题:
num <- rep(c(0,2,4,6,8,10,15,20,30,40,45,50,55,60,65,70,80,85,90,92,94,96,98,100), 2)
mySet <- c("0.C.A", "2.C.A", "4.C.A", "6.C.A", "8.C.A", "10.C.A", "15.C.A", "20.C.A",
"30.C.A", "40.C.A", "45.C.A", "50.C.A", "55.C.A", "60.C.A", "65.C.A", "70.C.A",
"80.C.A", "85.C.A", "90.C.A", "92.C.A", "94.C.A", "96.C.A", "98.C.A", "100.C.A",
"0.C.B", "2.C.B", "4.C.B", "6.C.B", "8.C.B", "10.C.B", "15.C.B", "20.C.B",
"30.C.B", "40.C.B", "45.C.B", "50.C.B", "55.C.B", "60.C.B", "65.C.B", "70.C.B",
"80.C.B", "85.C.B", "90.C.B", "92.C.B", "94.C.B", "96.C.B", "98.C.B", "100.C.B")
varLoop <- c()
Grep <- function(num)grep(paste("^" , num, "\\.", sep=""), mySet, value = TRUE)
for(i in num){
varLoop[i] <- Grep(i)
print(varLoop[i])}
提前谢谢你,拉吉·艾萨克