gpt4 book ai didi

r - 如何交换一列中的值子集,但保持同一列中的其他值不变?

转载 作者:行者123 更新时间:2023-12-01 09:15:24 25 4
gpt4 key购买 nike

假设我有一个名为 df 的 data.frame:

df <- data.frame(
A = 1:8,
B = rep(letters[1:4], each = 2),
C = rep(1:2, 4)
)

A B C
1 1 a 1
2 2 a 2
3 3 b 1
4 4 b 2
5 5 c 1
6 6 c 2
7 7 d 1
8 8 d 2

我想交换列 B 中的值,当它们是 bc 时,而不是当它们是 a d,以另一列 C 为条件,即当 C = 1 时。所以目标data.frame是df1:

 df1 <- data.frame(
A = 1:8,
B = c("a", "a", "c", "b", "b", "c", "d", "c"),
C = rep(1:2, 4)
)

A B C
1 1 a 1
2 2 a 2
3 3 c 1
4 4 b 2
5 5 b 1
6 6 c 2
7 7 d 1
8 8 c 2

最佳答案

你可以试试chartr

chartr('bc', 'cb', df$B)
#[1] "a" "a" "c" "c" "b" "b" "d" "d"

然后以 C == 1 为条件,

df$B[df$C == 1] <- chartr('bc', 'cb', df$B[df$C == 1])

关于r - 如何交换一列中的值子集,但保持同一列中的其他值不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45863920/

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