2017-03-08 8 views
0

リストから特定の値を削除して洗練されたリストを作成したいとします。削除したいすべての値が、removeという名前の文字ベクタに格納されています。 removeの値は、リストの最初の列に対応します。私は次のコードを実行しました:リストから文字ベクトルに格納された値を削除する

refined_list = list 
for (i in length(list)){ 
    if (refined_list[i,1] %in% remove){ 
    refined_list = refined_list[-i,] 
} 
    else{ 
    refined_list = refined_list 
} 
} 

洗練されたリストの初期化だけが登録されているようです。エラーはありませんが、refined_listはlistと同じです。それは私に謎です

+0

こんにちは。おそらく、リストのサブセットと目的の出力を提供することで、この質問を再現性のあるものにすることができます。また、リストはリストの名前が貧弱です。 – shayaa

+0

'lst'が' data.frame'であると仮定して 'lst [!lst [、1]%in%remove、drop = FALSE] – akrun

答えて

0

あなたが提案しているようにリストをサブセット化することはできません(すなわち、list[, 1])ので、実際にはリストについて話しているようではありません。しかし、data.frameのソリューションをお探しの場合は、ここをクリックしてください:

# Set up some test data 
dd <- data.frame(letters = letters[1:10], stringsAsFactors = FALSE) 
remove <- letters[c(1, 4, 6)] 

# Shed values that are in remove 
dd[!(dd[, 1] %in% remove), 1, drop = FALSE] 

#> "b" "c" "e" "g" "h" "i" "j" 
関連する問題