x <- data.frame(Level=c(6.5))
x_poly <- poly(x$Level, 4, raw=TRUE)
x1 <- cbind(x, x_poly[, 2:4])
这是我的代码,每当我出于某种原因使用 cbind 时,它都会打印 3 行和 3 列,即使 x 和 x_poly 只有 1 行。
x_poly <- as.data.frame(x_poly[, 2:4])
print(dim(x_poly))
我尝试打印 x_poly 和 x_poly[,2:4] 的尺寸。由于某种原因,x_poly 在;y 上显示 1 行,但 x_poly[2:4] 显示 3 行。
使用
`[`
进行提取时,R 使用 drop
(参见 ?drop
)来强制达到尽可能低的维度。
所以从矩阵来看,
> dim(x_poly)
[1] 1 4
你会得到一个向量。
> dim(x_poly[, 2:4])
NULL
我们可以做到
drop=FALSE
。
> dim(x_poly[, 2:4, drop=FALSE])
[1] 1 3
因此,您正在寻找的是
> cbind(x, x_poly[, 2:4, drop=FALSE])
Level 2 3 4
1 6.5 42.25 274.625 1785.062
数据:
x <- data.frame(Level=c(6.5))
x_poly <- poly(x$Level, 4, raw=TRUE)