【问题标题】:Sorting factors in more than 2 ordinal variables超过 2 个有序变量的排序因子
【发布时间】:2019-05-18 19:55:04
【问题描述】:

我有一个关于比较超过 3 个有序变量中的因子的问题。

我已经在 Rstudio 和 Datacamp 上尝试过。在处理超过2个序数变量(低、中、高)时设置特定顺序后,在比较高和中时,为什么“高>中”会产生FALSE?

temperature_vector <- c("High", "Low", "High","Low", "Medium")
factor_temperature_vector <- factor(temperature_vector, order = TRUE, levels = c("Low", "Medium", "High"))
factor_temperature_vector 

#The above line returns:
#[1] High   Low    High   Low    Medium
#Levels: Low < Medium < High

high <- temperature_vector[1]
medium <- temperature_vector[5]
low <- temperature_vector[2]

high > low #returns FALSE

high > medium #returns FALSE. Why?

已解决:

需要比较因素而不是变量:

high <- **factor_**temperature_vector[1]
medium <- **factor_**temperature_vector[5]
low <- **factor_**temperature_vector[2]

【问题讨论】:

  • 您正在比较基于字母顺序排序的字符串
  • 感谢您的回复。但是如果按照字母顺序,这两个语句都应该是 TRUE?
  • 两者都应该是FALSE "h" &gt; "m"# [1] FALSE
  • 好的,谢谢。我现在明白了。如果我想比较它们,我需要比较因素,而不是变量。

标签: r syntax ordinal


【解决方案1】:

标识符的分配来自character 向量,而不是factor 向量。对于character 字符串,排序是字母顺序,其中h 小于m

high <- factor_temperature_vector[1]
medium <- factor_temperature_vector[5]
low <- factor_temperature_vector[2]

high > low
#[1] TRUE
high > medium
#[1] TRUE

【讨论】:

  • 知道了,谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多