在 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)
)
)
我有一个包含 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)
)
)