我的代码如下:
unemp <- c(1:10)
bsp_li <- list(c(1:10),c(11:20),c(21:30))
var_data_rep <- lapply(bsp_li, function(x) {cbind(as.numeric(x), as.numeric(unemp))} )
var_data_rep2 <- lapply(var_data_rep, function(x) {colnames(x) = c("rGDP", "U")} )
但它不是我想要的。我想将var_data_rep
列表的两个元素命名为c("rGDP", "U")
。但相反,值被c("rGDP", "U")
覆盖并成为列表的唯一元素..任何人都可以帮忙吗?我需要相同的名字,因为我想稍后估计相同的模型。
答案 0 :(得分:1)
简单修复:在创建矩阵时输入名称:
var_data_rep <- lapply(bsp_li, function(x) {
cbind(rGDP = as.numeric(x), U = as.numeric(unemp))
} )
更多迂回修复(为什么你的尝试不起作用):函数返回最后一行。您想要返回x
,而不是colnames(x)
var_data_rep2 <- lapply(var_data_rep, function(x) {
colnames(x) = c("rGDP", "U")
return(x)
} )
花式修复:直接使用colnames<-
功能
var_data_rep3 = lapply(var_data_rep, `colnames<-`, c("rGDP", "U"))