我正在尝试使用R对月份进行排序,并具有以下内容:
redux
这与monts和订单数有关。但是,月份不能按月正确排序。如何按月正确排序?
我已经尝试使用“ order”和“ factor”,但是这不能正常工作。我如何正确使用短代码并正确订购?
谢谢
罗兰
答案 0 :(得分:1)
要做:
months()
因为 <label for="firstname">First Name:</label><input id="firstname" name="firstname" type="text" autofocus placeholder="John" required="required" maxlength="15" />
<br>
<label for="surname">Surname:</label><input id="surname" name="surname" type="text" placeholder="Smith" required="required" maxlength="30" />
<br>
<br>
Gender:
<input id="male" type="radio" name="gender" value="male" /><label for="male">Male</label>
<input id="female" type="radio" name="gender" value="female" /><label for="female">Female</label>
<input id="prefernotsay" type="radio" name="gender" value="prefernotsay" checked /><label for="prefernotsay">Prefer Not to Say</label>
<br>
<input id="submit" type="submit" value="submit" />
<br>
</form>
“返回使用的语言环境中[月份]名称的字符向量” ,并且比硬编码美国/英文月份名称的方法更不容易
答案 1 :(得分:0)
由于您没有提供示例数据,因此我无法测试它是否确实适用于您的特定情况。将您的月份数据转换为因子是可行的,但是您必须首先指定月份的名称(使用数据的语言),因为R不知道您希望如何对它们进行排序。因此,在不定义级别的情况下创建因子只会导致字母顺序出现,这几个月以来都是不正确的。
library(dplyr)
result <- mydata %>%
mutate(ordered_months = factor(months(as.Date(orderdate)),
levels=c("January", "February", ...))) %>% # insert all month-names here
count(ordered_months)
result
...应该工作。
答案 2 :(得分:0)
以下内容假设您的语言环境会说英语。这是因为内置变量month.name
使用英语月份名称。
首先,组成一个数据集,因为您尚未发布数据集。
set.seed(1)
d <- seq(as.Date("2017-01-01"), Sys.Date(), by = "month")
mydata <- data.frame(orderdate = sample(d, 1e2, TRUE))
现在是问题所在。请注意,order
是它自己的逆,即答案使用的事实。
library(dplyr)
library(lubridate)
result <- mydata %>%
count(months(as.Date(orderdate)))
inx <- order(month.name)
result[order(inx), ]