我的資料是:
X0 X1 X2 X3 類別
0 15 4 4 TAH
0 2 5 0 MAT
0 11 9 0 BIO
我想計算行間的正態性、偏度和峰度。主要原因是我在不同的行上有分類(在一個專門的列中)。是否有一個函式可以實作這個功能?
我一直在試圖實作這個功能。
我一直在嘗試使用moments包和dplyr包來實作這個功能,與這個帖子類似。
在資料框架中同時計算平均值、方差和偏度的函式。
但是他們的解決方案是按列計算的,而不是按行計算的。
df3 %>%
gather(category, Val) %>%
group_by(category) %>%
summarise(Mean = Mean(Val),
Vari = var(Val),
傾斜度= 傾斜度(Val))
為了保證規范性,我對每一行都分別嘗試了以下命令:
shapiro. test(df3[1,])
如果能在這方面得到任何幫助,我們將不勝感激。
uj5u.com熱心網友回復:
你可以使用rowwise -
library(dplyr)
library(tidyr)
df %>%。
rowwise() %>%
突變(Mean = mean(c_across(X0: X3)),
Vari = var(c_across(X0: X3)),
斜度=矩::斜度(c_across(X0: X3)) %>%
解組
# X0 X1 X2 X3 category Mean Vari Skew
# <int> <int> <int> <chr> <dbl> <dbl>
#1 0 15 4 4 TAH 5.75 41.583 0.84778
#2 0 2 5 0 MAT 1.75 5.5833 0.68925
#3 0 11 9 0 BIO 5 34 0.058244
類似于你的嘗試,你可以獲得長格式的資料,并計算每個類別的統計資料(rowwise)。
df %>%
pivot_longer(cols = -category) %> %
group_by(category) %>%
summarise(Mean = mean(value),
Vari = var(value),
斜度= moment::skewness(value))
uj5u.com熱心網友回復:
你可以試試
library(PerformanceAnalytics)
df %>%
select(category,X0:X3) %>%>
t %>%
as.data.frame%>%
row_to_names(row_number = 1) %>%
mutate(TAH = as. numeric(TAH),。
MAT = as.numeric(MAT)/span>,
BIO = as. numeric(BIO) %>%
sapply(. , function(x) list(mean = mean(x)。 var = var(x)。 skew = skewness(x)。 kur = kurtosis(x))
大馬生物
平均數 5.75 1.75 5
var 41.58333 5.583333 34
傾斜度 0.8477758 0.6892545 0.05824397[/span
kur -0.8325348 -1. 141902 -1.922722。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/306859.html
標籤:
