0
我會感激,如果你能幫助我有以下兩個問題:For循環無視我的第一個項目
- 的「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])}
謝謝你在前進, Ragy艾薩克
索引開始從1,不是0 http://stackoverflow.com/questions/3135325/why-do-vector-indices-in -r-start-with-1-instead-of 0 – mnel 2013-03-12 01:11:57
...這意味着當'varLoop [0] < - Grep(0)'運行時,結果將不會被存儲。 – 2013-03-12 02:05:12