【发布时间】:2022-01-07 20:43:45
【问题描述】:
我正在尝试使用 EnvStat 包拟合 R 中的概率分布,并循环一次计算多个列。 列的长度不同,并且发生了一些代码错误。数据框不会保留为数字格式。 错误消息:“x”必须是数字向量 我无法识别错误。有人可以帮忙吗? 非常感谢
关注代码:
x = runif(n = 50, min = 1, max = 12)
y = runif(n = 70, min = 5, max = 15)
z = runif(n = 35, min = 1, max = 10)
m = runif(n = 80, min = 6, max = 18)
length(x) = length(m)
length(y) = length(m)
length(z) = length(m)
df = data.frame(x=x,y=y,z=z,m=m)
df
library(EnvStats)
nproc = 4
cont = 1
dfr = data.frame(variavel = character(nproc),
locationevd= (nproc), scaleevd= (nproc),
stringsAsFactors = F)
# i = 2
for (i in 1:4) {
print(i)
nome.var=colnames(df)
df = df[,c(i)]
df = na.omit(df)
variavela = nome.var[i]
dfr$variavel[cont] = variavela
evd = eevd(df);evd
locationevd = evd$parameters[[1]]
dfr$locationevd[cont] = locationevd
scaleevd = evd$parameters[[2]]
dfr$scaleevd[cont] = scaleevd
cont = cont + 1
}
writexl::write_xlsx(dfr, path = "Results.xls")
【问题讨论】:
-
为什么不将它们放在一个列表中,而不是扩展较短的向量以将它们放在一个数据框中?
标签: r dataframe loops variable-length envstats