Удалить строки со значением ниже нуля в столбце каждого фрейма данных списка в R - PullRequest
0 голосов
/ 12 февраля 2019

У меня большой список с 12 элементами (датафреймы).Каждый фрейм данных имеет одинаковое количество строк и столбцов.

Я хотел бы удалить все строки, которые имеют в столбце значение AMOUNT <0. </p>

Это необходимо сделать для всех кадров данных из списка.

Вот пример кадра данных.

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

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019
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)
  )
)
0 голосов
/ 12 февраля 2019

Вы также можете использовать подход 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
...