r语言 - 添加具有时间组的变量



提前感谢。

我有一个以秒为单位的变量Time的数据帧。

我想添加另一个变量Conditions,并在conditionlabel中有一个向量按Time的顺序出现70秒,直到数据帧结束。也就是说,在Time的0~70秒内,Condition包含1,70~140秒包含6,140~210秒包含3,以此类推。

下面是目前为止的代码:
conditionlabel = c(1,6,3,2,4,5)
data = data %>%
mutate(Condition = conditionlabel)

And my dataframe:

data <- structure(list(Time = c(1.71, 3.2, 4.73, 5.65, 6.65, 
6.75, 7.98, 8.29, 11.39, 13.31, 13.61, 14.28, 16.61, 19.39, 21.57, 
22.77, 23.87, 24.05, 24.32, 24.68, 24.72, 24.79, 25.98, 26.43, 
27.37, 27.67, 28.04, 29.27, 31.29, 31.42, 32.05, 33.45, 33.56, 
34.11, 35.25, 35.84, 37.72, 38.09, 38.59, 39.03, 40.19, 40.64, 
41.44, 42.78, 42.81, 43.15, 43.58, 44.43, 44.69, 44.9, 45.16, 
45.63, 46.86, 48.91, 50.96, 52.03, 52.46, 53.13, 54.28, 55.51, 
55.91, 57.36, 58, 58.17, 58.2, 58.53, 59.3, 59.83, 61.22, 61.75, 
62.28, 63.58, 63.91, 65.04, 66.54, 67.1, 69.45, 71.67, 71.81, 
74.04, 77.19, 78.04, 78.47, 80, 80.11, 81.36, 81.89, 83.09, 83.63, 
83.66, 83.69, 84.26, 84.85, 85.71, 89.29, 90.23, 91.51, 91.78, 
91.95, 96.3, 98.61, 99.08, 99.95, 101.14, 101.44, 102.5, 102.77, 
103.57, 103.8, 105.15, 105.28, 105.48, 105.72, 107.38, 107.77, 
107.93, 108.97, 109.13, 109.23, 109.6, 111.29, 113.12, 113.15, 
113.18, 116.17, 116.37, 117.75, 120.44, 120.91, 121, 122.54, 
123.17, 123.99, 124.39, 125.49, 127.71, 129.11, 130.4, 130.93, 
132.16, 132.73, 133.04, 133.57, 134.15, 134.45, 136.46, 137.43, 
138.43, 139.43, 140.25, 140.61, 143.3, 143.5, 143.56, 145.57, 
146.65, 147.49, 147.61, 147.85, 148.02, 148.8, 151.07, 151.62, 
151.75, 152.16, 153.79, 154.94, 155.04, 155.2, 156.64, 156.7, 
156.77, 157.07, 158.95, 159.15, 160.36, 161.4, 162.07, 162.24, 
162.44, 162.48, 162.67, 162.81, 163.07, 164.89, 165.39, 165.82, 
166.09, 166.72, 166.83, 167.27, 168.61, 170.14, 171.52, 172.26, 
173.13, 173.73, 174.04, 174.18, 174.21, 174.48, 175.21, 175.31, 
175.48, 176.98, 177.56, 178.93, 179.03, 182.21, 184.03, 184.76, 
185.06, 185.77, 186.39, 186.6, 186.95, 187.02, 187.58, 187.91, 
188.08, 189.15, 189.88, 190.47, 191, 191.8, 193.5, 194.69, 195.29, 
195.59, 197.07, 199.4, 200.35, 201.75, 202.28, 202.36, 202.92, 
203.45, 203.62, 204.14, 204.57, 204.78, 204.87, 205.84, 206.47, 
206.58, 207, 208.66, 208.99, 209.22, 212.51, 215.13, 216.02, 
218.51, 218.61, 220.01, 220.04, 220.38, 221.53, 221.96, 222.63, 
223.03, 223.17, 224.28, 225.64, 226.34, 226.38, 226.78, 226.81, 
227.7, 227.76, 227.87, 228.2, 229.73, 230.36, 231.15, 231.58, 
234.83, 235.66, 236.2, 236.46, 237.58, 237.85, 237.88, 238.32, 
238.42, 239.21, 239.38, 240.05, 243.24, 243.87, 243.93, 245.45, 
245.56, 245.75, 247.03, 247.12, 249.97, 250.78, 251.89, 253.99, 
254.57, 257.68, 258.69, 258.85, 259.52, 259.99, 262.81, 263.28, 
263.98, 265.93, 266.06, 268.1, 268.34, 270.18, 274.3, 276.99, 
278.77, 279.54, 279.87, 280.43, 282.29, 282.35, 283.15, 283.35, 
284.59, 285.2, 285.37, 290.75, 290.89, 291.12, 291.29, 293.53, 
294.61, 296.86, 298.64, 299.64, 301.24, 303.29, 307.01, 307.18, 
307.95, 309.66, 309.83, 309.86, 310.13, 310.69, 310.73, 312.01, 
315.36, 316.1, 316.27, 316.56, 316.93, 317, 317.27, 317.9, 318.1, 
319.25, 319.72, 319.99, 320.22, 322.3, 324.96, 326.42, 326.76, 
327.62, 328.35, 328.47, 328.84, 329.27, 329.57, 330.43, 331, 
332.22, 332.75, 334.05, 334.72, 334.86, 335.74, 338.75, 340.86, 
341.84, 341.94, 343.14, 344.61, 344.71, 344.81, 345.85, 349.48, 
349.68, 349.85, 350.61, 353.46, 353.53, 353.76, 354.36, 357.58, 
360.8, 362.11, 362.15, 362.21, 362.35, 362.68, 364.18, 368.26, 
369.02, 369.12, 369.35, 369.49, 369.85, 370.51, 371.68, 371.98, 
372.01, 372.17, 372.47, 374.17, 376.28, 376.75, 377.32, 378.66, 
379.37, 380.97, 381.3, 381.44, 381.54, 381.64, 381.87, 382.79, 
383.13, 385.09, 385.59, 386.74, 387.68, 387.71, 390.29, 390.82, 
391.23, 393.14, 393.21, 393.81, 395.08, 395.11, 395.21, 395.66, 
395.83, 396.16, 396.29, 397.06, 397.23, 398.19, 398.66, 398.83, 
402.77, 404.23, 404.36, 404.64, 405.03, 405.23, 405.27, 405.53, 
406.41, 406.71, 407.18, 408.02, 408.08, 408.65, 409.66, 411.26, 
411.54, 411.76, 412.3, 412.67, 412.95, 413.18, 413.21, 414.51, 
415.09, 415.15, 415.22, 418.1, 418.64, 420.86, 421.55, 423.28, 
424.08, 426.49, 427.42, 429.29, 429.54, 429.68, 429.94, 430.27, 
430.47, 430.91, 431.64, 431.87, 432.34, 434.29, 434.66, 434.9, 
436.21, 438.01, 438.75, 439.08, 439.08, 439.46, 442.56, 443.68, 
444.11, 445, 445.5, 446.36, 446.56, 447.33, 447.36, 448.41, 449.25, 
450.42, 451.2, 452.54, 454.25, 455.62, 455.75, 456.65, 457.43, 
458.5, 460.54, 460.95, 461.02, 461.82, 463.32, 463.48, 464.31, 
465.17, 466.99, 467.12, 467.59, 469.69, 470.64, 472.1, 473.49, 
474.43, 475.16, 477.78, 478.28, 479.61, 480.56, 482.83, 483.89, 
483.96, 484.86, 485.51, 486.76, 487.03, 487.09, 488.8, 489.23, 
489.39, 489.64, 489.68, 489.94, 491.24, 491.31, 491.52, 492.65, 
493.77, 494.77, 494.99, 495.63, 498.45, 500.6, 501.13, 503.42, 
505.42, 505.78, 507.94, 510.02, 511.79, 516.21, 517.26, 517.46, 
519.65, 520.98, 522.11, 523.23, 524.46, 526.09, 526.65, 528.64, 
528.84, 529.08, 529.25, 529.83, 531.6, 532.39, 533.61, 534.71, 
535.25, 535.68, 536.15, 537.53, 537.63, 539.8, 541.28, 542.29, 
542.45, 543.12, 543.8, 544.34, 545.3, 545.64, 548.22, 548.28, 
548.42, 549.06, 549.19, 549.78, 551.61, 552.97, 554.3, 554.71, 
557.79, 558.05, 558.16, 560.54, 562.19, 563.56, 563.59, 563.65, 
563.82, 564.09, 564.49, 565.68, 567.24, 567.48, 567.65, 567.68, 
568.86, 568.92, 570.23, 571.31, 572.26, 572.76, 573.16, 574.09, 
577.21, 579.71, 583.7, 584.1, 585.82, 585.88, 585.95, 586.45, 
586.51, 586.65, 588.26, 588.42, 588.64, 588.87, 589.3, 589.47, 
589.8, 590.84, 591.27, 591.54, 591.6, 592.52, 594.19, 594.65, 
594.82, 595.12, 595.32, 595.64, 596.37, 596.5, 596.57, 596.67, 
596.94, 596.97, 597.33, 597.44, 597.97, 598.44, 598.91, 598.96, 
600.52, 602.71, 603.18, 603.57, 604.74, 607.12, 607.46, 608.12, 
608.26, 608.76, 610.54, 611.08, 611.41, 612.2, 612.73, 615.19, 
616.61, 617.68, 617.81, 619.2, 619.67, 620.97, 621.13, 621.63, 
622.48, 623.01, 623.15, 624.15, 624.21, 624.55, 625.62, 626.07, 
629.98, 630.65, 630.92, 632.57, 632.6, 633.5, 634, 634.77, 635.5, 
635.86, 636.12, 638.79, 639.07, 639.41, 640.37, 642.58, 643.79, 
644.72, 644.76, 645.05, 645.83, 645.85, 647.01, 647.37, 650.86, 
651.09, 651.95, 655.01, 655.61, 656.36, 657.86, 658.83, 660.41, 
660.61, 660.85, 662.35, 662.55, 662.64, 663.3, 664.56, 665.1, 
665.49, 665.99, 666.13, 667.61, 667.75, 667.88, 667.95, 669.15, 
670, 670.37, 670.67, 670.7, 670.9, 671.33, 671.54, 674.18, 677.27, 
677.37, 678, 678.44, 679.14, 679.37, 679.69, 680.28, 681.38, 
682.69, 682.95, 683.41, 685.67, 685.91, 685.97, 687.02, 687.39, 
688.19, 688.29, 690.54, 690.68, 691.31, 692.14, 693.01, 693.24, 
695.12, 696.23, 698.51, 699.98, 700.93, 701.23, 703.94, 707.06, 
711.78, 712.9, 713, 713.13, 715.54, 718.03, 718.07, 719.39, 719.65, 
720.28, 721.02, 721.39, 722.23, 722.77, 724.3, 726.09, 726.66, 
727.16, 727.39, 729.1, 729.24, 729.57, 730.17, 730.97, 732.52, 
733.93, 734.63, 735.64, 735.67, 735.84, 736.57, 736.91, 736.94, 
737.11, 737.67, 738.89, 740.2, 740.7, 741.16, 742.08, 744.41, 
744.5, 745.06, 745.86, 747.03, 747.85, 748.81, 749.18, 751.33, 
751.63, 753.6, 753.9, 754.03, 754.49, 757.12, 758.67, 758.93, 
761.48, 765.27, 767.94, 768.19, 769.12, 769.55, 769.95, 770.16, 
771.77, 771.8, 772.74, 773.13, 773.5, 774.3, 774.77, 775.29, 
775.96, 776.19, 776.52, 777.35, 777.72, 778.27, 778.61, 779.07, 
780.61, 781.28, 781.36, 782.23, 782.7, 783.53, 785.04, 787.58, 
788.92, 789.3, 789.8, 790.26, 790.86, 790.99, 791.5, 792.44, 
793.78, 793.88, 794.68, 794.85, 795.16, 795.19, 795.96, 796.83, 
799.01, 799.05, 799.32, 800.62, 801.48, 803.53, 803.84, 804.17, 
806.18, 806.72, 807.06, 807.45, 808.02, 808.64, 809.64, 811.44, 
812.28, 813.95, 815.67, 816.1, 818.24, 818.69, 819.42, 819.55, 
819.66, 819.82, 821.63, 821.79, 821.87, 822.34, 824.87, 825.07, 
825.39, 825.53, 825.96, 827.79, 827.92, 828.26, 828.41, 829.34, 
829.64, 832.06, 832.83, 833.06, 833.53, 834.56, 836.91, 837.18, 
837.54, 837.65, 839.1, 841.33, 841.4, 842.21, 842.38, 842.58, 
842.82, 843.98, 844.52, 844.82, 845.17, 845.6, 846.8, 847.43, 
849.78, 849.81, 850.18, 850.95, 851.48, 851.8, 852.37, 852.67, 
852.87, 853.84, 855.19, 856.55, 858.05, 858.54, 859.5, 860.57, 
860.88, 860.9, 862.19, 862.42, 862.85, 862.96, 863.69)), row.names = c(NA, -1000L), class = c("tbl_df", "tbl", "data.frame"
))

编辑:可能的解决方案(感谢Rjen)

mutate(Condition = case_when(Time%%420 <= 70 ~ 1,
Time%%420 > 70 & Time%%420 <= 2*70 ~ 2,
Time%%420 > 2*70 & Time%%420 <= 3*70 ~ 3,
Time%%420 > 3*70 & Time%%420 <= 4*70 ~ 4,
Time%%420 > 4*70 & Time%%420 <= 5*70 ~ 5,
Time%%420 > 5*70 ~ 6))

您可以这样做。

library(dplyr)
data %>%
mutate(Condition = case_when(Time <= 70 ~ 1,
Time > 70 & Time <= 2*70 ~ 6,
Time > 2*70 & Time <= 3*70 ~ 3,
Time > 3*70 & Time <= 4*70 ~ 2,
Time > 4*70 & Time <= 5*70 ~ 4,
Time > 5*70 ~ 5))
# # A tibble: 1,000 x 2
#     Time Condition
#    <dbl>     <dbl>
# 1   1.71         1
# 2   3.2          1
# 3   4.73         1
# 4   5.65         1
# 5   6.65         1
# 6   6.75         1
# 7   7.98         1
# 8   8.29         1
# 9  11.4          1
# 10 13.3          1

如果你需要使用向量conditionlabel,你可以通过case_when(Time <= 70 ~ conditionlabel[1])等来引用它。

最新更新