如何按列将指定向量填充至4×7的DataFrame?
这事儿很简单,R里默认的矩阵填充逻辑刚好就是按列来的,直接用matrix()转成指定维度的矩阵,再转成DataFrame就行,步骤如下:
首先先把你的向量定义好(方便后续操作):
vec <- c(1.5024902, 0.9051428, 1.0000000, 2.4813651, 0.3804750, 0.5399517, 1.0000000, 1.6967545, 1.4096899, 2.5858617, 1.0000000, 1.9426744, -0.4634633, 0.8577193, 1.0000000, 0.2998213, 2.0853813, 0.6517149, 1.0000000, 0.2981432, 0.9345624, 0.4302179, 1.0000000, -1.0631703, -18.5043500, -22.8724403, -Inf, -12.1109292)
然后一步生成你要的4×7 DataFrame:
# 先转成按列填充的矩阵,再转成DataFrame df <- as.data.frame(matrix(vec, nrow = 4, ncol = 7))
补充说明:
matrix()函数默认参数byrow = FALSE,也就是按列填充数据,完全匹配你的需求;如果是byrow = TRUE才会按行填充。- 你的向量长度刚好是4×7=28,没有多余或缺失的元素,所以不会出现循环填充的问题(如果长度不匹配,R会自动循环向量来填充矩阵,这点要注意)。
- 如果想给列加上自定义名称,可以用
dimnames参数:
df <- as.data.frame(matrix(vec, nrow = 4, ncol = 7, dimnames = list(NULL, paste0("Column_", 1:7))))
这样生成的DataFrame列名就是Column_1到Column_7,更清晰。
最后验证一下结构:用str(df)可以看到确实是4行7列的DataFrame,用print(df)就能看到所有数据按列填充后的结果了。
内容的提问来源于stack exchange,提问作者Workhorse
相关产品推荐
相关产品推荐

