等级函数未将数字“ 1”赋予最小值

时间:2019-06-17 12:45:02

标签: r rank

我正在获取一组数据并尝试检索最低值。我认为最简单的方法是使用rank函数,然后使用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),但是rank函数将值1分配给第71个数字(值10.1)。这是为什么?预先感谢。

编辑:感谢您的帮助!正如Rui Barradas所建议的那样,我的数据框实质上包含数字字符(即“ 13.1”,反之亦然13.1),这使排名功能无法正常工作。我使用as.numeric(as.character())转换数据,并得到了预期的响应。

0 个答案:

没有答案