在r中按字符对数据帧重新排序

在r中按字符对数据帧重新排序,r,dataframe,R,Dataframe,我在r中有一个数据帧,如下所示: Wave_Expo Tide_Zone avg 1 HighEx High 5.750000 2 HighEx Low 5.333333 3 HighEx Mid 7.833333 4 LowEx High 4.083333 5 LowEx Low 5.916667 6 LowEx Mid

我在r中有一个数据帧,如下所示:

    Wave_Expo   Tide_Zone   avg
1   HighEx      High      5.750000
2   HighEx      Low       5.333333
3   HighEx      Mid       7.833333
4   LowEx       High      4.083333
5   LowEx       Low       5.916667
6   LowEx       Mid       4.916667
7   MidEx       High      4.583333
8   MidEx       Low       5.833333
9   MidEx       Mid       4.090909

我一直试图通过
Tide_Zone
列重新排列它,使它在保持曝光列有序的同时,变低、变中、变高,但没有运气。我觉得一定有简单的办法。有什么帮助吗?

使用
级别指定每个因素的顺序:

dat$Tide_Zone = factor(dat$Tide_Zone, levels = c("Low", "Mid", "High"))
dat$Wave_Expo = factor(dat$Wave_Expo, levels = c("HighEx", "LowEx", "MidEx"))
# the default is alphabetical, which is how your Wave_Expo column are ordered
# I included that line just to make it clear, you could change it...
首先按Wave_Expo重新排序数据排序,然后按Tide_Zone重新排序

dat = dat[order(dat$Wave_Expo, dat$Tide_Zone), ]

如果它们以字符开头,我建议执行此过程,然后按所需顺序添加一个
id
列,然后根据需要转换回
character
。然后,如果您需要重新排序,此顺序将保留在
id
列中。

是否为您想要的Wave_Expo的高、低、中顺序?您的列是字符串还是因子?