始终制作方形对称数据框

时间:2018-03-16 20:34:16

标签: r dataframe

我必须创建一个采用数据帧并使其成为方形对称数据帧的函数,这样如果行数超过列数,则删除前x行,使行数等于列数(我也必须这样做反之亦然)。

例如,我需要:

> df   
     a  b  c
  a  1  2  3 
  b  4  5  6

看起来像:

> df   
     b  c
  a  2  3 
  b  5  6

感谢。

1 个答案:

答案 0 :(得分:2)

这是一种方法。

myfunction <- function (v) v[(nrow(v)-min(nrow(v),ncol(v))+1):nrow(v),(ncol(v)-min(nrow(v),ncol(v))+1):ncol(v)]

数据

> df <- matrix(1:12,c(3,4))
> df
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

<强> TEST

> myfunction(df)
     [,1] [,2] [,3]
[1,]    4    7   10
[2,]    5    8   11
[3,]    6    9   12