mutate函数没有更新

mo_*_*aat 4 r dplyr

我有tbl_df几个专栏.我正在运行一个简单的mutate来更新列,但该列没有更新.

mutate(fltr, cat = "xxxxx")
Run Code Online (Sandbox Code Playgroud)

cat是一列empty或者是NA.过滤器是一个tbl_df.可能是什么导致了这个?我试图将文本放在cat列中,以便它不是空的或NA,以防引起问题.那还是行不通的.

Dav*_*son 6

mutate不会更改tbl_df,它只返回新的,更改的tbl_df.您需要保存结果:

fltr <- mutate(fltr, cat = "xxxxx")
Run Code Online (Sandbox Code Playgroud)


zx8*_*754 5

正如@DavidRobinson指出的那样,你没有将它分配回同一个对象.为了避免重新分配,我们可以使用magrittr的复合赋值管道运算符 - %<>%:

require(dplyr)
require(magrittr)

fltr %<>% mutate(cat="xxxxx")
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个错字,它是'%<>%`. (2认同)