基座
我们可以使用Map()
三次:
fun = \(a, b) {
X = Map(\(x) x[nchar(x) > 0L], strsplit(b, "\\D+")) |>
lapply(as.numeric) |> list2DF()
y = Map(paste0, gsub("xx", "", a),
Vectorize( \(from, to) seq(from, to, by = 1))(X[1, ], X[2, ]) )
z = Map(rep, b, 1 + X[2, ] - X[1, ])
lapply(list(y, z), unlist) |> list2DF()
}
fun(df$first_id, df$desc) |> setNames(colnames(df))
赠送
first_id desc
1 CHEF1 (xx = 1 à 20)
2 CHEF2 (xx = 1 à 20)
3 CHEF3 (xx = 1 à 20)
4 CHEF4 (xx = 1 à 20)
5 CHEF5 (xx = 1 à 20)
6 CHEF6 (xx = 1 à 20)
7 CHEF7 (xx = 1 à 20)
8 CHEF8 (xx = 1 à 20)
9 CHEF9 (xx = 1 à 20)
10 CHEF10 (xx = 1 à 20)
11 CHEF11 (xx = 1 à 20)
12 CHEF12 (xx = 1 à 20)
13 CHEF13 (xx = 1 à 20)
14 CHEF14 (xx = 1 à 20)
15 CHEF15 (xx = 1 à 20)
16 CHEF16 (xx = 1 à 20)
17 CHEF17 (xx = 1 à 20)
18 CHEF18 (xx = 1 à 20)
19 CHEF19 (xx = 1 à 20)
20 CHEF20 (xx = 1 à 20)
21 NBTFA1 (xx = 1 à 20)
22 NBTFA2 (xx = 1 à 20)
23 NBTFA3 (xx = 1 à 20)
24 NBTFA4 (xx = 1 à 20)
25 NBTFA5 (xx = 1 à 20)
26 NBTFA6 (xx = 1 à 20)
27 NBTFA7 (xx = 1 à 20)
28 NBTFA8 (xx = 1 à 20)
29 NBTFA9 (xx = 1 à 20)
30 NBTFA10 (xx = 1 à 20)
31 NBTFA11 (xx = 1 à 20)
32 NBTFA12 (xx = 1 à 20)
33 NBTFA13 (xx = 1 à 20)
34 NBTFA14 (xx = 1 à 20)
35 NBTFA15 (xx = 1 à 20)
36 NBTFA16 (xx = 1 à 20)
37 NBTFA17 (xx = 1 à 20)
38 NBTFA18 (xx = 1 à 20)
39 NBTFA19 (xx = 1 à 20)
40 NBTFA20 (xx = 1 à 20)
41 CYACT2 (xx = 2 à 16)
42 CYACT3 (xx = 2 à 16)
43 CYACT4 (xx = 2 à 16)
44 CYACT5 (xx = 2 à 16)
45 CYACT6 (xx = 2 à 16)
46 CYACT7 (xx = 2 à 16)
47 CYACT8 (xx = 2 à 16)
48 CYACT9 (xx = 2 à 16)
49 CYACT10 (xx = 2 à 16)
50 CYACT11 (xx = 2 à 16)
51 CYACT12 (xx = 2 à 16)
52 CYACT13 (xx = 2 à 16)
53 CYACT14 (xx = 2 à 16)
54 CYACT15 (xx = 2 à 16)
55 CYACT16 (xx = 2 à 16)
56 CYCAUS2 (xx = 2 à 16)
57 CYCAUS3 (xx = 2 à 16)
58 CYCAUS4 (xx = 2 à 16)
59 CYCAUS5 (xx = 2 à 16)
60 CYCAUS6 (xx = 2 à 16)
61 CYCAUS7 (xx = 2 à 16)
62 CYCAUS8 (xx = 2 à 16)
63 CYCAUS9 (xx = 2 à 16)
64 CYCAUS10 (xx = 2 à 16)
65 CYCAUS11 (xx = 2 à 16)
66 CYCAUS12 (xx = 2 à 16)
67 CYCAUS13 (xx = 2 à 16)
68 CYCAUS14 (xx = 2 à 16)
69 CYCAUS15 (xx = 2 à 16)
70 CYCAUS16 (xx = 2 à 16)
71 CYDEB2 (xx = 2 à 16)
72 CYDEB3 (xx = 2 à 16)
73 CYDEB4 (xx = 2 à 16)
74 CYDEB5 (xx = 2 à 16)
75 CYDEB6 (xx = 2 à 16)
76 CYDEB7 (xx = 2 à 16)
77 CYDEB8 (xx = 2 à 16)
78 CYDEB9 (xx = 2 à 16)
79 CYDEB10 (xx = 2 à 16)
80 CYDEB11 (xx = 2 à 16)
81 CYDEB12 (xx = 2 à 16)
82 CYDEB13 (xx = 2 à 16)
83 CYDEB14 (xx = 2 à 16)
84 CYDEB15 (xx = 2 à 16)
85 CYDEB16 (xx = 2 à 16)
86 CYTPTO2 (xx = 2 à 16)
87 CYTPTO3 (xx = 2 à 16)
88 CYTPTO4 (xx = 2 à 16)
89 CYTPTO5 (xx = 2 à 16)
90 CYTPTO6 (xx = 2 à 16)
91 CYTPTO7 (xx = 2 à 16)
92 CYTPTO8 (xx = 2 à 16)
93 CYTPTO9 (xx = 2 à 16)
94 CYTPTO10 (xx = 2 à 16)
95 CYTPTO11 (xx = 2 à 16)
96 CYTPTO12 (xx = 2 à 16)
97 CYTPTO13 (xx = 2 à 16)
98 CYTPTO14 (xx = 2 à 16)
99 CYTPTO15 (xx = 2 à 16)
100 CYTPTO16 (xx = 2 à 16)
101 CJACT1 (xx = 1 à 15)
102 CJACT2 (xx = 1 à 15)
103 CJACT3 (xx = 1 à 15)
104 CJACT4 (xx = 1 à 15)
105 CJACT5 (xx = 1 à 15)
106 CJACT6 (xx = 1 à 15)
107 CJACT7 (xx = 1 à 15)
108 CJACT8 (xx = 1 à 15)
109 CJACT9 (xx = 1 à 15)
110 CJACT10 (xx = 1 à 15)
111 CJACT11 (xx = 1 à 15)
112 CJACT12 (xx = 1 à 15)
113 CJACT13 (xx = 1 à 15)
114 CJACT14 (xx = 1 à 15)
115 CJACT15 (xx = 1 à 15)
116 CJDEB1 (xx = 1 à 15)
117 CJDEB2 (xx = 1 à 15)
118 CJDEB3 (xx = 1 à 15)
119 CJDEB4 (xx = 1 à 15)
120 CJDEB5 (xx = 1 à 15)
121 CJDEB6 (xx = 1 à 15)
122 CJDEB7 (xx = 1 à 15)
123 CJDEB8 (xx = 1 à 15)
124 CJDEB9 (xx = 1 à 15)
125 CJDEB10 (xx = 1 à 15)
126 CJDEB11 (xx = 1 à 15)
127 CJDEB12 (xx = 1 à 15)
128 CJDEB13 (xx = 1 à 15)
129 CJDEB14 (xx = 1 à 15)
130 CJDEB15 (xx = 1 à 15)
131 CJFIN1 (xx = 1 à 15)
132 CJFIN2 (xx = 1 à 15)
133 CJFIN3 (xx = 1 à 15)
134 CJFIN4 (xx = 1 à 15)
135 CJFIN5 (xx = 1 à 15)
136 CJFIN6 (xx = 1 à 15)
137 CJFIN7 (xx = 1 à 15)
138 CJFIN8 (xx = 1 à 15)
139 CJFIN9 (xx = 1 à 15)
140 CJFIN10 (xx = 1 à 15)
141 CJFIN11 (xx = 1 à 15)
142 CJFIN12 (xx = 1 à 15)
143 CJFIN13 (xx = 1 à 15)
144 CJFIN14 (xx = 1 à 15)
145 CJFIN15 (xx = 1 à 15)
146 HODAN1 (xx = 1 à 12)
147 HODAN2 (xx = 1 à 12)
148 HODAN3 (xx = 1 à 12)
149 HODAN4 (xx = 1 à 12)
150 HODAN5 (xx = 1 à 12)
151 HODAN6 (xx = 1 à 12)
152 HODAN7 (xx = 1 à 12)
153 HODAN8 (xx = 1 à 12)
154 HODAN9 (xx = 1 à 12)
155 HODAN10 (xx = 1 à 12)
156 HODAN11 (xx = 1 à 12)
157 HODAN12 (xx = 1 à 12)
158 HODCHO1 (xx = 1 à 12)
159 HODCHO2 (xx = 1 à 12)
160 HODCHO3 (xx = 1 à 12)
161 HODCHO4 (xx = 1 à 12)
162 HODCHO5 (xx = 1 à 12)
163 HODCHO6 (xx = 1 à 12)
164 HODCHO7 (xx = 1 à 12)
165 HODCHO8 (xx = 1 à 12)
166 HODCHO9 (xx = 1 à 12)
167 HODCHO10 (xx = 1 à 12)
168 HODCHO11 (xx = 1 à 12)
169 HODCHO12 (xx = 1 à 12)
170 HODCO1 (xx = 1 à 12)
171 HODCO2 (xx = 1 à 12)
172 HODCO3 (xx = 1 à 12)
173 HODCO4 (xx = 1 à 12)
174 HODCO5 (xx = 1 à 12)
175 HODCO6 (xx = 1 à 12)
176 HODCO7 (xx = 1 à 12)
177 HODCO8 (xx = 1 à 12)
178 HODCO9 (xx = 1 à 12)
179 HODCO10 (xx = 1 à 12)
180 HODCO11 (xx = 1 à 12)
181 HODCO12 (xx = 1 à 12)
182 HODEMP1 (xx = 1 à 12)
183 HODEMP2 (xx = 1 à 12)
184 HODEMP3 (xx = 1 à 12)
185 HODEMP4 (xx = 1 à 12)
186 HODEMP5 (xx = 1 à 12)
187 HODEMP6 (xx = 1 à 12)
188 HODEMP7 (xx = 1 à 12)
189 HODEMP8 (xx = 1 à 12)
190 HODEMP9 (xx = 1 à 12)
191 HODEMP10 (xx = 1 à 12)
192 HODEMP11 (xx = 1 à 12)
193 HODEMP12 (xx = 1 à 12)
194 HODENF1 (xx = 1 à 12)
195 HODENF2 (xx = 1 à 12)
196 HODENF3 (xx = 1 à 12)
197 HODENF4 (xx = 1 à 12)
198 HODENF5 (xx = 1 à 12)
199 HODENF6 (xx = 1 à 12)
200 HODENF7 (xx = 1 à 12)
201 HODENF8 (xx = 1 à 12)
202 HODENF9 (xx = 1 à 12)
203 HODENF10 (xx = 1 à 12)
204 HODENF11 (xx = 1 à 12)
205 HODENF12 (xx = 1 à 12)
206 HODIND1 (xx = 1 à 12)
207 HODIND2 (xx = 1 à 12)
208 HODIND3 (xx = 1 à 12)
209 HODIND4 (xx = 1 à 12)
210 HODIND5 (xx = 1 à 12)
211 HODIND6 (xx = 1 à 12)
212 HODIND7 (xx = 1 à 12)
213 HODIND8 (xx = 1 à 12)
214 HODIND9 (xx = 1 à 12)
215 HODIND10 (xx = 1 à 12)
216 HODIND11 (xx = 1 à 12)
217 HODIND12 (xx = 1 à 12)
218 HODIP1 (xx = 1 à 12)
219 HODIP2 (xx = 1 à 12)
220 HODIP3 (xx = 1 à 12)
221 HODIP4 (xx = 1 à 12)
222 HODIP5 (xx = 1 à 12)
223 HODIP6 (xx = 1 à 12)
224 HODIP7 (xx = 1 à 12)
225 HODIP8 (xx = 1 à 12)
226 HODIP9 (xx = 1 à 12)
227 HODIP10 (xx = 1 à 12)
228 HODIP11 (xx = 1 à 12)
229 HODIP12 (xx = 1 à 12)
230 HODLN1 (xx = 1 à 12)
231 HODLN2 (xx = 1 à 12)
232 HODLN3 (xx = 1 à 12)
233 HODLN4 (xx = 1 à 12)
234 HODLN5 (xx = 1 à 12)
235 HODLN6 (xx = 1 à 12)
236 HODLN7 (xx = 1 à 12)
237 HODLN8 (xx = 1 à 12)
238 HODLN9 (xx = 1 à 12)
239 HODLN10 (xx = 1 à 12)
240 HODLN11 (xx = 1 à 12)
241 HODLN12 (xx = 1 à 12)
242 HODNIV1 (xx = 1 à 12)
243 HODNIV2 (xx = 1 à 12)
244 HODNIV3 (xx = 1 à 12)
245 HODNIV4 (xx = 1 à 12)
246 HODNIV5 (xx = 1 à 12)
247 HODNIV6 (xx = 1 à 12)
248 HODNIV7 (xx = 1 à 12)
249 HODNIV8 (xx = 1 à 12)
250 HODNIV9 (xx = 1 à 12)
251 HODNIV10 (xx = 1 à 12)
252 HODNIV11 (xx = 1 à 12)
253 HODNIV12 (xx = 1 à 12)
254 HODPRI1 (xx = 1 à 12)
255 HODPRI2 (xx = 1 à 12)
256 HODPRI3 (xx = 1 à 12)
257 HODPRI4 (xx = 1 à 12)
258 HODPRI5 (xx = 1 à 12)
259 HODPRI6 (xx = 1 à 12)
260 HODPRI7 (xx = 1 à 12)
261 HODPRI8 (xx = 1 à 12)
262 HODPRI9 (xx = 1 à 12)
263 HODPRI10 (xx = 1 à 12)
264 HODPRI11 (xx = 1 à 12)
265 HODPRI12 (xx = 1 à 12)
266 HODPUB1 (xx = 1 à 12)
267 HODPUB2 (xx = 1 à 12)
268 HODPUB3 (xx = 1 à 12)
269 HODPUB4 (xx = 1 à 12)
270 HODPUB5 (xx = 1 à 12)
271 HODPUB6 (xx = 1 à 12)
272 HODPUB7 (xx = 1 à 12)
273 HODPUB8 (xx = 1 à 12)
274 HODPUB9 (xx = 1 à 12)
275 HODPUB10 (xx = 1 à 12)
276 HODPUB11 (xx = 1 à 12)
277 HODPUB12 (xx = 1 à 12)
278 HODSECT1 (xx = 1 à 12)
279 HODSECT2 (xx = 1 à 12)
280 HODSECT3 (xx = 1 à 12)
281 HODSECT4 (xx = 1 à 12)
282 HODSECT5 (xx = 1 à 12)
283 HODSECT6 (xx = 1 à 12)
284 HODSECT7 (xx = 1 à 12)
285 HODSECT8 (xx = 1 à 12)
286 HODSECT9 (xx = 1 à 12)
287 HODSECT10 (xx = 1 à 12)
288 HODSECT11 (xx = 1 à 12)
289 HODSECT12 (xx = 1 à 12)
290 HODSEX1 (xx = 1 à 12)
291 HODSEX2 (xx = 1 à 12)
292 HODSEX3 (xx = 1 à 12)
293 HODSEX4 (xx = 1 à 12)
294 HODSEX5 (xx = 1 à 12)
295 HODSEX6 (xx = 1 à 12)
296 HODSEX7 (xx = 1 à 12)
297 HODSEX8 (xx = 1 à 12)
298 HODSEX9 (xx = 1 à 12)
299 HODSEX10 (xx = 1 à 12)
300 HODSEX11 (xx = 1 à 12)
301 HODSEX12 (xx = 1 à 12)
302 QUIRECOITM1 (xx = 1 à 12)
303 QUIRECOITM2 (xx = 1 à 12)
304 QUIRECOITM3 (xx = 1 à 12)
305 QUIRECOITM4 (xx = 1 à 12)
306 QUIRECOITM5 (xx = 1 à 12)
307 QUIRECOITM6 (xx = 1 à 12)
308 QUIRECOITM7 (xx = 1 à 12)
309 QUIRECOITM8 (xx = 1 à 12)
310 QUIRECOITM9 (xx = 1 à 12)
311 QUIRECOITM10 (xx = 1 à 12)
312 QUIRECOITM11 (xx = 1 à 12)
313 QUIRECOITM12 (xx = 1 à 12)
314 QUIRECOIT1 (xx = 1 à 20)
315 QUIRECOIT2 (xx = 1 à 20)
316 QUIRECOIT3 (xx = 1 à 20)
317 QUIRECOIT4 (xx = 1 à 20)
318 QUIRECOIT5 (xx = 1 à 20)
319 QUIRECOIT6 (xx = 1 à 20)
320 QUIRECOIT7 (xx = 1 à 20)
321 QUIRECOIT8 (xx = 1 à 20)
322 QUIRECOIT9 (xx = 1 à 20)
323 QUIRECOIT10 (xx = 1 à 20)
324 QUIRECOIT11 (xx = 1 à 20)
325 QUIRECOIT12 (xx = 1 à 20)
326 QUIRECOIT13 (xx = 1 à 20)
327 QUIRECOIT14 (xx = 1 à 20)
328 QUIRECOIT15 (xx = 1 à 20)
329 QUIRECOIT16 (xx = 1 à 20)
330 QUIRECOIT17 (xx = 1 à 20)
331 QUIRECOIT18 (xx = 1 à 20)
332 QUIRECOIT19 (xx = 1 à 20)
333 QUIRECOIT20 (xx = 1 à 20)
数据
length-corrected toy data
df =structure(list(first_id = c("CHEFxx", "NBTFAxx", "CYACTxx", "CYCAUSxx",
"CYDEBxx", "CYTPTOxx", "CJACTxx", "CJDEBxx", "CJFINxx", "HODANxx",
"HODCHOxx", "HODCOxx", "HODEMPxx", "HODENFxx", "HODINDxx", "HODIPxx",
"HODLNxx", "HODNIVxx", "HODPRIxx", "HODPUBxx", "HODSECTxx", "HODSEXxx",
"QUIRECOITMxx", "QUIRECOITxx"), desc = c("(xx = 1 à 20)", "(xx = 1 à 20)",
"(xx = 2 à 16)", "(xx = 2 à 16)", "(xx = 2 à 16)", "(xx = 2 à 16)",
"(xx = 1 à 15)", "(xx = 1 à 15)", "(xx = 1 à 15)", "(xx = 1 à 12)",
"(xx = 1 à 12)", "(xx = 1 à 12)", "(xx = 1 à 12)", "(xx = 1 à 12)",
"(xx = 1 à 12)", "(xx = 1 à 12)", "(xx = 1 à 12)", "(xx = 1 à 12)",
"(xx = 1 à 12)", "(xx = 1 à 12)", "(xx = 1 à 12)", "(xx = 1 à 12)",
"(xx = 1 à 12)", "(xx = 1 à 20)")), row.names = c(NA, -24L), class = "data.frame")