我对dplyr中的mutate
函数感到有些困惑。我有一个二进制数据框,我想用mutate
创建一个新列。这就是我想要做的事情:
author_dist <-
dist_df %>%
mutate_each(funs(gsub("T.*","",.)),-distance) %>%
mutate_each(funs(ifelse(nchar(.)<3,gsub("A","A0",.),.)),-distance) %>%
group_by(Sentence1,Sentence2) %>%
summarise(avg_dist=mean(distance)) %>%
但是当我尝试运行代码时,我收到警告:
mutate_each()
已弃用。使用mutate_all()
,mutate_at()
或 而是mutate_if()
。要将funs
映射到选定的变量上, 不推荐使用mutate_at()
mutate_each()
。使用mutate_all()
, 而是mutate_at()
或mutate_if()
。在选区上映射funs
变量,使用`mutate_at
我尝试了mutate_at
和mutate_all
,但没有运气。
情况1:
author_dist <-
dist_df %>%
mutate_at(vars(gsub("T.*","",.)),-distance) %>%
mutate_at(vars(ifelse(nchar(.)<3,gsub("A","A0",.),.)),-distance) %>%
group_by(Sentence1,Sentence2) %>%
summarise(avg_dist=mean(distance)) %>%
错误:字符串必须与列名匹配。未知列:c(&#34; A1,c(1, 1, 0.75,1,0.875,1,0,0.60,0.6,1,1,0.875,0.8,0.857142857142857,1,1, 0.75,1,0.75,1,1,0.8,0.6666666666666667,1,1,0.888888888888889,0.9,1,0.8,1,1,1,1,0.66666666666666667,1,0.75,0.6666666666666667, 0.666666666666667,1,0.75,1,0.6666666666666667,1,1,1,1, 0.833333333333333,1,1,0.75,0.8,1,1,1,1,0.5,1,0.6666666666666667,1,1,1,0.8,0.8,1,0.8,1,0.8,1,0.8,1,1, 0.8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6666666666666667,1,1,1,1,1,1, 0.833333333333333,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,0.75,0.75,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,0.666666666666667,1,1,1,1, 0.666666666666667,1, 0.666666666666667,1,0.875,0.75,1,1,1,1,1,0.857142857142857,1, 0.333333333333333,1,1,0.666666666666667,1,0.833333333333333,1, 0.888888888888889,1,1,0.75,1,1,0.875,1,1,1,1,0.8,
情况2:
author_dist <-
dist_df %>%
mutate_all(vars(gsub("T.*","",.)),-distance) %>%
mutate_all(vars(ifelse(nchar(.)<3,gsub("A","A0",.),.)),-distance) %>%
group_by(Sentence1,Sentence2) %>%
summarise(avg_dist=mean(distance)) %>%
eval_bare中出错(dot $ expr,dot $ env):object&#39; distance&#39;找不到
对不起我的问题我对统计数据有点新手。任何想法都将不胜感激。