我使用下面的代碼將變數“期間”從“字符”更改為“因子”(以及因子級別序列以匹配“期間”文本中包含的順序)。
下面是當前的代碼。它有可用的功能嗎?
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))
uj5u.com熱心網友回復:
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"
uj5u.com熱心網友回復:
> 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()向量上的函式即可將其轉換為因子。
uj5u.com熱心網友回復:
我相信這應該有效!問題是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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/347569.html
