1使用循环,对iris的1到4列分别画点图(plot)

  1. > iris
  2. Sepal.Length Sepal.Width Petal.Length Petal.Width Species
  3. 1 5.1 3.5 1.4 0.2 setosa
  4. 2 4.9 3.0 1.4 0.2 setosa
  5. 3 4.7 3.2 1.3 0.2 setosa
  6. 4 4.6 3.1 1.5 0.2 setosa
  7. 5 5.0 3.6 1.4 0.2 setosa
  8. 6 5.4 3.9 1.7 0.4 setosa
  9. 7 4.6 3.4 1.4 0.3 setosa
  10. 8 5.0 3.4 1.5 0.2 setosa
  11. 9 4.4 2.9 1.4 0.2 setosa
  12. 10 4.9 3.1 1.5 0.1 setosa
  13. 11 5.4 3.7 1.5 0.2 setosa
  14. 12 4.8 3.4 1.6 0.2 setosa
  15. 13 4.8 3.0 1.4 0.1 setosa
  16. 14 4.3 3.0 1.1 0.1 setosa
  17. 15 5.8 4.0 1.2 0.2 setosa
  18. 16 5.7 4.4 1.5 0.4 setosa
  19. 17 5.4 3.9 1.3 0.4 setosa
  20. 18 5.1 3.5 1.4 0.3 setosa
  21. 19 5.7 3.8 1.7 0.3 setosa
  22. 20 5.1 3.8 1.5 0.3 setosa
  23. 21 5.4 3.4 1.7 0.2 setosa
  24. 22 5.1 3.7 1.5 0.4 setosa
  25. 23 4.6 3.6 1.0 0.2 setosa
  26. 24 5.1 3.3 1.7 0.5 setosa
  27. 25 4.8 3.4 1.9 0.2 setosa
  28. 26 5.0 3.0 1.6 0.2 setosa
  29. 27 5.0 3.4 1.6 0.4 setosa
  30. 28 5.2 3.5 1.5 0.2 setosa
  31. 29 5.2 3.4 1.4 0.2 setosa
  32. 30 4.7 3.2 1.6 0.2 setosa
  33. 31 4.8 3.1 1.6 0.2 setosa
  34. 32 5.4 3.4 1.5 0.4 setosa
  35. 33 5.2 4.1 1.5 0.1 setosa
  36. 34 5.5 4.2 1.4 0.2 setosa
  37. 35 4.9 3.1 1.5 0.2 setosa
  38. 36 5.0 3.2 1.2 0.2 setosa
  39. 37 5.5 3.5 1.3 0.2 setosa
  40. 38 4.9 3.6 1.4 0.1 setosa
  41. 39 4.4 3.0 1.3 0.2 setosa
  42. 40 5.1 3.4 1.5 0.2 setosa
  43. 41 5.0 3.5 1.3 0.3 setosa
  44. 42 4.5 2.3 1.3 0.3 setosa
  45. 43 4.4 3.2 1.3 0.2 setosa
  46. 44 5.0 3.5 1.6 0.6 setosa
  47. 45 5.1 3.8 1.9 0.4 setosa
  48. 46 4.8 3.0 1.4 0.3 setosa
  49. 47 5.1 3.8 1.6 0.2 setosa
  50. 48 4.6 3.2 1.4 0.2 setosa
  51. 49 5.3 3.7 1.5 0.2 setosa
  52. 50 5.0 3.3 1.4 0.2 setosa
  53. 51 7.0 3.2 4.7 1.4 versicolor
  54. 52 6.4 3.2 4.5 1.5 versicolor
  55. 53 6.9 3.1 4.9 1.5 versicolor
  56. 54 5.5 2.3 4.0 1.3 versicolor
  57. 55 6.5 2.8 4.6 1.5 versicolor
  58. 56 5.7 2.8 4.5 1.3 versicolor
  59. 57 6.3 3.3 4.7 1.6 versicolor
  60. 58 4.9 2.4 3.3 1.0 versicolor
  61. 59 6.6 2.9 4.6 1.3 versicolor
  62. 60 5.2 2.7 3.9 1.4 versicolor
  63. 61 5.0 2.0 3.5 1.0 versicolor
  64. 62 5.9 3.0 4.2 1.5 versicolor
  65. 63 6.0 2.2 4.0 1.0 versicolor
  66. 64 6.1 2.9 4.7 1.4 versicolor
  67. 65 5.6 2.9 3.6 1.3 versicolor
  68. 66 6.7 3.1 4.4 1.4 versicolor
  69. 67 5.6 3.0 4.5 1.5 versicolor
  70. 68 5.8 2.7 4.1 1.0 versicolor
  71. 69 6.2 2.2 4.5 1.5 versicolor
  72. 70 5.6 2.5 3.9 1.1 versicolor
  73. 71 5.9 3.2 4.8 1.8 versicolor
  74. 72 6.1 2.8 4.0 1.3 versicolor
  75. 73 6.3 2.5 4.9 1.5 versicolor
  76. 74 6.1 2.8 4.7 1.2 versicolor
  77. 75 6.4 2.9 4.3 1.3 versicolor
  78. 76 6.6 3.0 4.4 1.4 versicolor
  79. 77 6.8 2.8 4.8 1.4 versicolor
  80. 78 6.7 3.0 5.0 1.7 versicolor
  81. 79 6.0 2.9 4.5 1.5 versicolor
  82. 80 5.7 2.6 3.5 1.0 versicolor
  83. 81 5.5 2.4 3.8 1.1 versicolor
  84. 82 5.5 2.4 3.7 1.0 versicolor
  85. 83 5.8 2.7 3.9 1.2 versicolor
  86. 84 6.0 2.7 5.1 1.6 versicolor
  87. 85 5.4 3.0 4.5 1.5 versicolor
  88. 86 6.0 3.4 4.5 1.6 versicolor
  89. 87 6.7 3.1 4.7 1.5 versicolor
  90. 88 6.3 2.3 4.4 1.3 versicolor
  91. 89 5.6 3.0 4.1 1.3 versicolor
  92. 90 5.5 2.5 4.0 1.3 versicolor
  93. 91 5.5 2.6 4.4 1.2 versicolor
  94. 92 6.1 3.0 4.6 1.4 versicolor
  95. 93 5.8 2.6 4.0 1.2 versicolor
  96. 94 5.0 2.3 3.3 1.0 versicolor
  97. 95 5.6 2.7 4.2 1.3 versicolor
  98. 96 5.7 3.0 4.2 1.2 versicolor
  99. 97 5.7 2.9 4.2 1.3 versicolor
  100. 98 6.2 2.9 4.3 1.3 versicolor
  101. 99 5.1 2.5 3.0 1.1 versicolor
  102. 100 5.7 2.8 4.1 1.3 versicolor
  103. 101 6.3 3.3 6.0 2.5 virginica
  104. 102 5.8 2.7 5.1 1.9 virginica
  105. 103 7.1 3.0 5.9 2.1 virginica
  106. 104 6.3 2.9 5.6 1.8 virginica
  107. 105 6.5 3.0 5.8 2.2 virginica
  108. 106 7.6 3.0 6.6 2.1 virginica
  109. 107 4.9 2.5 4.5 1.7 virginica
  110. 108 7.3 2.9 6.3 1.8 virginica
  111. 109 6.7 2.5 5.8 1.8 virginica
  112. 110 7.2 3.6 6.1 2.5 virginica
  113. 111 6.5 3.2 5.1 2.0 virginica
  114. 112 6.4 2.7 5.3 1.9 virginica
  115. 113 6.8 3.0 5.5 2.1 virginica
  116. 114 5.7 2.5 5.0 2.0 virginica
  117. 115 5.8 2.8 5.1 2.4 virginica
  118. 116 6.4 3.2 5.3 2.3 virginica
  119. 117 6.5 3.0 5.5 1.8 virginica
  120. 118 7.7 3.8 6.7 2.2 virginica
  121. 119 7.7 2.6 6.9 2.3 virginica
  122. 120 6.0 2.2 5.0 1.5 virginica
  123. 121 6.9 3.2 5.7 2.3 virginica
  124. 122 5.6 2.8 4.9 2.0 virginica
  125. 123 7.7 2.8 6.7 2.0 virginica
  126. 124 6.3 2.7 4.9 1.8 virginica
  127. 125 6.7 3.3 5.7 2.1 virginica
  128. 126 7.2 3.2 6.0 1.8 virginica
  129. 127 6.2 2.8 4.8 1.8 virginica
  130. 128 6.1 3.0 4.9 1.8 virginica
  131. 129 6.4 2.8 5.6 2.1 virginica
  132. 130 7.2 3.0 5.8 1.6 virginica
  133. 131 7.4 2.8 6.1 1.9 virginica
  134. 132 7.9 3.8 6.4 2.0 virginica
  135. 133 6.4 2.8 5.6 2.2 virginica
  136. 134 6.3 2.8 5.1 1.5 virginica
  137. 135 6.1 2.6 5.6 1.4 virginica
  138. 136 7.7 3.0 6.1 2.3 virginica
  139. 137 6.3 3.4 5.6 2.4 virginica
  140. 138 6.4 3.1 5.5 1.8 virginica
  141. 139 6.0 3.0 4.8 1.8 virginica
  142. 140 6.9 3.1 5.4 2.1 virginica
  143. 141 6.7 3.1 5.6 2.4 virginica
  144. 142 6.9 3.1 5.1 2.3 virginica
  145. 143 5.8 2.7 5.1 1.9 virginica
  146. 144 6.8 3.2 5.9 2.3 virginica
  147. 145 6.7 3.3 5.7 2.5 virginica
  148. 146 6.7 3.0 5.2 2.3 virginica
  149. 147 6.3 2.5 5.0 1.9 virginica
  150. 148 6.5 3.0 5.2 2.0 virginica
  151. 149 6.2 3.4 5.4 2.3 virginica
  152. 150 5.9 3.0 5.1 1.8 virginica
  153. > x=1:4
  154. > x
  155. [1] 1 2 3 4
  156. > for (i in x){
  157. + plot(iris[,i],col=iris[,5])
  158. + }

输出结果如下:
image.png
image.png
image.png
image.png

2生成一个随机数(rnorm)组成的10行6列的矩阵,列名为sample1,sample2….sample6,行名为gene1,gene2…gene10,分组为sample1、2、3属于A组,sample4,5、6属于B组。用循环对每个基因画ggplot2箱线图,并拼图

  1. > gfj = matrix(rnorm(60),ncol=6);gfj
  2. [,1] [,2] [,3] [,4] [,5] [,6]
  3. [1,] -0.31268804 0.9324936 -1.182418259 1.7039155 -0.7824128 -0.2051285
  4. [2,] -0.61609178 1.4331777 -0.190183535 -0.4211536 0.6690160 0.4631609
  5. [3,] -0.40235005 1.3724106 1.550675136 -2.7163350 0.7792040 -0.2501707
  6. [4,] 0.81463196 -0.2542318 -1.345814036 0.8897545 -0.2907730 -1.0246765
  7. [5,] -0.03485606 -0.6182081 -0.811909210 1.0200308 -0.9567138 0.3179821
  8. [6,] -0.70287745 -1.4913486 -0.006954597 -0.6774349 1.7549044 -0.4808167
  9. [7,] 0.09638077 0.5397555 1.588257406 -0.6570834 -0.3611543 0.2163203
  10. [8,] 0.66215689 1.4717037 1.450286698 -0.8983272 0.4830548 -2.0012366
  11. [9,] 0.20817293 1.4901270 0.598326457 -0.9547770 0.7461906 -1.0561868
  12. [10,] 0.40870489 -1.8879957 0.715517402 0.2257603 0.9773011 -0.4206816
  13. > rownames(gfj)=paste0(rep("gene",times=10),1:10);gfj
  14. [,1] [,2] [,3] [,4] [,5] [,6]
  15. gene1 -0.31268804 0.9324936 -1.182418259 1.7039155 -0.7824128 -0.2051285
  16. gene2 -0.61609178 1.4331777 -0.190183535 -0.4211536 0.6690160 0.4631609
  17. gene3 -0.40235005 1.3724106 1.550675136 -2.7163350 0.7792040 -0.2501707
  18. gene4 0.81463196 -0.2542318 -1.345814036 0.8897545 -0.2907730 -1.0246765
  19. gene5 -0.03485606 -0.6182081 -0.811909210 1.0200308 -0.9567138 0.3179821
  20. gene6 -0.70287745 -1.4913486 -0.006954597 -0.6774349 1.7549044 -0.4808167
  21. gene7 0.09638077 0.5397555 1.588257406 -0.6570834 -0.3611543 0.2163203
  22. gene8 0.66215689 1.4717037 1.450286698 -0.8983272 0.4830548 -2.0012366
  23. gene9 0.20817293 1.4901270 0.598326457 -0.9547770 0.7461906 -1.0561868
  24. gene10 0.40870489 -1.8879957 0.715517402 0.2257603 0.9773011 -0.4206816
  25. > colnames(gfj)=paste0(rep("sample",times=6),1:6);gfj
  26. sample1 sample2 sample3 sample4 sample5 sample6
  27. gene1 -0.31268804 0.9324936 -1.182418259 1.7039155 -0.7824128 -0.2051285
  28. gene2 -0.61609178 1.4331777 -0.190183535 -0.4211536 0.6690160 0.4631609
  29. gene3 -0.40235005 1.3724106 1.550675136 -2.7163350 0.7792040 -0.2501707
  30. gene4 0.81463196 -0.2542318 -1.345814036 0.8897545 -0.2907730 -1.0246765
  31. gene5 -0.03485606 -0.6182081 -0.811909210 1.0200308 -0.9567138 0.3179821
  32. gene6 -0.70287745 -1.4913486 -0.006954597 -0.6774349 1.7549044 -0.4808167
  33. gene7 0.09638077 0.5397555 1.588257406 -0.6570834 -0.3611543 0.2163203
  34. gene8 0.66215689 1.4717037 1.450286698 -0.8983272 0.4830548 -2.0012366
  35. gene9 0.20817293 1.4901270 0.598326457 -0.9547770 0.7461906 -1.0561868
  36. gene10 0.40870489 -1.8879957 0.715517402 0.2257603 0.9773011 -0.4206816
  37. > gfj2=t(gfj);gfj2
  38. gene1 gene2 gene3 gene4 gene5 gene6
  39. sample1 -0.3126880 -0.6160918 -0.4023500 0.8146320 -0.03485606 -0.702877451
  40. sample2 0.9324936 1.4331777 1.3724106 -0.2542318 -0.61820808 -1.491348558
  41. sample3 -1.1824183 -0.1901835 1.5506751 -1.3458140 -0.81190921 -0.006954597
  42. sample4 1.7039155 -0.4211536 -2.7163350 0.8897545 1.02003083 -0.677434934
  43. sample5 -0.7824128 0.6690160 0.7792040 -0.2907730 -0.95671383 1.754904412
  44. sample6 -0.2051285 0.4631609 -0.2501707 -1.0246765 0.31798207 -0.480816699
  45. gene7 gene8 gene9 gene10
  46. sample1 0.09638077 0.6621569 0.2081729 0.4087049
  47. sample2 0.53975546 1.4717037 1.4901270 -1.8879957
  48. sample3 1.58825741 1.4502867 0.5983265 0.7155174
  49. sample4 -0.65708335 -0.8983272 -0.9547770 0.2257603
  50. sample5 -0.36115431 0.4830548 0.7461906 0.9773011
  51. sample6 0.21632031 -2.0012366 -1.0561868 -0.4206816
  52. > gfj3=cbind(gfj2,rep(c('A','B'),each=3));gfj3
  53. gene1 gene2 gene3
  54. sample1 "-0.312688039051671" "-0.616091777097895" "-0.402350047076416"
  55. sample2 "0.932493636235824" "1.43317770925122" "1.37241055916329"
  56. sample3 "-1.18241825933153" "-0.190183534996257" "1.55067513562403"
  57. sample4 "1.70391552261499" "-0.421153580542317" "-2.71633500450184"
  58. sample5 "-0.782412775705917" "0.669015968383641" "0.779203971643184"
  59. sample6 "-0.205128459705795" "0.463160932158633" "-0.250170676644495"
  60. gene4 gene5 gene6
  61. sample1 "0.814631962405304" "-0.0348560593900871" "-0.702877450891742"
  62. sample2 "-0.254231813031211" "-0.61820808164723" "-1.49134855846344"
  63. sample3 "-1.34581403573095" "-0.811909209806031" "-0.00695459689994072"
  64. sample4 "0.889754527431714" "1.02003082788281" "-0.677434933681806"
  65. sample5 "-0.290772952544471" "-0.956713828084913" "1.75490441233323"
  66. sample6 "-1.02467646167772" "0.317982067115504" "-0.480816699336025"
  67. gene7 gene8 gene9
  68. sample1 "0.0963807716927326" "0.662156893062263" "0.208172932525086"
  69. sample2 "0.539755455242193" "1.47170367690911" "1.49012703771358"
  70. sample3 "1.58825740605464" "1.45028669829143" "0.598326456688562"
  71. sample4 "-0.657083351867339" "-0.898327219170378" "-0.954777049324065"
  72. sample5 "-0.361154308568598" "0.483054809616393" "0.746190587520392"
  73. sample6 "0.216320311457586" "-2.00123658452703" "-1.05618677027001"
  74. gene10
  75. sample1 "0.408704885887645" "A"
  76. sample2 "-1.88799565452592" "A"
  77. sample3 "0.715517402355723" "A"
  78. sample4 "0.225760261211124" "B"
  79. sample5 "0.977301055115831" "B"
  80. sample6 "-0.420681584016793" "B"
  81. > colnames(gfj3)[11]="group";gfj3
  82. gene1 gene2 gene3
  83. sample1 "-0.312688039051671" "-0.616091777097895" "-0.402350047076416"
  84. sample2 "0.932493636235824" "1.43317770925122" "1.37241055916329"
  85. sample3 "-1.18241825933153" "-0.190183534996257" "1.55067513562403"
  86. sample4 "1.70391552261499" "-0.421153580542317" "-2.71633500450184"
  87. sample5 "-0.782412775705917" "0.669015968383641" "0.779203971643184"
  88. sample6 "-0.205128459705795" "0.463160932158633" "-0.250170676644495"
  89. gene4 gene5 gene6
  90. sample1 "0.814631962405304" "-0.0348560593900871" "-0.702877450891742"
  91. sample2 "-0.254231813031211" "-0.61820808164723" "-1.49134855846344"
  92. sample3 "-1.34581403573095" "-0.811909209806031" "-0.00695459689994072"
  93. sample4 "0.889754527431714" "1.02003082788281" "-0.677434933681806"
  94. sample5 "-0.290772952544471" "-0.956713828084913" "1.75490441233323"
  95. sample6 "-1.02467646167772" "0.317982067115504" "-0.480816699336025"
  96. gene7 gene8 gene9
  97. sample1 "0.0963807716927326" "0.662156893062263" "0.208172932525086"
  98. sample2 "0.539755455242193" "1.47170367690911" "1.49012703771358"
  99. sample3 "1.58825740605464" "1.45028669829143" "0.598326456688562"
  100. sample4 "-0.657083351867339" "-0.898327219170378" "-0.954777049324065"
  101. sample5 "-0.361154308568598" "0.483054809616393" "0.746190587520392"
  102. sample6 "0.216320311457586" "-2.00123658452703" "-1.05618677027001"
  103. gene10 group
  104. sample1 "0.408704885887645" "A"
  105. sample2 "-1.88799565452592" "A"
  106. sample3 "0.715517402355723" "A"
  107. sample4 "0.225760261211124" "B"
  108. sample5 "0.977301055115831" "B"
  109. sample6 "-0.420681584016793" "B"
  110. > gfj4=as.data.frame(gfj3);gfj4
  111. gene1 gene2 gene3
  112. sample1 -0.312688039051671 -0.616091777097895 -0.402350047076416
  113. sample2 0.932493636235824 1.43317770925122 1.37241055916329
  114. sample3 -1.18241825933153 -0.190183534996257 1.55067513562403
  115. sample4 1.70391552261499 -0.421153580542317 -2.71633500450184
  116. sample5 -0.782412775705917 0.669015968383641 0.779203971643184
  117. sample6 -0.205128459705795 0.463160932158633 -0.250170676644495
  118. gene4 gene5 gene6
  119. sample1 0.814631962405304 -0.0348560593900871 -0.702877450891742
  120. sample2 -0.254231813031211 -0.61820808164723 -1.49134855846344
  121. sample3 -1.34581403573095 -0.811909209806031 -0.00695459689994072
  122. sample4 0.889754527431714 1.02003082788281 -0.677434933681806
  123. sample5 -0.290772952544471 -0.956713828084913 1.75490441233323
  124. sample6 -1.02467646167772 0.317982067115504 -0.480816699336025
  125. gene7 gene8 gene9
  126. sample1 0.0963807716927326 0.662156893062263 0.208172932525086
  127. sample2 0.539755455242193 1.47170367690911 1.49012703771358
  128. sample3 1.58825740605464 1.45028669829143 0.598326456688562
  129. sample4 -0.657083351867339 -0.898327219170378 -0.954777049324065
  130. sample5 -0.361154308568598 0.483054809616393 0.746190587520392
  131. sample6 0.216320311457586 -2.00123658452703 -1.05618677027001
  132. gene10 group
  133. sample1 0.408704885887645 A
  134. sample2 -1.88799565452592 A
  135. sample3 0.715517402355723 A
  136. sample4 0.225760261211124 B
  137. sample5 0.977301055115831 B
  138. sample6 -0.420681584016793 B
  139. > library(ggplot2)
  140. > zz=1:(ncol(gfj4)-1);zz
  141. [1] 1 2 3 4 5 6 7 8 9 10
  142. > gfj5=list()
  143. > for(i in zz){
  144. + gfj5[[i]] = ggplot(data = gfj4)+
  145. + geom_boxplot(mapping = aes(x = group,
  146. + y = colnames(gfj4)[i],
  147. + color = group))+
  148. + geom_jitter(mapping = aes(x = group,
  149. + y = colnames(gfj4)[i],
  150. + color = group))+
  151. + theme_bw()
  152. + }
  153. > library(patchwork)
  154. > wrap_plots(gfj5,ncol = 5,widths =10 ,heights = 30) #这句代码参考Sinsoledad同学

简化的代码

  1. library(tidyverse)
  2. gfj = matrix(rnorm(60),ncol=6);gfj
  3. rownames(gfj)=paste0(rep("gene",times=10),1:10);gfj
  4. colnames(gfj)=paste0(rep("sample",times=6),1:6);gfj
  5. gfj2 = data.frame(t(gfj))
  6. gfj3 = mutate(gfj2,group = rep(c("A","B"),each = 3))
  7. colnames(gfj3)[11]="group";gfj3
  8. class(gfj3)
  9. class(gfj3$gene1)
  10. library(ggplot2)
  11. p = list()
  12. for(i in 1:(ncol(gfj3)-1)){
  13. p[[i]] = ggplot(gfj3,aes_string(x = 'group',y = colnames(gfj3)[i]))+
  14. geom_boxplot(aes(color = group))+
  15. geom_jitter()+
  16. theme_bw()+
  17. labs(title = colnames(gfj3)[i])
  18. }
  19. library(patchwork)
  20. wrap_plots(p,ncol = 3,widths =10 ,heights = 30)

输出结果为
image.png
我的箱线图怎么只有线了???(黑人问号脸)

3 批量重命名(删空格)

  1. > num=1:5
  2. > for(i in num){
  3. + name=paste(rep("gene",times=5),i,sep=" ")
  4. + file.create(name)
  5. + }
  6. > filenames=list.files()
  7. > filenames
  8. [1] "20210703作业.Rproj" "20210713作业.R" "gene 1"
  9. [4] "gene 2" "gene 3" "gene 4"
  10. [7] "gene 5"
  11. > class(filenames)
  12. [1] "character"
  13. > for (i in filenames){
  14. + newname<-sub(' ','',i)
  15. + file.rename(i,newname)
  16. + }

结果如下:
image.png

image.png