使用减号(-)选择(dplyr)操作符

3
如何使用SELECT(dplyr库)运算符来选择名称包含'-'的列?例如:
AdultUCI %>% select(capital-gain) 

引起原因: 错误

1
你的 data.frame 中的那个名字是怎么来的?那不是一个有效的列名。这很可能会在很多情况下导致错误(就像你已经看到的那样)。通常无效字符(比如这个情况下的 - )被替换为 . 来生成有效的列名。 - MrFlick
1
我从 https://archive.ics.uci.edu/ml/datasets/Census+Income 下载它。 - Kulis
1
嗯,我更感兴趣的是你如何将它导入到R中,而不是你从哪里下载了数据。我假设你只是使用 names(df)<-x 来分配名称,这样可以绕过默认检查。请尝试改用 names(df)<-make.names(x) - MrFlick
2
@MrFlick 或许可以使用 data.table 中的 fread 函数?尝试一下 fread("a-b, c\n 1,2",header=TRUE) - Frank
@MrFlick 我刚刚加载了这些数据(名称来自存储库) - Kulis
2个回答

8

试试这个

data.frame(`a-b` = 1, c = 2, check.names = FALSE) %>% 
  select(`a-b`)
#   a-b
# 1   1

2
我们可以在select中使用matches
data.frame(`a-b` = 1, c = 2, check.names = FALSE) %>% 
         select(matches('-'))
#    a-b
# 1   1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接