df <- structure(list(`a a` = 1:3, `a b` = 2:4), .Names = c("a a", "a b"
), row.names = c(NA, -3L), class = "data.frame")
数据显示
a a a b
1 1 2
2 2 3
3 3 4
以下调用以选择
select(df, 'a a')
给予
Error in abs(ind[ind < 0]) :
non-numeric argument to mathematical function
如何使用select
选择“a a”和/或将其重命名为不带空格的内容?我知道以下方法:
names(df)[1] <- "a"
select(df, a=1)
select(df, ends_with("a"))
但是如果我正在处理一个大的数据集,那么在不知道索引号或类似列名的情况下,我如何才能获得精确的匹配呢?
3条答案
按热度按时间r7knjye21#
您可以使用反勾```来
select
变量。但是,如果您的主要目的是重命名列,则可以在
plyr
包中使用rename
,在该包中可以同时使用""
和````。或者在
base
R中:有关各种引号用法的详细说明,请参见
?Quotes
。“名称和标识符”部分在此处尤其相关:其他[语法无效]名称可以使用,只要它们用引号括起来。2首选引号是反引号”。
另请参见
?make.names
了解有效名称。另请参见this post有关在
dplyr
中重命名的信息idfiyjo82#
一些反勾号的替代品,最好是dplyr0.5.0,这是撰写本文时的最新版本。
如果您试图以编程方式选择一个参数作为列,并且不想重命名列名称或执行类似于
paste
/sprintf
的操作将列名称添加到反勾号中,则可以将as.name
与select
的non-standard evaluation版本结合使用,即select_
:许多
dplyr
函数都有非标准版本。特别是在select
的情况下,您还可以将标准版本与选择帮助器one_of
结合使用。有关文档,请参阅?dplyr::select_helpers
:rqmkfv5c3#
您可以在Esc下的"'"中锁定您的空格变量。注意符号与〈'〉不同
a b
\