如何在R语言中使用matrix函数将CSV文件指定列转为矩阵?
用matrix函数实现CSV指定列转矩阵
你的现有代码是通过手动修改向量维度和名称完成转换,用matrix()函数可以更直接地实现这个操作,以下是修改后的完整代码:
setwd("C:/Users/Owner/Folder/data/data") getwd() options(max.print=999999) df=read.csv("C:/Users/Owner/Folder/data/data/file.csv", stringsAsFactors=FALSE, header=TRUE) # 提取目标列的指定行数据 a_vector = df[889:1248, 4] # 使用matrix函数一步转换为带行列名的矩阵 rowNames = 1961:1990 colNames = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") a_matrix = matrix( data = a_vector, nrow = 30, ncol = 12, byrow = FALSE, # 默认按列填充,和你原代码行为一致 dimnames = list(rowNames, colNames) ) print(a_matrix)
关键说明:
- 核心逻辑和你原代码一致:先提取目标范围的列数据得到向量,再转换为30行12列的矩阵
matrix()函数的data参数传入待转换的向量,nrow/ncol指定矩阵维度,要保证向量长度等于nrow*ncol(你的数据正好满足30*12=360)byrow=FALSE是默认值,代表按列填充数据,和你原代码中dim(a) <- c(30,12)的填充顺序完全相同;如果需要按行填充,改为byrow=TRUE即可- 可以直接在
matrix()里通过dimnames参数设置行列名,省去后续单独赋值的步骤
内容的提问来源于stack exchange,提问作者JEREMY GONZALES
相关产品推荐
相关产品推荐

