2015-01-22 5 views
0

Я работаю с матрицей 7634x589. Я пытаюсь Подмножество моих данных в двух списков:Подмножество dataframe производит 0 строк

  • случайных образцы 5344 строк (70% данных), и
  • остальной части данных (2290 строк [30% данных ])

Вот что я делаю:

> dim(mydata) 
[1] 7634 589 
> trainingset <- mydata[sample(1:nrow(mydata), 5344),] 
> dim(trainingset) 
[1] 5344 589 

Это все смотрит совершенным до этого:

> testingset <- mydata[!trainingset] 
> dim(testingset) 
NULL 

Я пытаюсь заставить testingset включить все, кроме набора тренировок. Он должен иметь размеры 2290x589. Видимо, я делаю что-то неправильно. Может кто-нибудь помочь мне понять это? Я ДЕЙСТВИТЕЛЬНО ценю помощь, ребята.


После принятия предложения с комментаторами, я столкнулся с этим вопрос:

> dim(mydata) 
[1] 7634 589 
> id <- sample(1:nrow(mydata), 5344) 
> trainingset <- mydata[id, ] 
> dim(trainingset) 
[1] 5344 589 
> testingset <- mydata[!id, ] 
> dim(testingset) 
[1] 0 589 

не могу понять, почему mydata[!id, ] будет возвращать 0 строк. Спасибо, что понесли с собой, я совершенно новичок в этом. :(

+2

Ваше имя вводит в заблуждение. 'Sample()', кажется, работает нормально. Проблема заключается в 'testingset <- mydata [! Trainingset]' строке. Я не уверен, почему вы думаете вы можете подмножить data.frame, используя другой data.frame, потому что это неверно. В первый раз вы выполнили правильную '[row, col]' подмножество 'mydata'. Я думаю, вы должны попробовать это снова. – MrFlick

+0

Вы удаляете все столбцы. – CephBirk

+0

Большое спасибо пользователю20650, это урок, в котором я нуждался! –

ответ

0

testingset просто вектор. Это не имеет dim. Вы можете проверить это с помощью

typeof(testingset) 

тусклом вектора является NULL.

2

Хорошо, предложение использовать mydata[-id, ] вместо mydata[!id, ] работал. Спасибо, ребята!

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