Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于正则表达式的列表中的子集数据帧_R_List_Lapply - Fatal编程技术网

R 基于正则表达式的列表中的子集数据帧

R 基于正则表达式的列表中的子集数据帧,r,list,lapply,R,List,Lapply,类似于,但regex似乎需要一种不同的方法。如果合适,请标记为副本 我继承了一系列数据帧,其结构如下: variable_1 <- c(1, 2) variable_2 <- c("A", "B") A <- data.frame(variable_1, variable_2) B <- data.frame(variable_1, variable_2) 但是,我的实际数据有很多这样的数据帧,所以我想将它们放入一个列表并对其进行

类似于,但regex似乎需要一种不同的方法。如果合适,请标记为副本

我继承了一系列数据帧,其结构如下:

variable_1 <- c(1, 2)
variable_2 <- c("A", "B")
A <- data.frame(variable_1, variable_2)
B <- data.frame(variable_1, variable_2)
但是,我的实际数据有很多这样的数据帧,所以我想将它们放入一个列表并对其进行批处理:

my_list <- list(A = A, B = B) 

$A
  variable_1 variable_2
1          1          A
2          2          B

$B
  variable_1 variable_2
1          1          A
2          2          B
但是我对R中的正则表达式和列表结构都不熟悉,这使我无法了解如何使用各自的
df
名称(即字母)为
my_list
中的每个
df
执行此操作。这是所需的输出结构,与上面的结果相反(问题似乎出在
??
):

lappy(我的列表,函数(x){
xU可以利用
Map()
并指定列表的
names()
作为函数的参数

代码

library(data.table)

Map(function(x, y){
  x[x$variable_2 %like% y, ]
  },
  my_list,
  names(my_list))

# $A
#   variable_1 variable_2
# 1          1          A
#
# $B
#   variable_1 variable_2
# 2          2          B
数据

variable_1 <- c(1, 2)
variable_2 <- c("A", "B")
A <- data.frame(variable_1, variable_2)
B <- data.frame(variable_1, variable_2)
my_list <- list("A" = A, "B" = B)
variable_1U可以利用
Map()
并指定列表的
names()
作为函数的参数

代码

library(data.table)

Map(function(x, y){
  x[x$variable_2 %like% y, ]
  },
  my_list,
  names(my_list))

# $A
#   variable_1 variable_2
# 1          1          A
#
# $B
#   variable_1 variable_2
# 2          2          B
数据

variable_1 <- c(1, 2)
variable_2 <- c("A", "B")
A <- data.frame(variable_1, variable_2)
B <- data.frame(variable_1, variable_2)
my_list <- list("A" = A, "B" = B)

变量_1我们可以使用
imap

library(dplyr)
library(purrr)
imap(my_list, ~ .x %>% 
          filter(variable_2 == .y))
-输出

#$A
#  variable_1 variable_2
#1          1          A

#$B
#  variable_1 variable_2
#1          2          B

我们可以使用
imap

library(dplyr)
library(purrr)
imap(my_list, ~ .x %>% 
          filter(variable_2 == .y))
-输出

#$A
#  variable_1 variable_2
#1          1          A

#$B
#  variable_1 variable_2
#1          2          B

即使有第三个data.frame,您也会始终有两列吗?另外,您的搜索条件有点不清楚。是否要始终搜索
变量_2
中的值?即,
a
B
C
,…?即使有第三个data.frame,您也会始终有两列吗?还有一点不清楚您的搜索条件。是否始终在
变量_2
中搜索值?即
A
B
C
。。。?