通过根据条件删除元素来修改列表
Modify a list by deleting elements based on a condition
我必须创建一个函数来接收 x 元素的列表并通过删除 2 或 7 的元素来修改它。
这是我解决该问题的方法:
extract.inputs <- function(x) { for(i in 1:length(x)){
if(x[i] == 2 | x[i] == 7){
x[x != i]}}}
当我试图通过时
lst <- c(2, 2, -3, 1, -99, -10, 10, 7)
作为参数,它不修改列表,它returns完全相同的列表
如何修改它才能得到没有 2 和 7 数字的列表?
除了前面的建议之外,请注意 which
函数可用于生成所需向量中值的位置。所以:
vals <- which(lst !=2 & lst !=7)
vals
[1] 3 4 5 6 7
lst[vals]
[1] -3 1 -99 -10 10
# You can combine both statements
lst[which(lst !=2 & lst !=7)]
[1] -3 1 -99 -10 10
which
通常是一个非常方便的函数。
我必须创建一个函数来接收 x 元素的列表并通过删除 2 或 7 的元素来修改它。
这是我解决该问题的方法:
extract.inputs <- function(x) { for(i in 1:length(x)){
if(x[i] == 2 | x[i] == 7){
x[x != i]}}}
当我试图通过时
lst <- c(2, 2, -3, 1, -99, -10, 10, 7)
作为参数,它不修改列表,它returns完全相同的列表
如何修改它才能得到没有 2 和 7 数字的列表?
除了前面的建议之外,请注意 which
函数可用于生成所需向量中值的位置。所以:
vals <- which(lst !=2 & lst !=7)
vals
[1] 3 4 5 6 7
lst[vals]
[1] -3 1 -99 -10 10
# You can combine both statements
lst[which(lst !=2 & lst !=7)]
[1] -3 1 -99 -10 10
which
通常是一个非常方便的函数。