簡體   English   中英

如何將因子的水平設置為 R 中的列?

[英]How to set levels of a factor to be columns in R?

我這里有一張桌子

tab <- matrix(c('AL', 'Accident', 14, 19, 'AR', 'Accident', 17, 6, 'AL', 'Disease', 14, 19, 'AR', 'Disease', 17, 6), ncol=4, byrow=TRUE)
colnames(tab) <- c('State','Cause','under30', 'above30')
rownames(tab) <- c(1,2,3,4)
tab <- as.table(tab)
tab

看起來像

在此處輸入圖像描述

我想讓它成為

在此處輸入圖像描述

但我不知道該怎么做,有什么提示或幫助嗎? 提前致謝。 (這只是我的數據集的簡化版本,實際數據集要大得多。我正在尋找的是一種通用方法。)

考慮轉換為data.frame然后使用pivot_wider

library(tidyr)
pivot_wider(as.data.frame.matrix(tab), names_from = Cause,
      values_from = c(under30, above30), names_glue = "{Cause}_{.value}")

-輸出

# A tibble: 2 × 5
  State Accident_under30 Disease_under30 Accident_above30 Disease_above30
  <chr> <chr>            <chr>           <chr>            <chr>          
1 AL    14               14              19               19             
2 AR    17               17              6                6          

在基地 R 中:

reshape(as.data.frame.matrix(tab),
     dir='wide', idvar = 'State', timevar = 'Cause', sep='_')

  State under30_Accident above30_Accident under30_Disease above30_Disease
1    AL               14               19              14              19
2    AR               17                6              17               6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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