uns Unter der Annahme, erhielt diese Datentabelle X
:Subset ein data.table durch einen Vektor von Teil
Random <- function(n=1, lenght=6){
randomString <- c(1:n)
for (i in 1:n){randomString[i] <- paste(sample(c(0:9, letters, LETTERS),
lenght, replace=TRUE),collapse="")}
return(randomString)}
X <- data.table(A = rnorm(11000, sd = 0.8),
B = rnorm(11000, mean = 10, sd = 3),
C = sample(LETTERS[1:24], 11000, replace=TRUE),
D = sample(letters[1:24], 11000, replace=TRUE),
E = round(rnorm(11000,mean=25, sd=3)),
F = round(runif(n = 11000,min = 1000,max = 25000)),
G = round(runif(11000,0,200000)),
H = Random(11000))
Ich mag es von einiger Teilkette der Teilmenge. Hier haben wir g
nehmen, F
und d
in Spalte H
Hier haben wir eine Lösung, diese für eine Teilkette zu tun: How to select R data.table rows based on substring match (a la SQL like)
Wenn wir nur g
wollen, mit data.table
Paket:
X[like(H,pattern = "g")]
Aber mein Problem ist es, dies für g
, F
und d
in einem einzigen Vorgang zu replizieren.
Gibt es eine Möglichkeit, dies zu tun, ohne 3 Tabellen zu erstellen, sie zusammenzuführen und Duplikate zu entfernen?
Ich denke, 'like' wird nur ein einzelnes Element anstelle eines Vektors nehmen. Versuchen Sie mit 'Vectorize' – akrun
@Akrun Sie haben Recht, und es ist mein Problem. Ich kenne keine Funktion, die einen Vektor für diese Operation aufnehmen kann. Btw, danke für deine Hilfe. –