2017-03-08 65 views
0

我想要從列表中刪除某些值以創建精煉列表。我想要刪除存儲在名爲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與列表完全相同。這對我來說是個謎

+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"