我正在获取一组数据并尝试检索最低值。我认为最简单的方法是使用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())转换数据,并得到了预期的响应。