我有一个如下所示的数据框:
well_idx_vector mass volume neg_control
1 H11 0.009366979 500 0.0
5 H10 0.005421779 500 0.0
9 H9 0.005869947 500 0.0
13 H8 0.004795850 500 0.0
17 H7 0.003171749 500 5.2
21 H6 0.003376679 500 4.6
25 H5 0.002591224 500 0.0
29 H4 0.004296721 500 5.7
33 H3 0.009735851 500 0.0
37 H2 0.005806398 500 8.4
41 G11 0.026943706 500 0.0
45 G10 0.053557516 500 3.0
49 G9 0.053424353 500 0.0
53 G8 0.101048356 500 0.0
57 G7 0.134918211 500 3.0
61 G6 0.154740298 500 0.0
65 G5 0.150639698 500 0.0
69 G4 0.105248793 500 0.0
73 G3 0.056218890 500 0.0
77 G2 0.044184765 500 0.0
81 F11 0.004311336 500 0.0
85 F10 0.003248083 500 0.0
89 F9 0.003612080 500 0.0
93 F8 0.002984221 500 0.0
97 F7 0.002622425 500 0.0
101 F6 0.002755702 500 0.0
105 F5 0.002125027 500 0.0
109 F4 0.003665278 500 0.0
113 F3 0.006419565 500 0.0
117 F2 0.004025916 500 0.0
121 E11 0.008369456 500 0.0
125 E10 0.007690647 500 0.0
129 E9 0.009800190 500 0.0
133 E8 0.026999688 500 0.0
137 E7 0.076243655 500 0.0
141 E6 0.144946547 500 0.0
145 E5 0.162233828 500 6.5
149 E4 0.104610457 500 0.0
153 E3 0.070559076 500 0.0
157 E2 0.067716717 500 0.0
161 D11 0.009099992 500 0.0
165 D10 0.005349740 500 0.0
169 D9 0.006191890 500 0.0
173 D8 0.005861958 500 0.0
177 D7 0.004369067 500 0.0
181 D6 0.004488258 500 0.0
185 D5 0.003315325 500 0.0
189 D4 0.004248404 500 0.0
193 D3 0.004835732 500 0.0
197 D2 0.005240292 500 0.0
201 C11 0.022015707 500 0.0
205 C10 0.013906228 500 0.0
209 C9 0.010194517 500 0.0
213 C8 0.010884621 500 0.0
217 C7 0.012959556 500 4.1
221 C6 0.022814209 500 1.4
225 C5 0.066223146 500 17.5
229 C4 0.037144041 500 0.0
233 C3 0.018543935 500 5.4
237 C2 0.015455041 500 4.9
241 B11 0.004198596 500 0.0
245 B10 0.005485408 500 0.0
249 B9 0.006233599 500 0.0
253 B8 0.012478330 500 0.0
257 B7 0.009894567 500 0.0
261 B6 0.008895920 500 0.0
265 B5 0.013198592 500 0.0
269 B4 0.012333688 500 0.0
273 B3 0.007915466 500 0.0
277 B2 0.008411102 500 0.0
281 A11 0.005488688 500 0.0
285 A10 0.004107467 500 0.0
289 A9 0.006539720 500 0.0
293 A8 0.008039929 500 0.0
297 A7 0.006302248 500 0.0
301 A6 0.006857599 500 0.0
305 A5 0.007671245 500 0.0
309 A4 0.006155090 500 0.0
313 A3 0.005278983 500 0.0
317 A2 0.009681976 500 0.0
我需要通过well_idx_vector列按顺序对此数据帧进行排序,其中A首先出现,G出现最后,以及以A,C,E,G开头的well_idx元素在升序,以及以B,D开头的那些元素,F,H正在下降
(例如:A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,C2,C3。 ..等等。
所以我的问题是,同时以两种不同方式订购此数据帧的最佳方法是什么?先感谢您。我尝试使用order()函数但运气不佳。
答案 0 :(得分:2)
ind <- data.frame(well_idx_vector=paste0(rep(LETTERS[1:8], each=11), c(1:11, 11:1)), stringsAsFactors=F)
merge(ind, df, by="well_idx_vector", sort=FALSE)
上面的假设是在操作之前具有一般范围是现实的。 ind
只是预期订单的扩展。如果数据太大而无法确定该信息,则可以采取额外步骤将id向量拆分为字母和数字。从那里我们可以在必要时提取相关信息。
# well_idx_vector mass volume neg_control
# 1 A2 0.009681976 500 0.0
# 2 A3 0.005278983 500 0.0
# 3 A4 0.006155090 500 0.0
# 4 A5 0.007671245 500 0.0
# 5 A6 0.006857599 500 0.0
# 6 A7 0.006302248 500 0.0
# 7 A8 0.008039929 500 0.0
# 8 A9 0.006539720 500 0.0
# 9 A10 0.004107467 500 0.0
# 10 A11 0.005488688 500 0.0
# 11 B11 0.004198596 500 0.0
# 12 B10 0.005485408 500 0.0
# 13 B9 0.006233599 500 0.0
# 14 B8 0.012478330 500 0.0
# 15 B7 0.009894567 500 0.0