Snažím se vytvořit vlastní funkci, která nejsem moc zkušený s tím, že by se zaškrtněte sloupec, který se skládá z položky kódy proti hlavní seznam. Pak bych rád (pokud je to možné) pro následující kroky, aby se stalo:
- Vytvořit nový sloupec založen na seznamu (viz níže)
- Naplnit sloupec s hodnotou (vynaložit), spojené s kód položky
- Případně zkontrolujte, zda binární proměnnou a vzhledem k tomu, jednou z podmínek, odeslat hodnotu pro třetí sloupec
Seznam je druh vnořené kategorické seskupení, která vypadá jako tohle
code_list <- list((category_1 <- c("101", "102")), (category_2 <- c("201", "202", "203")))
Formátovaný jako že asi 70 "kategorie"
Kódy, které mají být kontrolovány, jsou kódy jsou uloženy v "category_" hodnoty.
V současné době mám kód, který pracuje v ifelse
v mutate
funkce, ale kód je neefektivní a není snadno upravit. Vypadá to, že:
mutate(category_2 = ifelse(code %in% category_2, value, 0), ...)
asi 60 řádků.
Mé otázky jsou-li funkce, jako je to vůbec možné, a pokud ano, jaké prostředky by mohly být špičaté, aby mě začal?
EDIT:
Můj pokus příklad
table <- data.frame('id' = c("1001", "1002", "1003", "1004", "1005"),
'bin' = c("0", "0", "1", "1", "0"),
'expend' = c(111, 222, 333, 444, 555),
'code' = c("101", "102", "201", "202", "102")
)
code_list <- list(
(category_1 <- c("101", "102")),
(category_2 <- c("201", "202", "203"))
)
table2 <- table %>%
mutate(
category_1 = ifelse(code %in% category_1, expend, 0),
category_2 = ifelse(code %in% category_2, expend, 0)
)
Ale mutate
blok jde na, pro 60+ linky. V podstatě bych chtěl automatizovat mutate
/ ifelse
funkce s výkonem jako
# id bin expend code category_1 category_2
# 1 1001 0 111 101 111 0
# 2 1002 0 222 102 222 0
# 3 1003 1 333 201 0 333
# 4 1004 1 444 202 0 444
# 5 1005 0 555 102 555 0