【发布时间】:2017-03-15 18:49:04
【问题描述】:
我有两个小玩意
>a.tibble
names other
a 0
c 0
d 0
>b.tibble
a b c d e
1 1 1 1 1
1 1 1 1 1
我想用names <- select(a.tibble,names) 子集b.tibble 来制作c.tibble:
>c.tibble
a c d
1 1 1
1 1 1
将names 子集化很重要,因为实际上我有很多名字来子集一个大标题。这使得通常的select(b.tibble,-c(b,e)) 或其他“手动”列名条目是不可能的。
数据
library(tibble)
a.tibble = tibble(names = c("a","c","d"), other = 0)
b.tibble = tibble(a = rep(1,2), b = 1, c = 1, d = 1, e = 1)
【问题讨论】:
-
b.tibble[, names(b.tibble) %in% a.tibble$names] -
我不知道
tibbles 的行为如何,但这适用于data.frameb.tibble[as.character(a.tibble$names)] -
b.tibble %>% select_(.dots = a.tibble$names)似乎是这样,尽管这似乎不是一种有效的处理方式。 -
@Frank 我在发帖前曾为
.dots苦苦挣扎。这是一个令人困惑的 IMO 语法。 -
@Alex 我同意并且在登陆之前不得不摆弄几个排列。一般来说,我不觉得 pipe-verse 函数对编程非常友好。