[英]In R , a question about change variable type to 'factor'
我使用下面的代碼將變量“期間”從“字符”更改為“因子”(以及因子級別序列以匹配“期間”文本中包含的順序)。
下面是當前的代碼。 它有可用的功能嗎?
library(tidyverse)
raw_data <-
data.frame(
period=c('Q2','Q1','8','7','40','41'),
amount=c(1:6)
)
arranged_data <- raw_data %>% arrange(match(parse_number(period),c(1:41))) %>%
mutate(period=fct_inorder(period))
> raw_data %>% mutate(period = factor(period)) %>% as_tibble()
# A tibble: 6 × 2
period amount
<fct> <int>
1 Q2 1
2 Q1 2
3 8 3
4 7 4
5 40 5
6 41 6
如您所見,您只需對向量調用factor()
函數即可將其轉換為因子。
lvls <- unique(raw_data$period)
raw_data$period <- factor(raw_data$period, levels = lvls[order(parse_number(lvls))])
導致:
levels(raw_data$period )
[1] "Q1" "Q2" "7" "8" "40" "41"
我相信這應該有效! 問題是fct_inorder
不會改變列類型,所以你應該先把列變成一個因子:
library(tidyverse)
raw_data <-
data.frame(
period=c('Q2','Q1','8','7','40','41'),
amount=c(1:6))
arranged_data <- raw_data %>% arrange(match(parse_number(period), c(1:41))) %>%
mutate(period = as.factor(period)) %>%
mutate(period=fct_inorder(period))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.