我有一个包含12个元素( Dataframe )的大列表。每个 Dataframe 具有相同的行数和列数。我想删除列AMOUNT值〈0的所有行。必须对列表中的所有 Dataframe 执行此操作。下面是dataframe的一个例子。
df NAME TIME AMOUNT 1 20 456 2 30 -234 3 15 -13 4 12 267
zpf6vheq1#
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) ) )
w8f9ii692#
你也可以使用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
wmvff8tz3#
一个简单的方法(不需要其他R包),如果你的dataframe是'df',你想过滤掉负数的值是'value'
df <- df[value>=0,]
这基于值列大于或等于零来过滤 Dataframe 。希望这能帮上忙。
3条答案
按热度按时间zpf6vheq1#
数据:
w8f9ii692#
你也可以使用tidyverse方法
wmvff8tz3#
一个简单的方法(不需要其他R包),如果你的dataframe是'df',你想过滤掉负数的值是'value'
这基于值列大于或等于零来过滤 Dataframe 。希望这能帮上忙。