R语言实现矩阵存储数据的拉直
我们在处理数据的时候,拿到手上的数据很多都是以矩阵的形式存储的,当我们想要按行或者按列进行拉直,将数据变成一个向量形式。首先,通过线性模型知识的学习,我们可以通过矩阵计算与变化来实现,但是通过最笨的办法,使用循环来解决这个问题也是比较简单的。
#把以矩阵存储的数据拉直,应该注意是行数据还是列式列数据,函数内部默认为行数据
rowdata.maker<-function(x,byrow=T,is.na=F)#其中x为矩阵数据,byrow参数表面矩阵数据是行数据还是列数据
{ #is.na表示是否要处理原数据中的确实值,其值赋为T时,表示删除缺失值
result<-vector()
if(byrow==T){
for(i in 1:nrow(x)){
result<-c(result,as.numeric(x[i,]))
}
}
if(byrow==F){
for(i in 1:ncol(x)){
result<-c(result,as.numeric(x[,i]))
}
}
if(is.na==T)
return(na.omit(result))
else
return(result)
}
我们可以自定义将数据拉直的函数,实现思路很简单。用于数据的初步处理很使用,如果各位大佬有更加简单实用的函数,欢迎批评指正。
例如某一数据存储如下:
我们可以使用上述自编辑函数,将数据拉直:
data<-read.csv("习题6.8数据.txt",header = F,sep="")
quantity<-rowdata.maker(data,byrow = T,is.na = T);quantity
数据读入后的效果如下:
欢迎各位大佬,随时批评指正。