2017-05-25 4 views
1
mdma4 <- unique(mdma4)  
output <- c() 
for (i in 1:length(mdma4)){ 
    m <- (mdma4[i]) 
    result <- mdma$MRP.Area[grepl('m', mdma$Material)] 
    if (length(result) == 0){ 
    print('in if') 
    output <- c(output, result) 
    } 
} 

mdma4はベクトル:c("A", "B", ...)を含んでいます。 mdmaは2列のデータフレームです。文字列を渡すことにより、ループのためのGrepl in

mdma4からmdma$Materialに文字列を渡して、mdma$MRPから対応するエントリを見つけようとしています。エリア しかし、greplコードは、対応する列からデータを取得していません。

ループ外で部分一致する文字列ですが、次のコードは機能しますが、doループの場合は機能しません。

test <- mdma$MRP.Area[grepl("GK180", mdma$Material)] 
+0

追加情報を提供したり、説明を要求する場合は、コメントを使用するか、質問を更新してください。回答をコピーして回答として投稿すると便利ではありません。 – manotheshark

答えて

0

完全な文字列一致または部分文字列一致を探しているかどうかは不明です。次のいずれかが動作するはずです:

mdma$MRP.Area[grepl(m, mdma$Material)] #remove quotes around m 

mdma$MRP.Area[grepl(mdma4[i], mdma$Material)] #not creating variable m 

mdma$MRP.Area[mdma$Material == mdma4[i]] #full string match 

FYI、クロージング}はの

0

すべてが欠落しているforループの外にそれがループ 内にある場合、作業しかし、働いていない、次の

mdma$MRP.Area[grepl(m, mdma$Material)] #remove quotes around m 

mdma$MRP.Area[grepl(mdma4[i], mdma$Material)] #not creating variable m 

mdma$MRP.Area[mdma$Material == mdma4[i]] 
関連する問題