如何根据其中一列的值重新排列data.frame中的行?

如何根据其中一列的值重新排列data.frame中的行?,r,dataframe,time-series,extract,R,Dataframe,Time Series,Extract,我有一个大约3000行乘7000列的data.frame。这些列包含随时间收集的值。第一列包含指示开始测量的实时值。举例说明: mat1 <- c(00.00,"f","g","f","g") mat2 <- c(00.50,"f","g","f","g") mat3 <- c(00.25,"f","g","f","g") mat <- as.data.frame(rbind(mat1, mat2, mat3)) colnames(mat) <- c("realti

我有一个大约3000行乘7000列的data.frame。这些列包含随时间收集的值。第一列包含指示开始测量的实时值。举例说明:

mat1 <- c(00.00,"f","g","f","g")
mat2 <- c(00.50,"f","g","f","g")
mat3 <- c(00.25,"f","g","f","g")
mat <- as.data.frame(rbind(mat1, mat2, mat3))
colnames(mat) <- c("realtime","datatime1","datatime2","datatime3","datatime4")
mat

mat1不清楚从第一个版本的
mat
到第二个版本的
mat
使用什么逻辑。如果你能解释得更清楚一点,也许有人能帮上忙。逻辑是“realtime”列中的值(00.00、00.25和00.50…在我的full data.frame中高达23.75)指示我希望在新data.frame中的行之前的空单元格或0的数量(乘以4以避免1.75个空单元格)。然后,我还需要在我的初始行(96-4*“realtime”)之后反向添加0的空单元格,以使行的大小再次与data.frame中的fin相同。所以我想要的东西是这样的:我写的第二张垫子(我发现我在第3行中错误地输入了00.50,而不是00.25,这与行前面的0和行后面的0相关)。
mat1 <- c(00.00,"f","g","f","g",0,0)
mat2 <- c(0,0,00.50,"f","g","f","g")
mat3 <- c(0,00.50,"f","g","f","g",0)
mat <- as.data.frame(rbind(mat1, mat2, mat3))
colnames(mat) <- c("realtime","datatime1","datatime2","datatime3","datatime4")
mat
mat1 <- c(rep(0,as.numeric(mat[1,1])*4),mat[1,],rep(0,96-(as.numeric(mat[1,1]))*4))
mat2 <- c(rep(0,as.numeric(mat[2,1])*4),mat[2,],rep(0,96-(as.numeric(mat[2,1]))*4))
mat3 <- c(rep(0,as.numeric(mat[3,1])*4),mat[3,],rep(0,96-(as.numeric(mat[3,1]))*4))
rbind(mat1,mat2,mat3)