Ich möchte eine Liste von Werten erhalten, die zwischen mehreren Bereichen liegen.Subset nach mehreren Bereichen
library(data.table)
values <- data.table(value = c(1:100))
range <- data.table(start = c(6, 29, 87), end = c(10, 35, 92))
Ich brauche die Ergebnisse nur die Werte enthalten, die zwischen diesen Bereichen liegen, in:
results <- c(6, 7, 8, 9, 10, 29, 30, 31, 32, 33, 34, 35, 87, 88, 89, 90, 91, 92)
ich derzeit tue dies mit einer for-Schleife,
results <- data.table(NULL)
for (i in 1:NROW(range){
results <- rbind(results,
data.table(result = values[value >= range[i, start] &
value <= range[i, end], value]))}
jedoch die tatsächliche Dataset ist ziemlich groß und ich suche nach einem effizienteren Weg.
Alle Vorschläge sind willkommen! Vielen Dank!
Werde ich etwas übersehen oder wäre dies für den Fall von mehreren/vielen Spalten in der Tabelle "values" unpraktisch? d.h. gibt es einen einfachen Weg ohne die Spalten aufzulisten? –
Verwendung der Komfortfunktion '% inrange%': 'Werte [Wert% im Bereich% Bereich]' – Henrik
@Henrik sehr nett! in meiner Antwort enthalten (wenn Sie es als Antwort posten wollen: gehen Sie voran, ich werde es dann hier entfernen) – Jaap