在 R 中使用 map_*()
Using map_*() in R
我正在使用 attrition
数据并使用 map()
检查每一列是否是一个因素。
到目前为止我取得了这么多:
attrition %>% map_df(~(data.frame(class = class(.x))),
.id = "Column")
这给我以下输出:
Column class
1 Age integer
2 Attrition factor
3 BusinessTravel factor
4 DailyRate integer
5 Department factor
6 DistanceFromHome integer
7 Education ordered
8 Education factor
9 EducationField factor
10 EnvironmentSatisfaction ordered
11 EnvironmentSatisfaction factor
12 Gender factor
13 HourlyRate integer
14 JobInvolvement ordered
15 JobInvolvement factor
16 JobLevel integer
17 JobRole factor
18 JobSatisfaction ordered
19 JobSatisfaction factor
20 MaritalStatus factor
21 MonthlyIncome integer
22 MonthlyRate integer
23 NumCompaniesWorked integer
24 OverTime factor
25 PercentSalaryHike integer
26 PerformanceRating ordered
27 PerformanceRating factor
28 RelationshipSatisfaction ordered
29 RelationshipSatisfaction factor
30 StockOptionLevel integer
31 TotalWorkingYears integer
32 TrainingTimesLastYear integer
33 WorkLifeBalance ordered
34 WorkLifeBalance factor
35 YearsAtCompany integer
36 YearsInCurrentRole integer
37 YearsSinceLastPromotion integer
38 YearsWithCurrManager integer
这个套路我也用过
attrition %>% map_df(~(data.frame(class = class(.x))),
.id = "Column") %>% is.factor()
但它只给我 FALSE
价值。如何将它作为现有数据框的新列应用于所有列。
使用mutate
添加新列:
library(dplyr)
library(purrr)
attrition %>%
map_df(~(data.frame(class = class(.x))),.id = "Column") %>%
mutate(is_factor = class == 'factor')
我们可以使用tibble
library(dplyr)
library(purrr)
library(tibble)
attrition %>%
map_dfr(~ .x %>%
class %>%
tibble(class = ., is_factor = class == 'factor'),
.id = 'Column')
我正在使用 attrition
数据并使用 map()
检查每一列是否是一个因素。
到目前为止我取得了这么多:
attrition %>% map_df(~(data.frame(class = class(.x))),
.id = "Column")
这给我以下输出:
Column class
1 Age integer
2 Attrition factor
3 BusinessTravel factor
4 DailyRate integer
5 Department factor
6 DistanceFromHome integer
7 Education ordered
8 Education factor
9 EducationField factor
10 EnvironmentSatisfaction ordered
11 EnvironmentSatisfaction factor
12 Gender factor
13 HourlyRate integer
14 JobInvolvement ordered
15 JobInvolvement factor
16 JobLevel integer
17 JobRole factor
18 JobSatisfaction ordered
19 JobSatisfaction factor
20 MaritalStatus factor
21 MonthlyIncome integer
22 MonthlyRate integer
23 NumCompaniesWorked integer
24 OverTime factor
25 PercentSalaryHike integer
26 PerformanceRating ordered
27 PerformanceRating factor
28 RelationshipSatisfaction ordered
29 RelationshipSatisfaction factor
30 StockOptionLevel integer
31 TotalWorkingYears integer
32 TrainingTimesLastYear integer
33 WorkLifeBalance ordered
34 WorkLifeBalance factor
35 YearsAtCompany integer
36 YearsInCurrentRole integer
37 YearsSinceLastPromotion integer
38 YearsWithCurrManager integer
这个套路我也用过
attrition %>% map_df(~(data.frame(class = class(.x))),
.id = "Column") %>% is.factor()
但它只给我 FALSE
价值。如何将它作为现有数据框的新列应用于所有列。
使用mutate
添加新列:
library(dplyr)
library(purrr)
attrition %>%
map_df(~(data.frame(class = class(.x))),.id = "Column") %>%
mutate(is_factor = class == 'factor')
我们可以使用tibble
library(dplyr)
library(purrr)
library(tibble)
attrition %>%
map_dfr(~ .x %>%
class %>%
tibble(class = ., is_factor = class == 'factor'),
.id = 'Column')