【发布时间】:2016-06-09 22:49:03
【问题描述】:
由 dplyr 和 magrittr 等软件包启用的管道隐喻非常有用,并且可以使您的代码在 R 中可读(一项艰巨的任务!)
如何创建一个以将数据框中的所有变量重命名为预定列表而结束的管道?
这是我尝试过的。首先,要测试的简单样本数据:
> library(dplyr)
> iris %>% head(n=3) %>% select(-Species) %>% t %>% as.data.frame -> test.data
> test.data
1 2 3
Sepal.Length 5.1 4.9 4.7
Sepal.Width 3.5 3.0 3.2
Petal.Length 1.4 1.4 1.3
Petal.Width 0.2 0.2 0.2
这不起作用:
> test.data %>% rename(a=1,b=2,c=3)
Error: Arguments to rename must be unquoted variable names. Arguments a, b, c are not.
通过阅读rename 上的文档,我无法弄清楚此错误的确切含义。我的另一种尝试是通过使用花括号来定义代码块来避免错误,但重命名实际上并没有发生:
> test.data %>% { names(.) <- c('a','b','c')}
【问题讨论】:
-
我喜欢人们这样回答自己的问题。谢谢! (对我来说不是一个相关的问题,但我仍然喜欢它)
-
请在您的问题中提供一个可重现的示例。如果你自己没有回答这个问题,这可能会因为几个原因而关闭
-
我建议遵循 rawr 的建议:在你的问题中举一个例子。另外,取出元评论。如果您想聊聊自我回答,您可以在自己的帖子下方添加评论。帖子应该是关于问题的,而不是关于你回答的事实,或者答案并不像我想象的那么容易。
-
最初的尝试使用数字周围的反引号
rename(a='1', b='2', c='3') -
@rawr,我不确定您的投诉是什么。该问题包含使用基本安装中的数据的可重现示例。缺什么?你在说什么“聊天”?