下面的脚本是一个四列的数据框。我的需要是我想一次获取一对值(a1,a2)。 “a3”列是这样的,如果您检查一对(a1,a2),当您跨越数据时,该对的值按升序排列。如果表中存在该对的重复项,我希望“a4”列值按照特定 (a1,a2) 值的升序排列,就像相应的“a3”列一样。假设第一个 (a1,a2) 对(“A”,“D”),该对出现三次,对应的 a3 值按升序排列。同样,我希望根据 a4 值的升序排列 a4 值。请检查预期结果。谢谢并请建议。
a1 = c("A","B","C","A","B","C","A","C")
a2 = c("D","E","F","D","E","E","D","F")
a3 = c(5,15,12,10,40,35,20,50)
a4 = c(100,160,66,65,130,150,80,49)
a123= data.frame(a1,a2,a3,a4)
library(dplyr)
a123_r <- a123 %>%
group_by(a1, a2) %>%
mutate(a3 = sort(a3)) %>%
ungroup()
a123_r
预期输出
a1 = c("A","B","C","A","B","C","A","C")
a2 = c("D","E","F","D","E","E","D","F")
a3 = c(5,15,12,10,40,35,20,50)
a4 = c(65,130,66,80,160,150,100,49)
a123_r <- data.frame(a1,a2,a3,a4)