样本数据:
temp = data.frame(col = list(NA, 1, 2, 3) )
Run Code Online (Sandbox Code Playgroud)
使用arrange:
temp %>%
arrange(col)
Run Code Online (Sandbox Code Playgroud)
给
col
1 1
2 2
3 3
4 NA
Run Code Online (Sandbox Code Playgroud)
和
temp %>%
arrange(desc(col))
Run Code Online (Sandbox Code Playgroud)
给
col
1 3
2 2
3 1
4 NA
Run Code Online (Sandbox Code Playgroud)
我想要
col
1 NA
2 3
3 2
4 1
Run Code Online (Sandbox Code Playgroud)
也就是说,把NAs放在第一位.有谁知道如何做到这一点?
可能这个问题的解决方案很容易,但我看不到它.这是我的示例数据框:
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
Run Code Online (Sandbox Code Playgroud)
这是我想要创建的所需输出:
df$new_value <- c(3,2,1,NA,2,1)
Run Code Online (Sandbox Code Playgroud)
因此,所有列的顺序都相同,对于new_value列,value列顺序在列的每个级别内反转id.有任何想法吗?谢谢!