我在dplyr中有重复代码来清理数据。
df1_final$sumaryczna_kwota_zobowiązań <-
df1_final$sumaryczna_kwota_zobowiązań %>%
str_replace(",", ".") %>% str_replace_all("\\s", "")%>% as.numeric()
df3_final$sumaryczna_liczba_kontraktu_dla_produktu <-
df3_final$sumaryczna_liczba_kontraktu_dla_produktu %>%
str_replace(",", ".") %>% str_replace_all("\\s", "")%>% as.numeric()
df3_final$sumaryczna_kwota_kontraktu_dla_produktu <-
df3_final$sumaryczna_kwota_kontraktu_dla_produktu %>%
str_replace(",", ".") %>% str_replace_all("\\s", "") %>% as.numeric()
df3_final$średnia_cena_produktu <-
df3_final$średnia_cena_produktu %>%
str_replace(",", ".") %>% str_replace_all("\\s", "") %>% as.numeric()
一个df中的一列,另一个df中的三列,但过程是相同的。
如何将其转换为一个函数,在数据框中使用一个或更好的几列并清理数据,而不重复代码?
TO MODERATOR,EXPLANATION:我的问题是独特的,因为它要求在几个列上进行多次管道操作。评论中的答案值得推广。从他们那里我学到了语法:
myfun = . %>% str_replace(",", ".") %>% str_replace_all("\\s", "")%>% as.number()
# and then use it on columns name "a" and "b"
df %<>% mutate_at(c("a","b"), .funs=myfun)