簡體   English   中英

在 R 中,關於將變量類型更改為“因子”的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM