gpt4 book ai didi

r - 如何在两列之间交换值

转载 作者:行者123 更新时间:2023-12-04 00:05:30 24 4
gpt4 key购买 nike

我有一个包含三个变量和 250K 记录的数据框。作为一个例子考虑

df <- data.frame(V1=c(1,2,4), V2=c("a","a","b"), V3=c(2,3,1))
V1 V2 V3
1 a 2
2 a 3
4 b 1

并希望根据 V2 的值在 V1 和 V3 之间交换值,如下所示:
如果 V2 == 'b'然后 V1 <- V3V3 <- V1导致
V1 V2 V3
1 a 2
2 a 3
1 b 4

我尝试了一个 do 循环,但它需要永远。如果我使用 Perl,则需要几秒钟。我相信这个任务也可以在 R 中有效地完成。任何建议表示赞赏。

最佳答案

尝试这个

 df <- data.frame(V1=c(1,2,4), V2=c("a","a","b"), V3=c(2,3,1))
df[df$V2 == "b", c("V1", "V3")] <- df[df$V2 == "b", c("V3", "V1")]

产生:
> df
V1 V2 V3
1 1 a 2
2 2 a 3
3 1 b 4

关于r - 如何在两列之间交换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746567/

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