I hope you can help me with something. Assume you have the following code:
library(gender)
test1 = tibble::tribble(
~name1, ~name2, ~name3, ~name4, ~name5,
"PETER", "KLAUS", NA, NA, NA,
"HEIKE", "ANTONIA", NA, NA, NA,
"SANDRA", "HEIKO", "HEIKO", "HEIKE", "HEIKE"
)
male_female_row <- list()
for (row in 1:nrow(test1)) {
x1=gender(as.character(test1[row,]))
y = table(x1$gender)
male_female_row[[row]] = y
}
than
model2 = do.call(rbind.data.frame, male_female_row) ### List to dataframe
creates a dataframe.
See for line 1, model2 shows 2,2 but I only have 2 male and 0 women (looking into the list male_female_row). How can I break up the two integers from the list (value) into two separate columns like $male $female?
when I code answer from @Rory:
male_values <- map(male_female_row, "male") %>%
map(~ if_else(is.null(.x), 0, .x)) %>%
unlist()
female_values <- map(male_female_row, "female") %>%
map(~ if_else(is.null(.x), 0, .x)) %>%
unlist()
tibble(male_values, female_values)
I get the failure:
`false` must be a double vector, not an integer vector.