Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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 如何从df列表中获取特定变量的df名称和第一个输入值_R - Fatal编程技术网

R 如何从df列表中获取特定变量的df名称和第一个输入值

R 如何从df列表中获取特定变量的df名称和第一个输入值,r,R,我有一个dfs列表: lst<-list(`101-01-101` = structure(list(SubjectID = "101-01-101", BRTHDTC = "1953-07-07", SEX = "Female"), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame"

我有一个dfs列表:

lst<-list(`101-01-101` = structure(list(SubjectID = "101-01-101", 
    BRTHDTC = "1953-07-07", SEX = "Female"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame")), `101-02-102` = structure(list(
    SubjectID = "101-02-102", BRTHDTC = "1963-07-02", SEX = "Female"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame")), `101-03-103` = structure(list(
    SubjectID = "101-03-103", BRTHDTC = "1940-09-11", SEX = "Male"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame")), `101-04-104` = structure(list(
    SubjectID = "101-04-104", BRTHDTC = "1955-12-31", SEX = "Male"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame")), `104-05-201` = structure(list(
    SubjectID = "104-05-201", BRTHDTC = "1950-12-04", SEX = "Female"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame")))

lst使用
purrr
库很容易做到这一点:

library(purrr)

imap_dfr(lst, ~ data.frame(FileName = .y, Gender = .x[1, "SEX"]))
输出

    FileName    SEX
1 101-01-101 Female
2 101-02-102 Female
3 101-03-103   Male
4 101-04-104   Male
5 104-05-201 Female

使用
purrr
库很容易做到这一点:

library(purrr)

imap_dfr(lst, ~ data.frame(FileName = .y, Gender = .x[1, "SEX"]))
输出

    FileName    SEX
1 101-01-101 Female
2 101-02-102 Female
3 101-03-103   Male
4 101-04-104   Male
5 104-05-201 Female

我们可以在
map\u-dfr

library(dplyr)
library(purrr)
map_dfr(lst, ~ .x %>% 
       select(Gender = SEX) %>%
       slice(1), .id = 'FileName')
-输出

# A tibble: 5 x 2
#  FileName   Gender
#  <chr>      <chr> 
#1 101-01-101 Female
#2 101-02-102 Female
#3 101-03-103 Male  
#4 101-04-104 Male  
#5 104-05-201 Female

我们可以在
map\u-dfr

library(dplyr)
library(purrr)
map_dfr(lst, ~ .x %>% 
       select(Gender = SEX) %>%
       slice(1), .id = 'FileName')
-输出

# A tibble: 5 x 2
#  FileName   Gender
#  <chr>      <chr> 
#1 101-01-101 Female
#2 101-02-102 Female
#3 101-03-103 Male  
#4 101-04-104 Male  
#5 104-05-201 Female