提问者:小点点

复杂的绑定列(使用dplyr重新组织数据left_join和绑定列)


我有这个数据集(示例)。如果你注意到,第一列和第二列是描述性的,不会改变。第三、第四和第五列有动态值(但也有动态列名)。然后,第六、第七和第八列,然后第九个第十个第十一列值动态值等等。(在真实数据集中,我有1000多列)

总而言之,从某一点开始,每三列都有相同的信息。

我正在尝试有一个包含5列的最终数据集,其中前两列将是“精细运动”和“技能”。第三、第四和第五个将收集所有其他值并将它们放在下面。

下图显示了最终数据集的样子:

任何帮助都是有价值的。请使用下面的代码(我很乐意留在tidyverse框架内)

ds <- structure(list(fine_motor = c("2.2", "2.2"), skill = c("B. Functional Use", 
"A. Reach, Grab, Release"), spread_sheet_id_3 = c(1, 1), score_s_4 = c(2, 
2), confirm_s_5 = c("Meets", "Meets"), spread_sheet_id_7 = c(2, 
2), score_s_8 = c(2, 2), confirm_s_9 = c("Meets", "Meets"), spread_sheet_id_11 = c(3, 
3), score_s_12 = c(2, 2), confirm_s_13 = c("Meets", "Meets"), 
    spread_sheet_id_15 = c(4, 4), score_s_16 = c(1, 2), confirm_s_17 = c("Inconsistent", 
    "Meets"), spread_sheet_id_19 = c(5, 5), score_s_20 = c(1, 
    2), confirm_s_21 = c("Inconsistent", "Meets"), spread_sheet_id_23 = c(6, 
    6), score_s_24 = c(2, 2), confirm_s_25 = c("Meets", "Meets"
    ), spread_sheet_id_27 = c(7, 7), score_s_28 = c(0, 1), confirm_s_29 = c("Does Not", 
    "Inconsistent"), spread_sheet_id_31 = c(8, 8), score_s_32 = c(2, 
    2), confirm_s_33 = c("Meets", "Meets"), spread_sheet_id_35 = c(9, 
    9), score_s_36 = c(1, 2), confirm_s_37 = c("Inconsistent", 
    "Meets"), spread_sheet_id_39 = c(10, 10), score_s_40 = c(2, 
    2), confirm_s_41 = c("Meets", "Meets"), spread_sheet_id_43 = c(11, 
    11), score_s_44 = c(0, 2), confirm_s_45 = c("Does Not", "Meets"
    ), spread_sheet_id_47 = c(12, 12), score_s_48 = c(0, 2), 
    confirm_s_49 = c("Does Not", "Meets"), spread_sheet_id_51 = c(13, 
    13), score_s_52 = c(2, 2), confirm_s_53 = c("Meets", "Meets"
    ), spread_sheet_id_55 = c(14, 14), score_s_56 = c(2, 2), 
    confirm_s_57 = c("Meets", "Meets"), spread_sheet_id_59 = c(15, 
    15), score_s_60 = c(2, 2), confirm_s_61 = c("Meets", "Meets"
    ), spread_sheet_id_63 = c(16, 16), score_s_64 = c(2, 2), 
    confirm_s_65 = c("Meets", "Meets"), spread_sheet_id_67 = c(17, 
    17), score_s_68 = c(2, 2), confirm_s_69 = c("Meets", "Meets"
    ), spread_sheet_id_71 = c(18, 18), score_s_72 = c(2, 2), 
    confirm_s_73 = c("Meets", "Meets"), spread_sheet_id_75 = c(19, 
    19), score_s_76 = c(2, 2), confirm_s_77 = c("Meets", "Meets"
    ), spread_sheet_id_79 = c(20, 20), score_s_80 = c(1, 2), 
    confirm_s_81 = c("Inconsistent", "Meets"), spread_sheet_id_83 = c(21, 
    21), score_s_84 = c(0, 2), confirm_s_85 = c("Does Not", "Meets"
    ), spread_sheet_id_87 = c(22, 22), score_s_88 = c(0, 1), 
    confirm_s_89 = c("Does Not", "Inconsistent"), spread_sheet_id_91 = c(23, 
    23), score_s_92 = c(0, 0), confirm_s_93 = c("Does Not", "Does Not"
    ), spread_sheet_id_95 = c(24, 24), score_s_96 = c(0, 0), 
    confirm_s_97 = c("Does Not", "Does Not"), spread_sheet_id_99 = c(25, 
    25), score_s_100 = c(0, 0), confirm_s_101 = c("Does Not", 
    "Does Not"), spread_sheet_id_103 = c(26, 26), score_s_104 = c(0, 
    0), confirm_s_105 = c("Does Not", "Does Not"), spread_sheet_id_107 = c(27, 
    27), score_s_108 = c(0, 0), confirm_s_109 = c("Does Not", 
    "Does Not"), spread_sheet_id_111 = c(28, 28), score_s_112 = c(0, 
    0), confirm_s_113 = c("Does Not", "Does Not"), spread_sheet_id_115 = c(29, 
    29), score_s_116 = c(0, 0), confirm_s_117 = c("Does Not", 
    "Does Not"), spread_sheet_id_119 = c(30, 30), score_s_120 = c(0, 
    0), confirm_s_121 = c("Does Not", "Does Not"), spread_sheet_id_123 = c(31, 
    31), score_s_124 = c(0, 0), confirm_s_125 = c("Does Not", 
    "Does Not"), spread_sheet_id_127 = c(32, 32), score_s_128 = c(0, 
    0), confirm_s_129 = c("Does Not", "Does Not"), spread_sheet_id_131 = c(33, 
    33), score_s_132 = c(0, 0), confirm_s_133 = c("Does Not", 
    "Does Not"), spread_sheet_id_135 = c(34, 34), score_s_136 = c(0, 
    0), confirm_s_137 = c("Does Not", "Does Not"), spread_sheet_id_139 = c(35, 
    35), score_s_140 = c(0, 0), confirm_s_141 = c("Does Not", 
    "Does Not"), spread_sheet_id_143 = c(36, 36), score_s_144 = c(0, 
    0), confirm_s_145 = c("Does Not", "Does Not"), spread_sheet_id_147 = c(37, 
    37), score_s_148 = c(0, 0), confirm_s_149 = c("Does Not", 
    "Does Not"), spread_sheet_id_151 = c(38, 38), score_s_152 = c(0, 
    0), confirm_s_153 = c("Does Not", "Does Not"), spread_sheet_id_155 = c(39, 
    39), score_s_156 = c(0, 0), confirm_s_157 = c("Does Not", 
    "Does Not"), spread_sheet_id_159 = c(40, 40), score_s_160 = c(0, 
    0), confirm_s_161 = c("Does Not", "Does Not"), spread_sheet_id_163 = c(41, 
    41), score_s_164 = c(0, 0), confirm_s_165 = c("Does Not", 
    "Does Not"), spread_sheet_id_167 = c(42, 42), score_s_168 = c(0, 
    0), confirm_s_169 = c("Does Not", "Does Not"), spread_sheet_id_171 = c(43, 
    43), score_s_172 = c(0, 0), confirm_s_173 = c("Does Not", 
    "Does Not"), spread_sheet_id_175 = c(44, 44), score_s_176 = c(0, 
    0), confirm_s_177 = c("Does Not", "Does Not"), spread_sheet_id_179 = c(45, 
    45), score_s_180 = c(0, 0), confirm_s_181 = c("Does Not", 
    "Does Not"), spread_sheet_id_183 = c(46, 46), score_s_184 = c(0, 
    0), confirm_s_185 = c("Does Not", "Does Not"), spread_sheet_id_187 = c(47, 
    47), score_s_188 = c(0, 0), confirm_s_189 = c("Does Not", 
    "Does Not"), spread_sheet_id_191 = c(48, 48), score_s_192 = c(0, 
    0), confirm_s_193 = c("Does Not", "Does Not"), spread_sheet_id_195 = c(49, 
    49), score_s_196 = c(0, 0), confirm_s_197 = c("Does Not", 
    "Does Not"), spread_sheet_id_199 = c(50, 50), score_s_200 = c(0, 
    0), confirm_s_201 = c("Does Not", "Does Not"), spread_sheet_id_203 = c(51, 
    51), score_s_204 = c(0, 0), confirm_s_205 = c("Does Not", 
    "Does Not"), spread_sheet_id_207 = c(52, 52), score_s_208 = c(0, 
    0), confirm_s_209 = c("Does Not", "Does Not"), spread_sheet_id_211 = c(53, 
    53), score_s_212 = c(0, 0), confirm_s_213 = c("Does Not", 
    "Does Not"), spread_sheet_id_215 = c(54, 54), score_s_216 = c(0, 
    0), confirm_s_217 = c("Does Not", "Does Not"), spread_sheet_id_219 = c(55, 
    55), score_s_220 = c(0, 0), confirm_s_221 = c("Does Not", 
    "Does Not"), spread_sheet_id_223 = c(56, 56), score_s_224 = c(0, 
    0), confirm_s_225 = c("Does Not", "Does Not"), spread_sheet_id_227 = c(57, 
    57), score_s_228 = c(0, 0), confirm_s_229 = c("Does Not", 
    "Does Not"), spread_sheet_id_231 = c(58, 58), score_s_232 = c(0, 
    0), confirm_s_233 = c("Does Not", "Does Not"), spread_sheet_id_235 = c(59, 
    59), score_s_236 = c(0, 0), confirm_s_237 = c("Does Not", 
    "Does Not"), spread_sheet_id_239 = c(60, 60), score_s_240 = c(0, 
    0), confirm_s_241 = c("Does Not", "Does Not"), spread_sheet_id_243 = c(61, 
    61), score_s_244 = c(0, 0), confirm_s_245 = c("Does Not", 
    "Does Not"), spread_sheet_id_247 = c(62, 62), score_s_248 = c(0, 
    0), confirm_s_249 = c("Does Not", "Does Not"), spread_sheet_id_251 = c(63, 
    63), score_s_252 = c(0, 0), confirm_s_253 = c("Does Not", 
    "Does Not"), spread_sheet_id_255 = c(64, 64), score_s_256 = c(0, 
    0), confirm_s_257 = c("Does Not", "Does Not"), spread_sheet_id_259 = c(65, 
    65), score_s_260 = c(0, 0), confirm_s_261 = c("Does Not", 
    "Does Not"), spread_sheet_id_263 = c(66, 66), score_s_264 = c(0, 
    0), confirm_s_265 = c("Does Not", "Does Not"), spread_sheet_id_267 = c(67, 
    67), score_s_268 = c(0, 0), confirm_s_269 = c("Does Not", 
    "Does Not"), spread_sheet_id_271 = c(68, 68), score_s_272 = c(0, 
    0), confirm_s_273 = c("Does Not", "Does Not"), spread_sheet_id_275 = c(69, 
    69), score_s_276 = c(0, 0), confirm_s_277 = c("Does Not", 
    "Does Not"), spread_sheet_id_279 = c(70, 70), score_s_280 = c(0, 
    0), confirm_s_281 = c("Does Not", "Does Not"), spread_sheet_id_283 = c(71, 
    71), score_s_284 = c(0, 0), confirm_s_285 = c("Does Not", 
    "Does Not"), spread_sheet_id_287 = c(72, 72), score_s_288 = c(0, 
    0), confirm_s_289 = c("Does Not", "Does Not"), spread_sheet_id_291 = c(73, 
    73), score_s_292 = c(0, 0), confirm_s_293 = c("Does Not", 
    "Does Not"), spread_sheet_id_295 = c(74, 74), score_s_296 = c(0, 
    0), confirm_s_297 = c("Does Not", "Does Not"), spread_sheet_id_299 = c(75, 
    75), score_s_300 = c(0, 0), confirm_s_301 = c("Does Not", 
    "Does Not"), spread_sheet_id_303 = c(76, 76), score_s_304 = c(0, 
    0), confirm_s_305 = c("Does Not", "Does Not"), spread_sheet_id_307 = c(77, 
    77), score_s_308 = c(0, 0), confirm_s_309 = c("Does Not", 
    "Does Not"), spread_sheet_id_311 = c(78, 78), score_s_312 = c(0, 
    0), confirm_s_313 = c("Does Not", "Does Not"), spread_sheet_id_315 = c(79, 
    79), score_s_316 = c(0, 0), confirm_s_317 = c("Does Not", 
    "Does Not"), spread_sheet_id_319 = c(80, 80), score_s_320 = c(0, 
    0), confirm_s_321 = c("Does Not", "Does Not"), spread_sheet_id_323 = c(81, 
    81), score_s_324 = c(0, 0), confirm_s_325 = c("Does Not", 
    "Does Not"), spread_sheet_id_327 = c(82, 82), score_s_328 = c(0, 
    0), confirm_s_329 = c("Does Not", "Does Not"), spread_sheet_id_331 = c(83, 
    83), score_s_332 = c(0, 0), confirm_s_333 = c("Does Not", 
    "Does Not"), spread_sheet_id_335 = c(84, 84), score_s_336 = c(0, 
    0), confirm_s_337 = c("Does Not", "Does Not"), spread_sheet_id_339 = c(85, 
    85), score_s_340 = c(0, 0), confirm_s_341 = c("Does Not", 
    "Does Not"), spread_sheet_id_343 = c(86, 86), score_s_344 = c(0, 
    0), confirm_s_345 = c("Does Not", "Does Not"), spread_sheet_id_347 = c(87, 
    87), score_s_348 = c(0, 0), confirm_s_349 = c("Does Not", 
    "Does Not"), spread_sheet_id_351 = c(88, 88), score_s_352 = c(0, 
    0), confirm_s_353 = c("Does Not", "Does Not"), spread_sheet_id_355 = c(89, 
    89), score_s_356 = c(0, 0), confirm_s_357 = c("Does Not", 
    "Does Not"), spread_sheet_id_359 = c(90, 90), score_s_360 = c(0, 
    0), confirm_s_361 = c("Does Not", "Does Not"), spread_sheet_id_363 = c(91, 
    91), score_s_364 = c(0, 0), confirm_s_365 = c("Does Not", 
    "Does Not"), spread_sheet_id_367 = c(92, 92), score_s_368 = c(0, 
    0), confirm_s_369 = c("Does Not", "Does Not"), spread_sheet_id_371 = c(93, 
    93), score_s_372 = c(0, 0), confirm_s_373 = c("Does Not", 
    "Does Not"), spread_sheet_id_375 = c(94, 94), score_s_376 = c(0, 
    0), confirm_s_377 = c("Does Not", "Does Not"), spread_sheet_id_379 = c(95, 
    95), score_s_380 = c(0, 0), confirm_s_381 = c("Does Not", 
    "Does Not"), spread_sheet_id_383 = c(96, 96), score_s_384 = c(0, 
    0), confirm_s_385 = c("Does Not", "Does Not"), spread_sheet_id_387 = c(97, 
    97), score_s_388 = c(0, 0), confirm_s_389 = c("Does Not", 
    "Does Not"), spread_sheet_id_391 = c(98, 98), score_s_392 = c(0, 
    0), confirm_s_393 = c("Does Not", "Does Not"), spread_sheet_id_395 = c(99, 
    99), score_s_396 = c(0, 0), confirm_s_397 = c("Does Not", 
    "Does Not"), spread_sheet_id_399 = c(100, 100), score_s_400 = c(0, 
    0), confirm_s_401 = c("Does Not", "Does Not"), spread_sheet_id_403 = c(101, 
    101), score_s_404 = c(0, 0), confirm_s_405 = c("Does Not", 
    "Does Not"), spread_sheet_id_407 = c(102, 102), score_s_408 = c(0, 
    0), confirm_s_409 = c("Does Not", "Does Not"), spread_sheet_id_411 = c(103, 
    103), score_s_412 = c(0, 0), confirm_s_413 = c("Does Not", 
    "Does Not"), spread_sheet_id_415 = c(104, 104), score_s_416 = c(0, 
    0), confirm_s_417 = c("Does Not", "Does Not"), spread_sheet_id_419 = c(105, 
    105), score_s_420 = c(0, 0), confirm_s_421 = c("Does Not", 
    "Does Not"), spread_sheet_id_423 = c(106, 106), score_s_424 = c(0, 
    0), confirm_s_425 = c("Does Not", "Does Not"), spread_sheet_id_427 = c(107, 
    107), score_s_428 = c(0, 0), confirm_s_429 = c("Does Not", 
    "Does Not"), spread_sheet_id_431 = c(108, 108), score_s_432 = c(0, 
    0), confirm_s_433 = c("Does Not", "Does Not"), spread_sheet_id_435 = c(109, 
    109), score_s_436 = c(0, 0), confirm_s_437 = c("Does Not", 
    "Does Not"), spread_sheet_id_439 = c(110, 110), score_s_440 = c(0, 
    0), confirm_s_441 = c("Does Not", "Does Not"), spread_sheet_id_443 = c(111, 
    111), score_s_444 = c(0, 0), confirm_s_445 = c("Does Not", 
    "Does Not"), spread_sheet_id_447 = c(112, 112), score_s_448 = c(0, 
    0), confirm_s_449 = c("Does Not", "Does Not"), spread_sheet_id_451 = c(113, 
    113), score_s_452 = c(0, 0), confirm_s_453 = c("Does Not", 
    "Does Not"), spread_sheet_id_455 = c(114, 114), score_s_456 = c(0, 
    0), confirm_s_457 = c("Does Not", "Does Not"), spread_sheet_id_459 = c(115, 
    115), score_s_460 = c(0, 0), confirm_s_461 = c("Does Not", 
    "Does Not"), spread_sheet_id_463 = c(116, 116), score_s_464 = c(0, 
    0), confirm_s_465 = c("Does Not", "Does Not"), spread_sheet_id_467 = c(117, 
    117), score_s_468 = c(0, 0), confirm_s_469 = c("Does Not", 
    "Does Not"), spread_sheet_id_471 = c(118, 118), score_s_472 = c(0, 
    0), confirm_s_473 = c("Does Not", "Does Not"), spread_sheet_id_475 = c(119, 
    119), score_s_476 = c(0, 0), confirm_s_477 = c("Does Not", 
    "Does Not"), spread_sheet_id_479 = c(120, 120), score_s_480 = c(0, 
    0), confirm_s_481 = c("Does Not", "Does Not"), spread_sheet_id_483 = c(121, 
    121), score_s_484 = c(0, 0), confirm_s_485 = c("Does Not", 
    "Does Not"), spread_sheet_id_487 = c(122, 122), score_s_488 = c(0, 
    0), confirm_s_489 = c("Does Not", "Does Not"), spread_sheet_id_491 = c(123, 
    123), score_s_492 = c(0, 0), confirm_s_493 = c("Does Not", 
    "Does Not"), spread_sheet_id_495 = c(124, 124), score_s_496 = c(0, 
    0), confirm_s_497 = c("Does Not", "Does Not"), spread_sheet_id_499 = c(125, 
    125), score_s_500 = c(0, 0), confirm_s_501 = c("Does Not", 
    "Does Not"), spread_sheet_id_503 = c(126, 126), score_s_504 = c(0, 
    0), confirm_s_505 = c("Does Not", "Does Not"), spread_sheet_id_507 = c(127, 
    127), score_s_508 = c(0, 0), confirm_s_509 = c("Does Not", 
    "Does Not"), spread_sheet_id_511 = c(128, 128), score_s_512 = c(0, 
    0), confirm_s_513 = c("Does Not", "Does Not"), spread_sheet_id_515 = c(129, 
    129), score_s_516 = c(0, 0), confirm_s_517 = c("Does Not", 
    "Does Not"), spread_sheet_id_519 = c(130, 130), score_s_520 = c(0, 
    0), confirm_s_521 = c("Does Not", "Does Not"), spread_sheet_id_523 = c(131, 
    131), score_s_524 = c(0, 0), confirm_s_525 = c("Does Not", 
    "Does Not"), spread_sheet_id_527 = c(132, 132), score_s_528 = c(0, 
    0), confirm_s_529 = c("Does Not", "Does Not"), spread_sheet_id_531 = c(133, 
    133), score_s_532 = c(0, 0), confirm_s_533 = c("Does Not", 
    "Does Not"), spread_sheet_id_535 = c(134, 134), score_s_536 = c(0, 
    0), confirm_s_537 = c("Does Not", "Does Not"), spread_sheet_id_539 = c(135, 
    135), score_s_540 = c(0, 0), confirm_s_541 = c("Does Not", 
    "Does Not"), spread_sheet_id_543 = c(136, 136), score_s_544 = c(0, 
    0), confirm_s_545 = c("Does Not", "Does Not"), spread_sheet_id_547 = c(137, 
    137), score_s_548 = c(0, 0), confirm_s_549 = c("Does Not", 
    "Does Not"), spread_sheet_id_551 = c(138, 138), score_s_552 = c(0, 
    0), confirm_s_553 = c("Does Not", "Does Not"), spread_sheet_id_555 = c(139, 
    139), score_s_556 = c(0, 0), confirm_s_557 = c("Does Not", 
    "Does Not"), spread_sheet_id_559 = c(140, 140), score_s_560 = c(0, 
    0), confirm_s_561 = c("Does Not", "Does Not"), spread_sheet_id_563 = c(141, 
    141), score_s_564 = c(0, 0), confirm_s_565 = c("Does Not", 
    "Does Not"), spread_sheet_id_567 = c(142, 142), score_s_568 = c(0, 
    0), confirm_s_569 = c("Does Not", "Does Not"), spread_sheet_id_571 = c(143, 
    143), score_s_572 = c(0, 0), confirm_s_573 = c("Does Not", 
    "Does Not"), spread_sheet_id_575 = c(144, 144), score_s_576 = c(0, 
    0), confirm_s_577 = c("Does Not", "Does Not"), spread_sheet_id_579 = c(145, 
    145), score_s_580 = c(0, 0), confirm_s_581 = c("Does Not", 
    "Does Not"), spread_sheet_id_583 = c(146, 146), score_s_584 = c(0, 
    0), confirm_s_585 = c("Does Not", "Does Not"), spread_sheet_id_587 = c(147, 
    147), score_s_588 = c(0, 0), confirm_s_589 = c("Does Not", 
    "Does Not"), spread_sheet_id_591 = c(148, 148), score_s_592 = c(0, 
    0), confirm_s_593 = c("Does Not", "Does Not"), spread_sheet_id_595 = c(149, 
    149), score_s_596 = c(0, 0), confirm_s_597 = c("Does Not", 
    "Does Not"), spread_sheet_id_599 = c(150, 150), score_s_600 = c(0, 
    0), confirm_s_601 = c("Does Not", "Does Not"), spread_sheet_id_603 = c(151, 
    151), score_s_604 = c(0, 0), confirm_s_605 = c("Does Not", 
    "Does Not"), spread_sheet_id_607 = c(152, 152), score_s_608 = c(0, 
    0), confirm_s_609 = c("Does Not", "Does Not"), spread_sheet_id_611 = c(153, 
    153), score_s_612 = c(0, 0), confirm_s_613 = c("Does Not", 
    "Does Not"), spread_sheet_id_615 = c(154, 154), score_s_616 = c(0, 
    0), confirm_s_617 = c("Does Not", "Does Not"), spread_sheet_id_619 = c(155, 
    155), score_s_620 = c(0, 0), confirm_s_621 = c("Does Not", 
    "Does Not"), spread_sheet_id_623 = c(156, 156), score_s_624 = c(0, 
    0), confirm_s_625 = c("Does Not", "Does Not"), spread_sheet_id_627 = c(157, 
    157), score_s_628 = c(0, 0), confirm_s_629 = c("Does Not", 
    "Does Not"), spread_sheet_id_631 = c(158, 158), score_s_632 = c(0, 
    0), confirm_s_633 = c("Does Not", "Does Not"), spread_sheet_id_635 = c(159, 
    159), score_s_636 = c(0, 0), confirm_s_637 = c("Does Not", 
    "Does Not"), spread_sheet_id_639 = c(160, 160), score_s_640 = c(0, 
    0), confirm_s_641 = c("Does Not", "Does Not"), spread_sheet_id_643 = c(161, 
    161), score_s_644 = c(0, 0), confirm_s_645 = c("Does Not", 
    "Does Not"), spread_sheet_id_647 = c(162, 162), score_s_648 = c(0, 
    0), confirm_s_649 = c("Does Not", "Does Not"), spread_sheet_id_651 = c(163, 
    163), score_s_652 = c(0, 0), confirm_s_653 = c("Does Not", 
    "Does Not"), spread_sheet_id_655 = c(164, 164), score_s_656 = c(0, 
    0), confirm_s_657 = c("Does Not", "Does Not"), spread_sheet_id_659 = c(165, 
    165), score_s_660 = c(0, 0), confirm_s_661 = c("Does Not", 
    "Does Not"), spread_sheet_id_663 = c(166, 166), score_s_664 = c(0, 
    0), confirm_s_665 = c("Does Not", "Does Not"), spread_sheet_id_667 = c(167, 
    167), score_s_668 = c(0, 0), confirm_s_669 = c("Does Not", 
    "Does Not"), spread_sheet_id_671 = c(168, 168), score_s_672 = c(0, 
    0), confirm_s_673 = c("Does Not", "Does Not"), spread_sheet_id_675 = c(169, 
    169), score_s_676 = c(0, 0), confirm_s_677 = c("Does Not", 
    "Does Not"), spread_sheet_id_679 = c(170, 170), score_s_680 = c(0, 
    0), confirm_s_681 = c("Does Not", "Does Not"), spread_sheet_id_683 = c(171, 
    171), score_s_684 = c(0, 0), confirm_s_685 = c("Does Not", 
    "Does Not"), spread_sheet_id_687 = c(172, 172), score_s_688 = c(0, 
    0), confirm_s_689 = c("Does Not", "Does Not"), spread_sheet_id_691 = c(173, 
    173), score_s_692 = c(0, 0), confirm_s_693 = c("Does Not", 
    "Does Not"), spread_sheet_id_695 = c(174, 174), score_s_696 = c(0, 
    0), confirm_s_697 = c("Does Not", "Does Not"), spread_sheet_id_699 = c(175, 
    175), score_s_700 = c(0, 0), confirm_s_701 = c("Does Not", 
    "Does Not"), spread_sheet_id_703 = c(176, 176), score_s_704 = c(0, 
    0), confirm_s_705 = c("Does Not", "Does Not"), spread_sheet_id_707 = c(177, 
    177), score_s_708 = c(0, 0), confirm_s_709 = c("Does Not", 
    "Does Not"), spread_sheet_id_711 = c(178, 178), score_s_712 = c(0, 
    0), confirm_s_713 = c("Does Not", "Does Not"), spread_sheet_id_715 = c(179, 
    179), score_s_716 = c(0, 0), confirm_s_717 = c("Does Not", 
    "Does Not"), spread_sheet_id_719 = c(180, 180), score_s_720 = c(0, 
    0), confirm_s_721 = c("Does Not", "Does Not"), spread_sheet_id_723 = c(181, 
    181), score_s_724 = c(0, 0), confirm_s_725 = c("Does Not", 
    "Does Not"), spread_sheet_id_727 = c(182, 182), score_s_728 = c(0, 
    0), confirm_s_729 = c("Does Not", "Does Not"), spread_sheet_id_731 = c(183, 
    183), score_s_732 = c(0, 0), confirm_s_733 = c("Does Not", 
    "Does Not"), spread_sheet_id_735 = c(184, 184), score_s_736 = c(0, 
    0), confirm_s_737 = c("Does Not", "Does Not"), spread_sheet_id_739 = c(185, 
    185), score_s_740 = c(0, 0), confirm_s_741 = c("Does Not", 
    "Does Not"), spread_sheet_id_743 = c(186, 186), score_s_744 = c(0, 
    0), confirm_s_745 = c("Does Not", "Does Not"), spread_sheet_id_747 = c(187, 
    187), score_s_748 = c(0, 0), confirm_s_749 = c("Does Not", 
    "Does Not"), spread_sheet_id_751 = c(188, 188), score_s_752 = c(0, 
    0), confirm_s_753 = c("Does Not", "Does Not"), spread_sheet_id_755 = c(189, 
    189), score_s_756 = c(0, 0), confirm_s_757 = c("Does Not", 
    "Does Not"), spread_sheet_id_759 = c(190, 190), score_s_760 = c(0, 
    0), confirm_s_761 = c("Does Not", "Does Not"), spread_sheet_id_763 = c(191, 
    191), score_s_764 = c(0, 0), confirm_s_765 = c("Does Not", 
    "Does Not"), spread_sheet_id_767 = c(192, 192), score_s_768 = c(0, 
    0), confirm_s_769 = c("Does Not", "Does Not"), spread_sheet_id_771 = c(193, 
    193), score_s_772 = c(0, 0), confirm_s_773 = c("Does Not", 
    "Does Not"), spread_sheet_id_775 = c(194, 194), score_s_776 = c(0, 
    0), confirm_s_777 = c("Does Not", "Does Not"), spread_sheet_id_779 = c(195, 
    195), score_s_780 = c(0, 0), confirm_s_781 = c("Does Not", 
    "Does Not"), spread_sheet_id_783 = c(196, 196), score_s_784 = c(0, 
    0), confirm_s_785 = c("Does Not", "Does Not"), spread_sheet_id_787 = c(197, 
    197), score_s_788 = c(0, 0), confirm_s_789 = c("Does Not", 
    "Does Not"), spread_sheet_id_791 = c(198, 198), score_s_792 = c(0, 
    0), confirm_s_793 = c("Does Not", "Does Not"), spread_sheet_id_795 = c(199, 
    199), score_s_796 = c(0, 0), confirm_s_797 = c("Does Not", 
    "Does Not"), spread_sheet_id_799 = c(200, 200), score_s_800 = c(0, 
    0), confirm_s_801 = c("Does Not", "Does Not")), row.names = c(NA, 
-2L), class = c("tbl_df", "tbl", "data.frame"))

共2个答案

匿名用户

这是你想要的吗?我使用自定义“规范”来定义原始格式中的哪些值属于哪些目标列:

library(tidyverse)

# build a pivoting "spec"
spec <- tibble(`.name` = names(ds)) %>%
  slice(-c(1:2)) %>%
  mutate(`.value` = case_when(
           `.name` %>% str_detect("spread") ~ "spread_sheet",
           `.name` %>% str_detect("score")  ~ "score",
           `.name` %>% str_detect("confirm") ~ "confirm")
  )

# apply the spec
ds %>%
  pivot_longer_spec(spec)

结果

# A tibble: 400 x 5
   fine_motor skill             spread_sheet score confirm     
   <chr>      <chr>                    <dbl> <dbl> <chr>       
 1 2.2        B. Functional Use            1     2 Meets       
 2 2.2        B. Functional Use            2     2 Meets       
 3 2.2        B. Functional Use            3     2 Meets       
 4 2.2        B. Functional Use            4     1 Inconsistent
 5 2.2        B. Functional Use            5     1 Inconsistent
 6 2.2        B. Functional Use            6     2 Meets       
 7 2.2        B. Functional Use            7     0 Does Not    
 8 2.2        B. Functional Use            8     2 Meets       
 9 2.2        B. Functional Use            9     1 Inconsistent
10 2.2        B. Functional Use           10     2 Meets       
# … with 390 more rows

匿名用户

ds %>% 
  pivot_longer(-one_of("fine_motor","skill"),
               names_to = c(".value","group"),
               names_sep = "[0-9]+"
  ) %>% 
  dplyr::select(-group)

现在试试?

相关问题