【发布时间】:2020-04-23 16:38:02
【问题描述】:
我正在尝试对下一个数据框进行一些修改:
df <- data.frame(
zgen = c("100003446", "100001749","100002644","100001755"),
Name_mat = c("EVEROLIMUS 10 MG CM", "GALSULFASA 5MG/5ML FAM", "IDURSULFASE 2MG/ML SOL. P/INFUSION FAM","IMIGLUCERASA 400U POL. LIOF. FAM"),
details= c("CM", "FAM", "SOL. P/INFUSION FAM","NA")
)
我正在使用dplyr 包中的mutate_at() 创建一个名为“type”的新列。该列可以根据我的数据框列中出现的字符列表(“name_mat”和“details”)而改变。代码是:
df <- df %>% mutate_at(vars(one_of("Name_mat ","details")),
funs(case_when( "FAM|FRA" == TRUE ~ "FA",
"CM|COMPRIMIDO" == TRUE~ "COM",
"SOL"== TRUE~"SOL",
"CP|CAPSULA"== TRUE~"CAP",
TRUE ~ "bad_mat")))
我第一次使用 mutate_at,但我不知道如何在我的数据框“df”中创建一个名为“type”的新列。最后我需要类似的东西:
ZGEN Name_mat details Type
1 100003446 EVEROLIMUS 10 MG CM CM COM
2 100001749 GALSULFASA 5MG/5ML FAM FAM FA
3 100002644 IDURSULFASE 2MG/ML SOL. P/INFUSION FAM SOL. P/INFUSION FAM FA
4 100001755 IMIGLUCERASA 400U POL. LIOF. FAM NA FA
感谢任何帮助或有关如何执行此操作的任何其他观点。
谢谢!
【问题讨论】: