【发布时间】:2017-02-26 11:16:42
【问题描述】:
我有一个数据框,我想向其中添加一列,该列由变量名定义:
df <- diamonds
NewName <- "SomeName"
df <- df %>% mutate_(paste0(NewName," = \"\""))
这给了我以下错误:
Error: attempt to use zero-length variable name
我见过很多 mutate_ 用于更改列名的示例,但不能用于动态创建列。有什么帮助吗?
【问题讨论】:
-
我没有收到任何错误,只是一个名为
SomeName = ""的列 -
选择所有行再运行一次,这似乎是喜怒无常的
-
确实,第二次就不行了。
-
必须使用
dplyr吗?df[[NewName]] <- calculation呢?如果你想节省一些df$,可以使用with? -
那行得通,试图在 dplyr 中解决这个问题,有点困惑为什么它有时会起作用,而不是另一个。以下方法也有效(dplyr 中必须有更简洁的方法): df % mutate(NewName = NA) df% rename_(.dots=setNames("NewName", list(NewName) ))