使用R

时间:2015-12-07 19:35:06

标签: r swap

A B 
2 3
5 7
7 4
2 8

有没有办法交换具体的观察结果?我试图交换A中的观察结果>比在同一行B中的观察结果。 在上面的data.frame中,列A(7)的第三行中的观察结果是>在B(4)栏的第三行中观察我的目标是交换两者。

期望的输出

A B
2 3
5 7
4 7
2 8

我尝试过使用&

df$A[df$A > df$B] <- df$B[df$A > df$B] & df$B[df$A >df$B] <- df$A[df$A >df$B]

我也尝试过嵌套的ifelse

ifelse(df$A > df$B, df$A[df$A > df$B] <- df$B[df$A > df$B],
    ifelse(df$A > df$B, df$B[df$A >df$B] <- df$A[df$A >df$B], df$b))

非常感谢任何帮助。

德瑞

1 个答案:

答案 0 :(得分:4)

我们可以使用apply MARGIN=1sort

来循环使用行
df1[] <- t(apply(df1, 1, sort))
df1
#  A B
#1 2 3
#2 5 7
#3 4 7
#4 2 8

或重新排列&#39; A&#39;和&#39; B&#39;使用pmax/pmin

transform(df1, A=pmin(A,B), B= pmax(A,B))