确定数据框中x,y列表的范围

时间:2014-05-19 14:05:32

标签: r

我有一个数据帧数据[n]

每个n = 2列列表包含x,y值

我需要确定所有X的最大范围和所有Y的最大范围(用于绘图目的)。

最好的方法是什么?除了遍历每一对之外。

    X1    Y1      X2      Y2        X3        Y4
    1     10      7       12        30        23
    5     13      9       15        12        4
    7     16      4       3         1         2

我想要计算:

最小X = 1 最大X = 30

Min Y = 2 最大Y = 23

除了建议的循环对之外,我没有看到任何方法。

2 个答案:

答案 0 :(得分:2)

我不确定这是否是您想要的,但您可以尝试修改此代码以获得所需内容。

您可以编写自己的功能

minmax <- function(df, pattern){
  Min <- min(df[, grepl(pattern, names(df))])
  Max <- max(df[, grepl(pattern, names(df))])  
  return(c(min=Min, max=Max))
}

现在使用它!

> minmax(df, "X")
min max 
  1  30 
> minmax(df, "Y")
min max 
  2  23 

这是另一个版本:

minmax2 <- function(x){
  return(c(min=min(x), max=max(x)))
}

> minmax2(df[, grepl("X", names(df))])
min max 
  1  30 
> minmax2(df[, grepl("Y", names(df))])
min max 
  2  23 

答案 1 :(得分:1)

试试这个:

#dummy data
x <- matrix(1:24,ncol=8)

#get range
range(x[,c(seq(1,ncol(x),2))])
range(x[,c(seq(2,ncol(x),2))])