我正在尝试使用recode和mutate_all来重新编码列.但是,出于某种原因,我收到了一个错误.我相信这篇文章类似于如何使用dplyr重新编码(和反向代码)列中的变量,但该帖子中的答案使用了lapply函数.
这是我在阅读dplyr软件包的帮助pdf后尝试的内容.
by_species<-matrix(c(1,2,3,4),2,2)
tbl_species<-as_data_frame(by_species)
tbl_species %>% mutate_all(funs(. * 0.4))
# A tibble: 2 x 2
V1 V2
<dbl> <dbl>
1 0.4 1.2
2 0.8 1.6
Run Code Online (Sandbox Code Playgroud)
所以,这很好用.
但是,这不起作用:
grades<-matrix(c("A","A-","B","C","D","B-","C","C","F"),3,3)
tbl_grades <- as_data_frame(grades)
tbl_grades %>% mutate_all(funs(dplyr::recode(.,A = '4.0')))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Error in vapply(dots[missing_names], function(x) make_name(x$expr), character(1)) :
values must be length 1,
but FUN(X[[1]]) result is length 3
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下问题是什么以及为什么上面的代码不起作用?
我很感激任何帮助.
谢谢