2014-12-29 4 views
-2

Я получил следующую команду:функция Head не работает - R

temp <- sort(menVSwomen,decreasing = FALSE, index.return=TRUE) 

темп теперь содержит 10000 индексов, в результате сортировки menVSwomen. Я пытаюсь извлечь 100 лучших, используя head(temp, 100), но это не сработает ?! К моему удивлению, он возвращает весь вектор. Что происходит?

Обратите внимание, что я также пробовал head(as.vector(temp),100), используя n=100, но он все еще возвращает всю температуру. Помогите!

Как вы, наверное, догадались, я пытаюсь получить индексы из 100 самых низких значений в векторе menVSwomen. Если есть другая проблема вокруг моей проблемы, пожалуйста, поделитесь своим мнением.

Это выход ул (TEMP):

List of 2 
$ x : Named num [1:10000] 0.000176 0.000249 0.000412 0.000575 0.000604 ... 
..- attr(*, "names")= chr [1:10000] "1542" "2693" "4840" "3329" ... 
$ ix: int [1:10000] 1542 2693 4840 3329 5257 5292 8844 8368 2082 8486 ... 
+0

Что такое 'Обл()' 'для temp'? – CephBirk

+0

@CephBirk Только что отредактировал мой вопрос после вашего запроса. –

+1

Вы, вероятно, хотите 'lapply (temp, head, 100)', поскольку temp - это список. Вызов 'head' в списке возвращает по умолчанию первые 6 элементов списка. Следовательно, весь список, поскольку у вас есть только два элемента. –

ответ

1

На самом деле эта проблема возникает от того, что функция возвращает сортировки. Если вы посмотрите на вывод str(temp), сортировка возвращает список из 2! Мне просто нужно то, что в $ ix. Обходной я прост:

head(temp$ix,n=100) 

Кредит также идет в @CephBirk

+0

Это больше пользовательской ошибки, чем что-то заслуживающее репутации. Узнайте, что такое «список». –