我正在使用 lessR 包中的 pivot 函式,以創建一個類似于 Excel 的資料透視表,其中有兩個分類變數,構成了垂直和水平類別,每個單元格中都有一個平均值。(希望這有意義)。
我遵循了檔案(https://cran.r-project.org/web/packages/lessR/vignettes/pivot.html)給出的代碼。讓我們跟隨他們的例子:
d <- Read("Employee")
a < -樞軸(d,平均。 工資,部門,性別)
資料d是這樣的:
年份 性別 部門 薪水 JobSat 計劃 Pre Post
Ritchie, Darnell 7 M ADMN 53788. 26 med 1 82 92.
吳, James NA M SALE 94494. 58低1 62 74.
Hoang, Binh 15 M SALE 111074. 86低3 96 97。
瓊斯,艾麗莎5 F < NA> 53772. 58 <NA> 1 65 62
Downs, Deborah 7 F FINC 57139。 90高 2 90 86
阿夫沙里,安巴爾6 FADMN 69441。 93 高 2 100 100
Knox, Michael 18 M MKTG 99062. 66 med 3 81 84.
Campagna, Justin 8 M SALE 72321. 36低1 76 84。
Kimball, Claire 8 F MKTG 61356. 69高 2 93 92
透視表a是一個很好的表格,在單元格內容等方面與我希望的完全一致。它似乎是一個knitr_kable.
性別 F M
部門
------- --------- --- ------
ACCT 63237.16 59626.20
ADMN 81434.00 80963.35
財經 57139.90 72967.60
MKTG 64496.02 99062.6664188.25 86150.97
接下來,我想把它做成一個資料框架,以便在我的代碼中更容易操作,并把它復制到剪貼板上。然而,我不知道如何將 knitr_kable 轉換為資料框架。下面是我的代碼和它所導致的錯誤:
as.data.frame(a)
錯誤 in as.data.frame.default(a) :
不能將class'"knitr_kable"'脅迫到一個data.frame。
knitr-documentation沒有說任何關于這種轉換的內容--它只是說將一個資料框架轉換為一個knitr_kable,這與我想要的相反。
我還嘗試了pivottabler,但是這也有類似的問題:所產生的類也不能被脅迫為一個資料框架。
uj5u.com熱心網友回復:
這里有兩個潛在的答案:
最直接:自己處理資料。如果你對tidyverse式的方法持開放態度,那么只需要幾行就可以自己進行整理和總結。這將給你提供一個可資料化的輸出,你可以立即使用。
# load packages。
library(lessR)
library(dplyr)
library(tidyr)
#加載資料
d <- Read("Employee")
# 使用tidyverse風格的代碼來透視和總結自己的資料。
d %>%
group_by(Gender, Dept) %>%
summarise(Salary_mean = Mean(Salary)) %> %
pivot_wider(names_from= "Gender"。 values_from = "Salary_mean")
將knitr::kable()的標記輸出讀入一個資料框
。如果你喜歡從knitr::kable()輸出到一個資料框架中進行逆向作業,這在這個SO問題中解決。R中的Markdown表到資料框
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/309181.html
標籤:
上一篇:<p>我有這樣一個Pandas資料框架:</p><p>我有這樣一個Pandas資料框架。 <preclass="lang-pys-code-bloc
下一篇:我怎樣才能把一欄分成多欄?
