在 R 中每个列表的数据框中的列中删除值小于零的行

Remove rows with value below zero in the column in each list's dataframe in R

我有一个包含 12 个元素(数据框)的大列表。每个数据框都有相同数量的行和列。

我想删除列中 AMOUNT 值 < 0 的所有行。

必须对列表中的所有数据帧执行此操作。

这是数据框的示例。

df
NAME   TIME  AMOUNT
1       20     456
2       30     -234
3       15     -13
4       12     267

你也可以使用 tidyverse 方法

library(tidyverse) # loads the tidyverse

list_of_df <- list_of_df %>% 
  map(., function(x){x %>% filter(AMOUNT >= 0)}) # filters out the values from the AMOUNT column
lapply(our_list, function(X) X[X$AMOUNT >= 0,])

[[1]]
  NAME TIME AMOUNT
1    1   20    456
4    4   12    267

[[2]]
  NAME TIME AMOUNT
2    2   30     23

数据:

our_list <- list(
  data.frame(
    NAME = 1:4, 
    TIME = c(20L, 30L, 15L, 12L), 
    AMOUNT = c(456L,-234L, -13L, 267L)
  ),
  data.frame(
    NAME = 1:4, 
    TIME = c(20L, 30L, 15L, 12L), 
    AMOUNT = c(-6L, 23L, -13L, -26L)
  )
)