我有一个tbl_df
有几列。我正在运行一个简单的mutate来更新列,但该列没有更新。
mutate(fltr, cat = "xxxxx")
cat
是一列empty
或NA
。过滤器为tbl_df
。可能是什么导致了这个?我试图将文本放在cat
列中,以便它不是空的或NA,以防导致问题。那还是行不通。
答案 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;将是您创建的列的名称。