gpt4 book ai didi

r - 如何使用 R 交换 data.table 中的列值

转载 作者:行者123 更新时间:2023-12-01 23:08:27 25 4
gpt4 key购买 nike

我有下面给出的玩具数据。

library(data.table)
(tmp <- data.table(R1 = c('D','D','D','T','C'), y = 10:1, R2 = c('D','A','Z','D','D')))

R1 y R2
1: D 10 D
2: D 9 A
3: D 8 Z
4: T 7 D
5: C 6 D
6: D 5 D
7: D 4 A
8: D 3 Z
9: T 2 D
10: C 1 D

我想交换 R1R2 列中的值,以便所有 A 都列在 R1 下,并且不常见的值变为到 R2。有人可以告诉我怎么做吗?这是所需的输出。

    R1  y R2
1: D 10 D
2: D 9 A
3: D 8 Z
4: D 7 T
5: D 6 C
6: D 5 D
7: D 4 A
8: D 3 Z
9: D 2 T
10: D 1 C

这是下面提供的答案的性能结果 -

Unit: milliseconds
expr min lq mean median uq max neval cld
akrun 5.524562 5.587740 7.526681 5.605406 5.938955 14.976740 5 b
r2evans 1.466862 1.489944 1.509321 1.500263 1.536402 1.553134 5 a

最佳答案

基于更新,我们可以在i 上指定一个逻辑表达式并交换列值以分配

library(data.table)
val <- "D"
tmp[R2 == val, c("R1", "R2") := .(R2, R1)]

-输出

> tmp
R1 y R2
1: D 10 D
2: D 9 A
3: D 8 Z
4: D 7 T
5: D 6 C
6: D 5 D
7: D 4 A
8: D 3 Z
9: D 2 T
10: D 1 C

关于r - 如何使用 R 交换 data.table 中的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70368818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com