变异函数不更新
mutate function is not updating
我有一个包含多个列的 tbl_df
。我 运行 对其进行了简单的修改以更新列,但该列未被更新。
mutate(fltr, cat = "xxxxx")
cat
是 empty
或 NA
的列。过滤器是 tbl_df
。是什么原因造成的?我试图将文本放在 cat
列中,以便它不是空的或 NA 以防引起问题。那还是不行。
mutate
并没有改变 tbl_df,它只是 returns 新的,改变了 tbl_df。您需要保存结果:
fltr <- mutate(fltr, cat = "xxxxx")
正如@DavidRobinson 所指出的,您没有将它分配回同一个对象。为了避免重新分配,我们可以使用 magrittr 的 复合分配管道运算符 - %<>% :
require(dplyr)
require(magrittr)
fltr %<>% mutate(cat="xxxxx")
Mutate 是向现有数据框添加新列(即现有列的函数)。
在这里,您希望将静态列添加到数据框中,我认为您不需要为此进行突变。你可以像这样简单地实现:
fltr$cat <- "xxxxx"
但如果您想在现有列的基础上添加新列,您可以这样做:
fltr <- 变异(fltr, cat = "write your logic of converting column A to column B eg : Col_A/100")
此处 "cat" 将是您创建的列的名称。
我有一个包含多个列的 tbl_df
。我 运行 对其进行了简单的修改以更新列,但该列未被更新。
mutate(fltr, cat = "xxxxx")
cat
是 empty
或 NA
的列。过滤器是 tbl_df
。是什么原因造成的?我试图将文本放在 cat
列中,以便它不是空的或 NA 以防引起问题。那还是不行。
mutate
并没有改变 tbl_df,它只是 returns 新的,改变了 tbl_df。您需要保存结果:
fltr <- mutate(fltr, cat = "xxxxx")
正如@DavidRobinson 所指出的,您没有将它分配回同一个对象。为了避免重新分配,我们可以使用 magrittr 的 复合分配管道运算符 - %<>% :
require(dplyr)
require(magrittr)
fltr %<>% mutate(cat="xxxxx")
Mutate 是向现有数据框添加新列(即现有列的函数)。 在这里,您希望将静态列添加到数据框中,我认为您不需要为此进行突变。你可以像这样简单地实现:
fltr$cat <- "xxxxx"
但如果您想在现有列的基础上添加新列,您可以这样做:
fltr <- 变异(fltr, cat = "write your logic of converting column A to column B eg : Col_A/100")
此处 "cat" 将是您创建的列的名称。