gpt4 book ai didi

r - 如何在 r 中的一组观察值之间切换值

转载 作者:行者123 更新时间:2023-12-05 02:25:46 25 4
gpt4 key购买 nike

我有一个数据集,它有两个变量,一个字符和一个数字:

structure(list(ID = c("A", "B", "C", "D", "E", "A", "B", "C", 
"D", "E", "A", "B", "C", "D", "E", "A", "B", "C", "D", "E"),
value = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20)), class = "data.frame", row.names = c(NA,
-20L))

我想做的是为“A”和“E”的每个序列在每组“A”和“E”之间切换“value”变量的值。

因此,我的最终输出应该是这样的:

ID   value
A 5
B 2
C 3
D 4
E 1
A 10
B 7
C 8
D 9
E 6
A 15
B 12
C 13
D 14
E 11
A 20
B 17
C 18
D 19
E 16

我在这里使用数字序列只是为了简化示例,但我的实际值不是 1 到 20 的序列。因此,具有数字模式的解决方案在我的数据中不起作用。

谢谢!

最佳答案

在基础 R 中你可以这样做:

# matrix with indices of A's and E's in its two rows
ae <- matrix(which(df$ID %in% c('A', 'E')), nrow=2)
# switch A and E
df$value[ae] <- df$value[ae[2:1, ]]

df
# ID value
# 1 A 5
# 2 B 2
# 3 C 3
# 4 D 4
# 5 E 1
# 6 A 10
# 7 B 7
# 8 C 8
# 9 D 9
# 10 E 6
# 11 A 15
# 12 B 12
# 13 C 13
# 14 D 14
# 15 E 11
# 16 A 20
# 17 B 17
# 18 C 18
# 19 D 19
# 20 E 16

关于r - 如何在 r 中的一组观察值之间切换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74317065/

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