2015-08-31 4 views
0

У меня есть данные данных в R, которые содержат 2 столбца данные $ user_id = 323, 10, 2033, 112, ... и данные $ value = 231, 4321, 90, .. Futhermore dim(data)= 41000 2Использовать% in% к подмножеству в R

у меня есть вектор u <- c(25,36,38,..) и length(u)=900

Теперь я хочу, чтобы подмножество «данных», так что «user_id» равно вектор «и». Другими словами, я хочу, чтобы все user_id находились в u и их записи в данных. В РИ сделать это

newdata <- subset(data, data$user_id %in% u) 

Чтобы убедиться в том, что они имеют один и тот же тип, я могу сделать это

newdata <- subset(data, as.numeric(data$user_id) %in% as.numeric(u)) 

Когда я типа head(newdata) я могу видеть, что это имеет смысл и dim(newdata) = 900 2 который также является то, что я хочу ,

Но когда я печатаю newdata, я получаю данные, которые очень странные. Как это может быть?

+0

Можете ли вы описать «странную» часть. BTW вам не нужны 'data $' inside 'subset' – akrun

+0

Когда я ввожу newdata, я должен получить все 900 значений, но я получаю 41000 значений именно данных. –

+0

Можете ли вы обновить 'str'' data'? Кроме того, вы находите эту странность, используя подмножество своего набора данных? Возможно, у вас есть дубликаты для «user_id» – akrun

ответ

0

subset использует нестандартную оценку.

newdata <- subset(data, user_id %in% u) 
Смежные вопросы