Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的分位数回归,重新排列乳胶产量的数据_R - Fatal编程技术网

R中的分位数回归,重新排列乳胶产量的数据

R中的分位数回归,重新排列乳胶产量的数据,r,R,使用lappy对(比如)三个不同的tau进行分位数回归: listdf <- lapply(vector(tau1, tau2, tau3), function(x){summary.rq(rq(Y ~ x + z, tau=x, data=regdf))}) (类“data.frame”的三个元素列表) 接下来我要做的是重新排列数据(coeflist),为每个回归变量获得一个数据帧,其中行表示不同tau的系数 我运行:lappy(1:nrow(coeflist[[1]]),函数(I)d

使用lappy对(比如)三个不同的tau进行分位数回归:

listdf <- lapply(vector(tau1, tau2, tau3), function(x){summary.rq(rq(Y ~ x + z, tau=x, data=regdf))})
(类“data.frame”的三个元素列表)

接下来我要做的是重新排列数据(
coeflist
),为每个回归变量获得一个数据帧,其中行表示不同tau的系数

我运行:
lappy(1:nrow(coeflist[[1]]),函数(I)do.call(rbind,lappy(coeflist,[],I,TRUE))

这种类型的返回是我想要的,但是有没有一种方法也可以重命名数据帧中的行名,以反映系数来自哪个tau?还可以将列表元素重命名为回归变量的名称


问候。

新版本:更改您创建的coeflist:

coeflist <- lapply(listdf, function(x){data.frame(x$coefficients[,1])}) 
coeflist

新版本:更改您对coeflist的创建:

coeflist <- lapply(listdf, function(x){data.frame(x$coefficients[,1])}) 
coeflist

首先,我要注意rq()的tau参数接受向量,所以我不确定所有的lappy()工作是否真的有必要

但使用quantreg软件包中的示例数据,您需要的是:

data(stackloss)
temp <- summary(rq(y ~ x, method="fn",tau=c(0.3,0.5,0.7)))
df <- temp[[1]]$coeff
colnames(df)[1] <- as.character(temp[[1]]$tau)
for (i in 2:length(temp)){
    df[,i] <- temp[[i]]$coefficients[,1]
    colnames(df)[i] <- as.character(temp[[i]]$tau)
}
t(df)
数据(stackloss)

temp首先,我要注意rq()的tau参数接受向量,所以我不确定所有的lappy()工作是否真的有必要

但使用quantreg软件包中的示例数据,您需要的是:

data(stackloss)
temp <- summary(rq(y ~ x, method="fn",tau=c(0.3,0.5,0.7)))
df <- temp[[1]]$coeff
colnames(df)[1] <- as.character(temp[[1]]$tau)
for (i in 2:length(temp)){
    df[,i] <- temp[[i]]$coefficients[,1]
    colnames(df)[i] <- as.character(temp[[i]]$tau)
}
t(df)
数据(stackloss)
临时雇员