我必须创建一个采用数据帧并使其成为方形对称数据帧的函数,这样如果行数超过列数,则删除前x行,使行数等于列数(我也必须这样做反之亦然)。
例如,我需要:
> df
a b c
a 1 2 3
b 4 5 6
看起来像:
> df
b c
a 2 3
b 5 6
感谢。
答案 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