Функция ранга не дает число «1» наименьшее значение - PullRequest
0 голосов
/ 17 июня 2019

Я беру набор данных и пытаюсь получить самое низкое значение.Я считаю, что самый простой способ сделать это - использовать функцию ранга, за которой следует функция which, чтобы получить индекс наименьшего значения.

Я новичок, поэтому я не совсем уверен, что еще можно попробовать, нокогда я ранжирую данные, он не ранжирует их должным образом, поэтому наименьшему значению присваивается значение 1.

name_data <- data[2]

state_data <- data[7]

heart_failure_data <- data[17]

heart_failure_data[heart_failure_data == "Not Available"] <- NA

# Remove NA values
full_data<-heart_failure_data[complete.cases(heart_failure_data),]

full_state<-state_data[complete.cases(heart_failure_data),]

# Only rank data from the given state
data_by_state <- full_data[full_state==state]

ranking <- rank(data_by_state, ties.method = "first")

top_index <- which(ranking == 1)

name_by_state <- name_data[state_data==state,1]

name_by_state[top_index]

Для этого конкретного набора данных при чтении данных 42-е значение являетсянаименьшее (8.1), но функция ранга присваивает значение 1 71-му числу (значение 10.1).Это почему?Заранее спасибо.

Редактировать: Спасибо за помощь!Как предложил Руи Баррадас, мой фрейм данных по существу содержал символы числа (т. Е. «13.1» тиски 13.1), что мешало правильной работе функции ранжирования.Я использовал as.numeric (as.character ()) для преобразования данных и получил ожидаемый ответ.

...