从列表中删除存储在字符向量中的值

时间:2017-03-08 04:56:31

标签: r list vector

我想从列表中删除某些值以创建精炼列表。我将要删除的所有值存储在名为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
}
}

只有精炼列表的初始化似乎才能注册。没有错误,但refine_list与list相同。这对我来说是一个谜。

1 个答案:

答案 0 :(得分: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"