R Studio Mutate函数

时间:2018-02-28 19:04:29

标签: r dplyr mutate

我对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_atmutate_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;找不到

对不起我的问题我对统计数据有点新手。任何想法都将不胜感激。

0 个答案:

没有答案