Подмножество с использованием двух фреймов данных - PullRequest
0 голосов
/ 19 мая 2018

У меня большой немасштабированный набор данных (data1) со случайным идентификатором пациента MaskID.Я пытаюсь извлечь все наблюдения по MaskID, которые также находятся в меньшем наборе тестов (data2)

Теоретически это то, что я пытаюсь сделать, но я знаю, что это не правильно:

data3 <- data1[data1$MaskID == data2$MaskID]

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Вот одно из решений:

library(tidyverse)

# 1. Data set with random patient identifier 'mask_id'

# 1.1. First data set
df_one <- data.frame(
  dataset_id = 1,
  mask_id = unique(as.integer(runif(10, min = 0, max = 15))))

# 1.2. Second data set
df_two <- data.frame(
  dataset_id = 2,
  mask_id = unique(as.integer(runif(10, min = 0, max = 15))))

# 2. Common rows with the same 'mask_id'
common_features <- intersect(df_one$mask_id, df_two$mask_id)

# 3. Select rows from first data set
df_one %>% filter(mask_id %in% common_features)

# 4. More brief form
df_one[df_one$mask_id %in% df_two$mask_id, ]
0 голосов
/ 19 мая 2018

Очень близко:

data3 <- data1[data1$MaskID %in% data2$MaskID,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...