访问未命名数据框的暗淡名称,以按名称删除列

时间:2018-09-19 08:05:46

标签: r

这是对this question的跟进。 @Sotos为该问题提供了正确的答案,但实际上我的问题是从理论上讲的。

我知道这可能并不完全实用,但这更多是出于好奇。 如何按名称访问“否定选择”(删除)的命名对象的命名属性?

“正向选择”很简洁:

data.frame(year = 1996:1998, group = letters[1:3]) ['group']

  group
1     a
2     b
3     c

但是following this approach对于“否定选择”可能会很快变得麻烦,尤其是对于较大的数据帧:

data.frame(year = 1996:1998, group = letters[1:3])[!names(data.frame(year = 1996:1998, group = letters[1:3])) %in% 'year']

  group
1     a
2     b
3     c

我知道您可以使用subsetdplyr::select

data.frame(year = 1996:1998, group = letters[1:3]) %>% select(- year)
# or 
subset(data.frame(year = 1996:1998, group = letters[1:3]), select = -year)

  group
1     a
2     b
3     c

但是我想知道是否还有其他方法,基于使用[进行选择,例如使用foo[!names %in% x]解决方案而无需事先为foo赋予名称,也不必繁琐的重复数据框,如我的示例代码所示。

0 个答案:

没有答案
相关问题