R语言 为什么R打印出3行1列作为答案

R语言 为什么R打印出3行1列作为答案

问题描述

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只显示了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)

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程