2017-03-15 1 views
0

ich zwei Tibbles habensubsetting Spalten eines tibble mit einem Zeichenvektor von einem anderen tibble

>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 

Ich möchte names <- select(a.tibble,names) verwenden b.tibble der Teilmenge zu machen c.tibble:

>c.tibble 

a c d 
1 1 1 
1 1 1 

Es ist wichtig, dass Ich Teilmenge von names, weil in Wirklichkeit habe ich viele Namen, um eine große Teilmenge zu unterteilen. Dies macht es so, dass die übliche select(b.tibble,-c(b,e)) oder andere "manuelle" Eingabe von Spaltennamen nicht möglich ist.

Daten

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) 
+1

'b.tibble für mich gearbeitet [, Namen (b.tibble)% in% a.tibble $ names]' – ytk

+0

I don weiß nicht, wie 'tibble's sich verhalten, aber dies funktioniert für ein data.frame' b.tibble [as.character (a.tibble $ names)] ' –

+0

' b.tibble%>% select _ (. dots = a. tibble $ names) 'scheint es zu sein, obwohl das nicht als eine gültige Art erscheint, über Dinge zu gehen. – Frank

Antwort

0

@ytk hatte eine Antwort, die b.tibble[, names(b.tibble) %in% a.tibble$names]

+0

Also hat 'b.tibble [a.tibble $ names]' nicht für dich funktioniert? Für mich geht das. –

Verwandte Themen