R 如何从df列表中获取特定变量的df名称和第一个输入值
我有一个dfs列表: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"
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