如何交换R?

时间:2015-12-14 09:38:53

标签: r

我有一个如下所示的数据集,如果一个变量中的值大于另一个变量值,我想交换。

数据

   start_year   end_year
    1991         1995
    1994         1990
    1997         1999
    1994         1995
    1995         1995
    1996         1991

我想交换start_year大于end_year的行。

预期产出:

   start_year   end_year
    1991         1995
    1990         1994
    1997         1999
    1994         1995
    1995         1995
    1991         1996

尝试:

data_created = if(data$start_year > data$end_year, data$start_year == data$end_year & 
   data$end_year == data$start_year, data$start_year == data$start_year & 
   data$end_year == data$end_year)

请以这种方式帮助我。

2 个答案:

答案 0 :(得分:3)

您可以使用?pmax?pmin来计算元素的最大值和最小值。结合transfrom,这将是:

transform(df, 
  start_year = pmin(start_year, end_year), 
  end_year = pmax(start_year, end_year))
#  start_year end_year
#1       1991     1995
#2       1990     1994
#3       1997     1999
#4       1994     1995
#5       1995     1995
#6       1991     1996

答案 1 :(得分:0)

您可以使用from django.utils.decorators import method_decorator @method_decorator(login_required(login_url='/login/')) def startPage(request): .... .... apply

放:

sort

这将逐行对数据进行排序(t(apply(df, 1, sort)) 中的1参数表示"按行")。