`这个就是原始数据,加黑框的是一组数据(每组里面3行2列),需要转换成一行六列,并且每组里面2个数据挨在一起
R语言代码“-1
library(dplyr)
library(Hmisc)
lr<-as.data.frame(t(read.csv(“C://Users//yelang//Desktop//matlabyewu//fp//lr.csv”,header = F)))
lr
group<−cut2(1:nrow(lr),g=6)lrbygroup<−split(lr,lr
group)
lr_by_group<-lapply(lr_by_group,function(x) select(x,-one_of(‘group’)))
new_lr<-do.call(cbind,lr_by_group)
result_lr1<-as.data.frame(matrix(unlist(new_lr),ncol=6,byrow=T))
R语言代码-2
sj =matrix(NA,1,6) #构建空矩阵
for ( k in 1:7){
for ( p in 1:6){
c= as.matrix(t(df[(3*k-2):(3*k),(2*p-1):(2*p)]))
dim(c) = c(1,6) # 2维变1维
sj = rbind(c,sj) #数据融合
}
}
2个代码运行结果如下图
python 代码语言
lr=pd.read_csv(‘lr.csv’,header=None)
L=[]
a,b=0,1
for x in range(6):
lr_col=lr.ix[:,[a,b]] #取a,b列的所有行
lr_col.columns=[‘A’,’B’] #列重新命名
L.append(lr_col) #每次取出来加在空list里面
a+=2
b+=2
new_lr=pd.concat(L,ignore_index=True)
result=pd.DataFrame(new_lr.stack().values.reshape(42,6),
columns=[‘第’+str(i)+’列’ for i in range(1,7)])
result.head()
python求解结果
matlab代码实现
df=[];%输入数据
dt =[]
for i=1:7
for j=1:6
t1 = df(3*i-2:3*i,2*j-1:2*j);
t1 = t1’;%转置
t2 = [t1(1,:),t1(2,:)]; %提取 1,2行的所有列并合并在一起
dt= [dt;t2];
end
end
sj= [dt(:,1),dt(:,4),dt(:,2),dt(:,5),dt(:,3),dt(:,6)] %数据重新组合
matlab运行结果