使用 R 包 'sn' 中的函数 'rmsn' 在随机数生成中未显示列名
Column names not showing in random number generation using function 'rmsn' in R package 'sn'
使用数据框 df
,每月包含几只 S&P500 股票 returns,我在 R 包 [=15] 中生成了多元随机正态分布函数 rmsn
所需的输入=]:
library(moments)
library(sn)
muvec = apply(df, 2, mean)
covmat = cov(df)
skew = apply(df, 2, skewness)
rmsn(100, muvec, covmat, skew)
但是,随机生成的数字在我的输入向量中不包含原始列 headers(例如 "A"、"B"、"C")。相反,rmsn
的输出包含通用名称("V1"、"V2"、"V3")。有没有办法确保我的原始列 headers 被传递到输出中?
rmsn
的输出是一个没有名称的矩阵,我假设您正在使用 as.data.frame
将其转换为数据框,并为其提供 default/geenric 列名称。
我认为唯一的方法是从 df
分配列名
out <- as.data.frame(sn::rmsn(100, muvec, covmat, skew))
names(out) <- names(df)
使用数据框 df
,每月包含几只 S&P500 股票 returns,我在 R 包 [=15] 中生成了多元随机正态分布函数 rmsn
所需的输入=]:
library(moments)
library(sn)
muvec = apply(df, 2, mean)
covmat = cov(df)
skew = apply(df, 2, skewness)
rmsn(100, muvec, covmat, skew)
但是,随机生成的数字在我的输入向量中不包含原始列 headers(例如 "A"、"B"、"C")。相反,rmsn
的输出包含通用名称("V1"、"V2"、"V3")。有没有办法确保我的原始列 headers 被传递到输出中?
rmsn
的输出是一个没有名称的矩阵,我假设您正在使用 as.data.frame
将其转换为数据框,并为其提供 default/geenric 列名称。
我认为唯一的方法是从 df
out <- as.data.frame(sn::rmsn(100, muvec, covmat, skew))
names(out) <- names(df)