mutate函数没有更新

时间:2015-04-16 18:54:20

标签: r dplyr

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

mutate(fltr, cat = "xxxxx")

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

3 个答案:

答案 0 :(得分:6)

mutate没有更改tbl_df,它只返回新的,更改的tbl_df。您需要保存结果:

fltr <- mutate(fltr, cat = "xxxxx")

答案 1 :(得分:5)

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

require(dplyr)
require(magrittr)

fltr %<>% mutate(cat="xxxxx")

答案 2 :(得分:0)

Mutate是将新列(现有列的功能)添加到现有数据帧。 在这里,您需要将静态列添加到数据框中,我不认为您需要变异。你可以简单地实现:

fltr $ cat&lt; - &#34; xxxxx&#34;

但是如果您想根据现有列添加新列,可以执行以下操作:

fltr&lt; - mutate(fltr,cat =&#34;写下你将A列转换为B列的逻辑,例如:Col_A / 100&#34;)

这里&#34; cat&#34;将是您创建的列的名称。