r - 如何按列对数据框进行排序,首先将某些值放在列中的开头,其余的按字母顺序排列

标签 r dataframe sorting alphabetical

我有这个数据框

a <- c("a", "f", "n", "c", "d")
b <- c("L", "S", "N", "R", "S")
df <- data.frame(a,b)
  a b
1 a L
2 f S
3 n N
4 c R
5 d S

然后我希望行按 b 列排序,但首先在行的开头设置“S”值,然后按字母顺序:

  a b
2 f S
5 d S
1 a L
3 n N
4 c R




最佳答案

您可以在下单期间将S兑换成空格

df[order(sub("S", " ", df$b)), ]
#df[order(chartr("S", " ", df$b)), ] #Alternative
#  a b
#2 f S
#5 d S
#1 a L
#3 n N
#4 c R

关于r - 如何按列对数据框进行排序,首先将某些值放在列中的开头,其余的按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69459174/

相关文章:

r - 如何有条件地更改 R Shiny 包中图表的纵横比?

r - 下一个出现的记录的索引

python - 有效地将带有嵌入数组的字典列表转换为 DataFrame

r - 将 "loadings"对象转换为数据帧 (R)

python - 基于索引的 2 列 2 数据帧之间的差异

algorithm - 重新排列红色、蓝色和绿色球的阵列

在列表中查找共同名称的算法

r - ggplot2 绘制 100% 堆积面积图

r - R:具有多个条件的 `which`语句

c++ - std::sort 算法内存使用情况