r - 使用 R 交换 data.frame 同一行中的特定观察值

标签 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))

任何帮助将不胜感激。

德雷

最佳答案

我们可以使用 applyMARGIN=1 以及 sort 来循环遍历行

df1[] <- t(apply(df1, 1, sort))
df1
#  A B
#1 2 3
#2 5 7
#3 4 7
#4 2 8

或者使用 pmax/pmin 重新排列“A”和“B”中的值

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

关于r - 使用 R 交换 data.frame 同一行中的特定观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141697/

相关文章:

r - RStudio 如何确定控制台宽度,为什么它似乎总是出错?

r - websocket 连接不起作用

linux - 了解 Linux 上每个进程使用了​​多少交换空间

android - 如何在android中的View上交换位图图像?

根据多种条件重新组合销售数据中人为分割的 session

r - 在 R 中绘制相关矩阵,如 Excel 示例所示

r - 使用 R 中的另一个数据框列完成列名称

linux - 内存:堆栈和交换

Java选择排序

python - 我如何在Python中交换矩阵中的列表?