这个问题的解决方案可能很简单,但我就是看不到。这是我的示例数据框:
df <- data.frame(id=c(1,1,1,2,2,2), value=rep(1:3,2), level=rep(letters[1:3],2))
df[6,2] <- NA
这是我想要创建的所需输出:
df$new_value <- c(3,2,1,NA,2,1)
因此,所有列的顺序都是相同的,对于 new_value
列,value
列顺序在 id
的每个级别内都是相反的> 栏目。有任何想法吗?谢谢!
最佳答案
据我了解您的问题,如果您只想反转顺序而不排序,那么您的数据已排序是巧合:
library(dplyr)
df %>% group_by(id) %>% mutate(new_value = rev(value)) %>% ungroup
# A tibble: 6 x 4
id value level new_value
<dbl> <int> <fctr> <int>
1 1 1 a 3
2 1 2 b 2
3 1 3 c 1
4 2 1 a NA
5 2 2 b 2
6 2 NA c 1
关于对数据框中的单个列在另一列的每个级别内重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540074/