2014-06-05 2 views
-1

пытался подобрать 2 случайные предметы, но не знаю, как это сделать в RКак выбрать отдельные предметы в R

random.subj <- sample(1:max(Data$Id), 2) 
rd <- subset(Data$Id, Data$Id==random.subj) 

У меня есть набор данных «Data», как

Id 
1 
1 
2 
2 
3 
3 
4 
4 
4 
... 
+0

Вы прочитали справочную документацию для 'subset'? Это грубо, чтобы задать такой основной вопрос здесь, когда вы не потрудились узнать, как это работает самостоятельно. –

ответ

1

Ну, в этом случае random.subj будет вектором двух элементов. В этом случае сравнение сравнений с ==, вероятно, не хочет, потому что оно будет просто перерабатываться через более короткий список, чтобы выполнить сравнение, а не проверять каждую строку для любого значения, как вы, вероятно, собираетесь.

Также я не уверен, что все ваши идентификаторы являются числовыми и последовательными. Лучше просто взять случайную выборку из самих идентификаторов, а не из индекса идентификаторов.

Закрепление второй проблемы первого

random.subj <- sample(Data$Id, 2) 

На самом деле, если вы просто хотите, два идентификатора, то это все, что вам нужно, но если вы хотите, чтобы данные для этих идентификаторов затем

rd <- subset(Data, Data$Id %in% random.subj) 

является правильным способ извлечь его.

+0

Спасибо, MrFlick !! Это экзотически то, что я хотел! Но мне нужно больше репутации, чтобы отметить это как правильный ответ. – kennyut

+1

Вы можете захотеть, чтобы это было 'sample (unique (Data $ Id, 2))', если вы не хотите, чтобы дважды был выбран тот же идентификатор. –

Смежные вопросы