Нужна помощь Подстановка фрейма данных в R - PullRequest
0 голосов
/ 31 марта 2020

У меня большой набор данных (7000+ строк и 42 столбца). Я хочу установить подмножество этого набора данных, используя указанные c идентификаторы, которые есть в каждой строке. Есть 178 идентификаторов, которые я хотел бы использовать, и возможно, что идентификаторы встречаются более одного раза. Я пытался использовать «фильтр» из dplyr, но постоянно получаю эту ошибку:

длинна объекта не кратна длине объекта "

Править Извините, я все еще новичок в этом и на этом сайте.

Вот код, который я использовал, чтобы попытаться отфильтровать указанные c ID:

df2 <- filter(df, df$ID==c(2983, 3413,  1266, 3049, 1237,[...],  1002, 1003, 4001)) #the elipsis is there because otherwise code would be too long for this post. 

Он выдает эту ошибку:

Warning messages:
1: In `==.default`(df$ID, c(2983, 3413, 1266, 3049, 1237,  :
  longer object length is not a multiple of shorter object length
2: In is.na(e1) | is.na(e2) :
  longer object length is not a multiple of shorter object length

Редактировать 2: Спасибо за помощь, я смог исправить свою проблему. Я благодарен за отзыв и, надеюсь, смогу быть более ясным, если у меня возникнут вопросы по этому вопросу. сайт в будущем.

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Используйте оператор% в% вместо ==

filtered_df = df %>% 
  dplyr::filter(ID %in% c(2983, 3413,  1266, 3049, 1237,[...],  1002, 1003, 4001)) 
0 голосов
/ 31 марта 2020

Не расколется, добьется цели? Например,

set.seed(123)
df = data.frame(id = sample(1:10, 100, replace = TRUE),
                data = rnorm(100))
split(df, df$id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...