以下の2点について教えていただけると助かります。
- 以下の「for」ループは、最初のループ項目を無視します。以下のコードは、私のプログラムの一部です。ここでは、オブジェクト 'num' を反復処理し、mySet から特定の項目にフラグを立てる関数 'Grep' を使用して '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])}
- 2 つ目の問題は、スクリプトを次のように変更すると、不完全な出力と警告が表示されることです。警告は次のとおりです:「置換するアイテムの数は、置換の長さの倍数ではありません」。不完全な出力には、文字 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 Isaac