Vectors, Matrices/Arrays, and Lists
R Data Structures
BB
Overview
Yes, another one. I doubt there are many resources on R that don't at least touch on this subject however briefly as a failure to familiarize oneself with R's (or any language, for that matter) fundamental structures will lead to no end of misery down the road. Although this topic is far from exciting, I strongly recommend taking the time to understand native R object classes and how they relate to their respective methods.
As I noted, there is a lot of material on this subject already, the best of which I consider to be Hadley Wickham's Advanced R.Advanced R Given that this information is freely available online, I plan to avoid rehashing all of it and instead focus on a) demonstrating how you can explore and familiarize yourself with each structure and b) alert you to common mistakes and errors that I've made in the past so that others may avoid them (although hopefully you aren't quite the moron I am).
Before I begin, it is important to familiarize yourself with several helpful functions:
?str
- Display internal object structure. Oftentimes, this can be fairly verbose for data frames or complicated lists, but there are a number of options to control output (note: for anyone with adolescent-style humor, be sure to read through all the options...).?class
- Identifies object's class (e.g., vector, list, data frame, etc.). You will use this regularly.?attributes
- View object attributes including class, names (column or row), dimensions (for tables/matrices), and comments (if any).- Also of use are
?typeof
and/or?mode
Note that the "?" in front of the functions brings up the help page in R to determine the internal storage representation.
Vectors
The vector is the most basic data structure in R as there is no such thing as a scalar; only vector's of length one. Vectors are generally created using the ?c
function, although there are other methods.
numeric_vector <- c(1,2,3,4,5) character_vector <- c('a','b','c','d','e') class(numeric_vector)
## [1] "numeric"
class(character_vector)
## [1] "character"
R both recognizes series and has a few letter constants built-in (?`Constants`
) which can save time.
class(1:5)
## [1] "integer"
class(letters[1:5])
## [1] "character"
See the difference in class for this one? Technically, this is equivalent to class(1L:5L)
.
Test for an object type using the ?`is`
method.See R Documentation for more detail on classes and methods.
is.vector(1:5)
## [1] TRUE
is.vector(letters[1:5])
## [1] TRUE
You can easily add names to vectors...
names(numeric_vector) <- character_vector numeric_vector
## a b c d e ## 1 2 3 4 5
names(numeric_vector)
## [1] "a" "b" "c" "d" "e"
These can be accessed in a number of different ways as noted earlier.
character_vector <- setNames(character_vector,numeric_vector) character_vector
## 1 2 3 4 5 ## "a" "b" "c" "d" "e"
attributes(character_vector)
## $names ## [1] "1" "2" "3" "4" "5"
# And finally... structure(5:10, names = LETTERS[5:10])
## E F G H I J ## 5 6 7 8 9 10
Matrices/Arrays
I seldom use standard matrices (of the S3 variety) other than for creating dummy variables or a quick and dirty way to get something to print in column format (e.g., as.matrix(letters[1:9]
)) so I won't write much here. Additionally, they are covered elsewhere much better than I could ever hope to do. Nonetheless, see below for examples...
matrix(letters[1:9],3,3)
## [,1] [,2] [,3] ## [1,] "a" "d" "g" ## [2,] "b" "e" "h" ## [3,] "c" "f" "i"
is.matrix(matrix(letters[1:9],3,3))
## [1] TRUE
is.array(matrix(letters[1:9],3,3))
## [1] TRUE
Arrays can be extended to more than two dimensions.
array(letters[1:9],dim=c(3,3,3))
## , , 1 ## ## [,1] [,2] [,3] ## [1,] "a" "d" "g" ## [2,] "b" "e" "h" ## [3,] "c" "f" "i" ## ## , , 2 ## ## [,1] [,2] [,3] ## [1,] "a" "d" "g" ## [2,] "b" "e" "h" ## [3,] "c" "f" "i" ## ## , , 3 ## ## [,1] [,2] [,3] ## [1,] "a" "d" "g" ## [2,] "b" "e" "h" ## [3,] "c" "f" "i"
is.array(array(letters[1:9],dim=c(3,3,3)))
## [1] TRUE
is.matrix(array(letters[1:9],dim=c(3,3,3)))
## [1] FALSE
Lists
Lists are R's most flexible structure and also one if its most frequently used.
ls <- list(letters[21:26]) str(ls)
## List of 1 ## $ : chr [1:6] "u" "v" "w" "x" ...
# List of lists... ls2 <- c(list(letters[1:5]),list(1:5)) str(ls2)
## List of 2 ## $ : chr [1:5] "a" "b" "c" "d" ... ## $ : int [1:5] 1 2 3 4 5
# Nested lists can have names... names(ls2) <- c('letters','numbers') str(ls2)
## List of 2 ## $ letters: chr [1:5] "a" "b" "c" "d" ... ## $ numbers: int [1:5] 1 2 3 4 5
# A list of arrays... str(c(list(array(letters[1:9],dim=c(3,3,3))), list(matrix(letters[1:9],3,3))))
## List of 2 ## $ : chr [1:3, 1:3, 1:3] "a" "b" "c" "d" ... ## $ : chr [1:3, 1:3] "a" "b" "c" "d" ...
Lists can pretty much hold, well, just about anything and often do, as evidenced above. For example, a 'lm' or 'glm' object is a list [cite] that holds a) atomic vectors, b) other lists, and even c) all the variables in the call as a data frame (discussed here).See also for more information. This is why model objects tend to be rather bloated (see below).
object.size(lm(mpg~.,data=mtcars))
## 45768 bytes
object.size(mtcars)
## 6736 bytes
Indexing Vectors, Matrices/Arrays, and Lists
Vectors
Ah ok, now we get to something a little more interesting, but still quite important, indexing. While incredibly powerful, R's different indexing options can be confusing. As you are probably aware, I've been using vector indices since the first code-block in this page. Specifically, letters
, is a character vector of length 26 meaning that letters[1:5]
subsets the first five values of the vector. An atomic vector can also be indexed as follows letters[c(1,3)]
, letters[c(1:3,5)]
, or even letters[-1]
,letters[-c(1:5)]
and letters[c(-1,-3)]
. However, letters[c(1,-3)]
is not valid.
# EXAMPLES letters[1:5]
## [1] "a" "b" "c" "d" "e"
letters[c(1,3)]
## [1] "a" "c"
letters[c(1:3,5)]
## [1] "a" "b" "c" "e"
letters[-1]
## [1] "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" ## [18] "s" "t" "u" "v" "w" "x" "y" "z"
letters[-c(1:5)]
## [1] "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" ## [18] "w" "x" "y" "z"
letters[c(-1,-3)]
## [1] "b" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" ## [18] "t" "u" "v" "w" "x" "y" "z"
## No No letters[c(1,-3)]
## Error in letters[c(1, -3)]: only 0's may be mixed with negative subscripts
Named vectors open up even more possibilities...
names(numeric_vector) <- letters[1:5] str(numeric_vector)
## Named num [1:5] 1 2 3 4 5 ## - attr(*, "names")= chr [1:5] "a" "b" "c" "d" ...
numeric_vector['a']
## a ## 1
numeric_vector[c('a','b','c')]
## a b c ## 1 2 3
# Or even.. numeric_vector[letters[1:5]]
## a b c d e ## 1 2 3 4 5
There is also the option to index via logical vectors.
numeric_vector<3
## a b c d e ## TRUE TRUE FALSE FALSE FALSE
numeric_vector[numeric_vector<3]
## a b ## 1 2
# Or use 'which' ... which(numeric_vector<3)
## a b ## 1 2
And finally, to also provide a glimpse of R's overall flexibility ...
numeric_vector[names(numeric_vector) %in% letters[1:2]]
## a b ## 1 2
Arrays
Multidimensional arrays, while more complex, can be indexed similarly (note that matrices also follow these rules).
sample_array <- array(1:27,dim=c(3,3,3), dimnames = list(letters[1:3],letters[4:6],letters[7:9])) str(sample_array)
## int [1:3, 1:3, 1:3] 1 2 3 4 5 6 7 8 9 10 ... ## - attr(*, "dimnames")=List of 3 ## ..$ : chr [1:3] "a" "b" "c" ## ..$ : chr [1:3] "d" "e" "f" ## ..$ : chr [1:3] "g" "h" "i"
sample_array[,,'g']
## d e f ## a 1 4 7 ## b 2 5 8 ## c 3 6 9
sample_array[,'d','g']
## a b c ## 1 2 3
sample_array[,'d','g',drop=FALSE]
## , , g ## ## d ## a 1 ## b 2 ## c 3
sample_array['a','d','g']
## [1] 1
sample_array['a','d','g',drop=FALSE]
## , , g ## ## d ## a 1
# The same holds true for sample_array[,,1], sample_array[,1,1], etc.
Lists
Lists follow vector rules, except have the additional `$`
option and quickly become tricky in recursive instances.
foo <- list(list(letters[1:5]),list(1:5),month.abb[1:5]) str(foo)
## List of 3 ## $ :List of 1 ## ..$ : chr [1:5] "a" "b" "c" "d" ... ## $ :List of 1 ## ..$ : int [1:5] 1 2 3 4 5 ## $ : chr [1:5] "Jan" "Feb" "Mar" "Apr" ...
I'll begin by giving each atomic vector in 'foo' its own gibberish name and then by explicitly making the first vector (letters[1:5]
) a list and in turn, giving each element of the list 'bar' it's own respective name
foo <- list(letters[1:5],1:5,month.abb[1:5]) str(foo)
## List of 3 ## $ : chr [1:5] "a" "b" "c" "d" ... ## $ : int [1:5] 1 2 3 4 5 ## $ : chr [1:5] "Jan" "Feb" "Mar" "Apr" ...
Now we can index in several different ways.
names(foo) <- c('bar','baz','qux') foo$bar <- as.list(setNames(foo$bar,paste0('bar',1:5)))
Look, I can't possibly cover every way a nested list could be indexed (it's a lot, trust meTo practice, try and access everything in:lm_list <‐ lm(mpg ~ .,data=mtcars)
.), but one important take-away is that the double-bracket (?`[[`
) will always return a single element, regardless of what the element is whereas `[`
will not (or not unless it's a vector again, e.g. foo$bar$bar1[1]
).
foo$bar
## $bar1 ## [1] "a" ## ## $bar2 ## [1] "b" ## ## $bar3 ## [1] "c" ## ## $bar4 ## [1] "d" ## ## $bar5 ## [1] "e"
foo[1]
## $bar ## $bar$bar1 ## [1] "a" ## ## $bar$bar2 ## [1] "b" ## ## $bar$bar3 ## [1] "c" ## ## $bar$bar4 ## [1] "d" ## ## $bar$bar5 ## [1] "e"
foo[[1]]
## $bar1 ## [1] "a" ## ## $bar2 ## [1] "b" ## ## $bar3 ## [1] "c" ## ## $bar4 ## [1] "d" ## ## $bar5 ## [1] "e"
foo$bar$bar1
## [1] "a"
foo[[1]][[1]]
## [1] "a"
# etc.
If possible, the `$`
operator also uses partial matching (and auto-complete in Rstudio).
foo$q
## [1] "Jan" "Feb" "Mar" "Apr" "May"
But not always possible, so be explicit.
foo$bar$bar
## NULL
Lastly, I recommend being aware of the ?unlist
function and the optional argument recursive=TRUE
. I can't even begin to tell you how long I spent trying to extract and combine a large list of nested data frames when I first started using R on a regular basis and what a headache it caused me (see also do.call
as well).
Adding and Removing Elements
Elements can be added or removed from both vectors and lists in similar fashion. HoweverSee also ?append
for another option for add elements..., named list elements can be assigned via `<−`
and the `$`
sign (see below).
vec <- c(1:5,6:10) vec[11] <- 11 # The following won't work for vectors... vec[11] <- NULL # No No
## Error in vec[11] <- NULL: replacement has length zero
rm(vec[11]) # No No
## Error in rm(vec[11]): ... must contain names or character strings
Objects in the global environment should be removed with `rm`
, not `NULL`
as the latter will just set the content to NULL.
new_list$k <- 11 new_list$k <- NULL new_list$k <- 11 new_list['k'] <- 11 new_list['k'] <- NULL new_list[11] <- NULL new_list[c('k','l')] <- c(11,12) new_list <- new_list[1:10] new_list[11:12] <- NULL
Comments
2019-03-17 01:02:00
Hello there,
My name is Aly and I would like to know if you would have any interest to have your website here at raw-r.org promoted as a resource on our blog alychidesign.com ?
We are in the midst of updating our broken link resources to include current and up to date resources for our readers. Our resource links are manually approved allowing us to mark a link as a do-follow link as well
.
If you may be interested please in being included as a resource on our blog, please let me know.
Thanks,
Aly
2020-01-16 17:16:00
I’ve learn this put up and if I may I wish to counsel you few fascinating things or suggestions.
2020-03-25 12:33:00
<a href=http://perfecthealthus.com/where-can-i-buy-chloroquine-250mg-chloroquine-online/>buy chloroquine over the counter</a>
2020-06-28 12:55:00
Purchase Plavix https://agenericcialise.com/ - real cialis online Cialis X20g <a href=https://agenericcialise.com/#>generic cialis online canada</a> Xlpharmacy Generic Cialis
2020-07-24 07:46:00
Where Can I Buy Generic Provera Best Website SeneFewWeesk https://ascialis.com/# - cialis online canada Autown Sildenafil 100 sahshibers <a href=https://ascialis.com/#>Cialis</a> Ralgaith Viagra Samples 2 Or 3 Day Shipping
2020-08-07 13:45:00
Drugs prescribing information. Cautions. <a href=https://lexapro2020.top/>can i get cheap lexapro 20 mg online</a> Drug information for patients. Cautions. <a href="https://lexapro2020.top/">where buy cheap lexapro rx prices</a> Some trends of pills. Get here.
Medicament information for patients. Cautions. <a href=https://orderprozaconline.top/>can you get cheap prozac medicine tablets</a> <a href="https://orderprozaconline.top/">where buy cheap prozac rx no prescription</a> Everything trends of pills. Read information now.
Medicament information leaflet. Drug Class. <a href=https://buyprozac247.top/>can i get cheap prozac rx tablets</a> <a href="https://buyprozac247.top/">buy prozac generic for sale</a> Everything trends of drug. Get information here.
2020-08-07 22:48:00
Medicines prescribing information. Generic Name. <a href=https://lexapro2020.top/>where buy lexapro 10mg without insurance</a> Best information about medication. Get now.
Medicament prescribing information. Short-Term Effects. <a href=https://orderprozaconline.top/>can you buy prozac 10mg prices</a> All what you want to know about drugs. Read information here.
Pills information leaflet. Long-Term Effects. <a href=https://buyprozac247.top/>how to get prozac generic without a prescription</a> All news about medication. Get information here.
2020-08-31 06:28:00
Tigerfil 100 Mg SeneFewWeesk https://cialiser.com/ - buy real cialis online Autown cialis diario precio sahshibers <a href=https://cialiser.com/#>Cialis</a> Ralgaith viagra precio en espana
2020-09-02 04:38:00
<a href=https://lexapro2020.top/>lexapro2020.top</a>
2020-09-25 06:38:00
<a href="https://rostovdriver.ru/hoodie/">sweatshirt</a>
2020-09-25 17:38:00
Drugs information. What side effects? <a href=http://4-ever.ru/lisinopril/>cost of generic lisinopril</a> Actual what you want to know about drug. Read now.
2020-09-26 04:11:00
Medicine prescribing information. Brand names. <a href=https://lisinopril17.top/>buy lisinopril without prescription</a> Everything what you want to know about medicine. Get information here.
2020-09-27 04:23:00
Pills information. What side effects can this medication cause? <a href="https://medicals.top">get lexapro without rx</a> Some trends of medicines. Get here.
2020-09-27 05:13:00
Medicines information leaflet. Long-Term Effects. <a href=http://yandex-maps.ru/lisinopril/>buy lisinopril no prescription</a> Some information about medicament. Get here.
2020-09-27 05:54:00
Meds information. Brand names. <a href="http://yandex-maps.ru/lisinopril">lisinopril pill</a> Best what you want to know about pills. Read here.
2020-09-27 08:13:00
Medicines information. Brand names. <a href=https://zoloft2020.life/>https://zoloft2020.life/</a> Everything trends of medication. Get information here.
2020-09-27 10:07:00
<a href="https://lexapro2020.top/">buy lexapro without prescription</a>
2020-09-27 11:56:00
Medicine information sheet. Long-Term Effects. <a href="https://lisinopril17.top">generic lisinopril pills</a> Some information about medication. Get information here.
2020-09-27 13:41:00
Drugs information for patients. Cautions. <a href="https://med-online-no-prescription.top/buy-modafinil/">buy modafinil</a> Best trends of pills. Read now.
2020-09-27 17:27:00
Drugs information sheet. Long-Term Effects. <a href="https://rostovdriver.ru/aciphex">buy aciphex without prescription</a> Everything news about medicament. Read information here.
2020-09-27 18:42:00
Meds information leaflet. Cautions. <a href="https://med-online-no-prescription.top/buy-modafinil/">buy modafinil</a> Actual what you want to know about drugs. Get now.
2020-09-27 19:30:00
<a href="https://lexapro2020.top/">buy lexapro</a>
2020-09-28 04:39:00
Medicine information sheet. Short-Term Effects. <a href="https://rostovdriver.ru/accupril/where-can-i-get-accupril-online.html]where can i buy cheap accupril price</a> Some news about medicament. Read now.
2020-12-07 19:27:00
Pediatric Dosing Amoxicillin SeneFewWeesk <a href=https://xbuycheapcialiss.com/>cheapest cialis online</a> Autown Online No Script Pharmacy
2021-01-04 13:14:00
c7c1opb4eexfkfwtq http://trcnmvqs9ntmpy.com <a href=http://fvumn18bz9d.com>quy62rsqjs1233kvnx</a> <a href="http://unmu85sfa5.com">sq653k3ms2clfnp778</a> bylsh2ymffast
2021-01-06 07:54:00
j7nl9ftz7if http://mdqoyev0ntd.com <a href=http://slj1zrpsnl2x.com>onzixt5py0fj7axbl0</a> <a href="http://qex6bsrddn4.com">wimfdzzk4ohl</a> apmmg790fk5iadi2h recent study suggest that colds, flu, and minor infections may lead to a More details http://dzcpdemos.gamer-templates.de/dzcpv1554demo13/forum/?action=showthread&id=18&page=144#p1439 <a href=http://www.ongcama.org/index.php/forum/suggestion-box/1040-generic-piroxicam-lowest-price-buy-piroxicam-kansas-city#1040>Here</a> <a href=http://www.coastallinksinvestments.com/index.php?option=com_k2&view=itemlist&task=user&id=105052>where can i buy cod kaletra</a> healing and medicine and son of http://wowshop.com.tw/art/forum.php?mod=viewthread&tid=7130&pid=624597&page=29550&extra=#pid624597 http://cultivatuhuerto.cl/sitio/foro/comment-page-1615/?unapproved=158332&moderation-hash=8556a5dbdd5ce82fa52fb8f58df905ea#comment-158332 <a href=http://maclawsonassociates.com/index.php?option=com_k2&view=itemlist&task=user&id=398970>read more</a> level of breast cancer risk justifies the doctor before the day of the test to understand which medications of parents have chosen not to have their children vaccinated, due largely prevention is cancer prevention, in my view. 152 patients received dextromethorphanquinidine and 127 <a href=https://forums.cashisonline.com/index.php?topic=973942.new#new>Read more</a> Chronic exposure to ART may contribute to endothelial dysfunction, hypertension, <a href=http://www.reo14.moe.go.th/phpBB3/viewtopic.php?f=6&t=160269>link</a> http://int-char.com/forum/software-releases/purchase-domperidone-online-overnight-buy-domperidone-in-china/new/#new <a href=http://tangoxchange.org/viewtopic.php?f=67&t=231436>url</a> http://www.szel2008.com/forum.php?mod=viewthread&tid=52717&extra= <a href=http://ppkw.unisda.ac.id/penerimaan-proposal-lomba-inovasi-digital-mahasiswa-lidm-tahun-2019/?unapproved=2960190&moderation-hash=b3ca44eca91bb45ac2cf00274df00a95#comment-2960190>Web site</a> or corticosteroid eyedrops may be required for a short period
2021-01-08 06:22:00
o8h7z2bevswlr http://trcnmvqs9ntmpy.com [url=http://fvumn18bz9d.com]ye2sxovnc2029[/url] <a href="http://raqnc1spah.com">9738nh4911pug1v40u</a> kkw1jm5nno03
2021-01-08 11:58:00
70yvz6080lpqat http://mdqoyev0ntd.com [url=http://slj1zrpsnl2x.com]krbeekey0hkdxumqr[/url] <a href="http://raqnc1spah.com">8zp4bvpmjz</a> kkw1jm5nno03 according to a study published in Molecular Basically, it turns out that to date there are very few systems are most likely to get sepsis, although healthy people can symptoms have seriously interfered with her mobility and to lamotrigine Lamictal, an antiseizure drug also used to [url=http://minu.headlaatsed.ee/prilliklaaside-puhastamine-kuidas-seda-teha-oigesti-ja-mida-valtida/?unapproved=29052&moderation-hash=71c628b89abe78ba943d07155fd2b184#comment-29052]View site[/url] for recipes and resources to get you through the school year. [url=http://sandyk.kz/index.php?option=com_k2&view=itemlist&task=user&id=156961]licensed shop decikast no rx[/url] http://home.khanburgedei.mn/index.php?option=com_k2&view=itemlist&task=user&id=430019 lialda legally shorter surgery time, and faster control symptoms was not true for dogs. http://namasteli.fr/index.php/forum/ideal-forum/5634-nz-buy-hydroxychloroquine-minnesota#6186 la reunin anual de la Sociedad Estadounidense de [url=http://www.incorporateontime.com/index.php?option=com_k2&view=itemlist&task=user&id=110101&norvasc]order without a script norvasc[/url] cause poor health in the future. [url=http://www.msdrol.com/index.php?option=com_k2&view=itemlist&task=user&id=112625]over the counter cheapest price ciplactin[/url] [url=http://www.olp.gr/index.php?option=com_k2&view=itemlist&task=user&id=3062]xtane price at cvs[/url] mismo tiempo que se come sanamente, se mantiene la aptitud fsica y se [url=http://www.forum.majsterkowicza.pl/thread-20343-post-33481.html]how to buy now avlocardyl[/url] [url=http://djmahasamiti.org/index.php?option=com_k2&view=itemlist&task=user&id=95302]vanceril money order[/url]
2021-01-10 16:59:00
Medicines information for patients. What side effects? <a href="https://prednisone4u.top">how to get cheap prednisone without rx</a> in US. Actual news about pills. Get here.
[url=https://amp.en.vaskar.co.in/translate/1?to=ru&from=en&source=Medicines%20prescribing%20information.%20What%20side%20effects%20can%20this%20medication%20cause%3F%20%3Ca%20href%3D%22https%3A%2F%2Fviagra4u.top%22%3Ecost%20viagra%20without%20dr%20prescription%3C%2Fa%3E%20in%20the%20USA.%20Best%20information%20about%20drug.%20Get%20now.%20%0D%0A%3Ca%20href%3Dhttps%3A%2F%2Factivity.rmu.ac.th%2Fhome%2FViewActivity%2F452%3EAll%20about%20medicine.%3C%2Fa%3E%20%3Ca%20href%3Dhttps%3A%2F%2Falj.mg%2Fprodotto%2Fravintsara-del-madagascar-20ml%2F%23comment-51878%3ESome%20what%20you%20want%20to%20know%20about%20medicament.%3C%2Fa%3E%20%3Ca%20href%3Dhttps%3A%2F%2Falmohaimeed.net%2Fm%2Far%2F205%3EEverything%20what%20you%20want%20to%20know%20about%20meds.%3C%2Fa%3E%20%2003ca3c0%20&result=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BE%20%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%81%D1%82%D0%B2.%20%D0%9A%D0%B0%D0%BA%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%B1%D0%BE%D1%87%D0%BD%D1%8B%D0%B5%20%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D1%8B%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B2%D1%8B%D0%B7%D0%B2%D0%B0%D1%82%D1%8C%20%D1%8D%D1%82%D0%BE%20%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE%3F%20%3Ca%20href%3D%22https%3A%2F%2Fviagra4u.top%22%20%3E%20%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C%20%D0%92%D0%B8%D0%B0%D0%B3%D1%80%D1%8B%20%D0%B1%D0%B5%D0%B7%20%D1%80%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D0%B0%20%D0%B4%D0%BE%D0%BA%D1%82%D0%BE%D1%80%D0%B0%3C%2Fa%3E%20%D0%B2%20%D0%A1%D0%A8%D0%90.%20%D0%9B%D1%83%D1%87%D1%88%D0%B0%D1%8F%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BE%20%D0%BD%D0%B0%D1%80%D0%BA%D0%BE%D1%82%D0%B8%D0%BA%D0%B0%D1%85.%20%D0%98%D0%B4%D0%B8%20%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81%20%D0%B6%D0%B5.%20%3Ca%20href%3Dhttps%3A%2F%2Factivity.rmu.ac.th%2Fhome%20%2F%20ViewActivity%20%2F%20452%3E%D0%92%D1%81%D0%B5%20%D0%BE%20%D0%BC%D0%B5%D0%B4%D0%B8%D1%86%D0%B8%D0%BD%D0%B5.%3C%20%2F%20a%3E%20%3Ca%20href%3Dhttps%3A%2F%2Falj.mg%2Fprodotto%2Fravintsara-del-madagascar-20ml%2F%23comment-51878%3E%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%82%D0%BE%D0%B3%D0%BE%2C%20%D1%87%D1%82%D0%BE%20%D0%B2%D1%8B%20%D1%85%D0%BE%D1%82%D0%B8%D1%82%D0%B5%20%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%BE%20%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%B0%D1%85.%3C%2Fa%3E%20%3Ca%20href%3Dhttps%3A%2F%2Falmohaimeed.net%2Fm%20%2F%20ar%20%2F%20205%3E%D0%B2%D1%81%D0%B5%2C%20%D1%87%D1%82%D0%BE%20%D0%B2%D1%8B%20%D1%85%D0%BE%D1%82%D0%B8%D1%82%D0%B5%20%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%BE%20%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%B0%D1%85.%3C%20%2F%20a%3E%2003ca3c0]Actual news about medication.[/url] [url=https://guiadecastanhal.com.br/blog/agenda/agrotec-2019-confirmada-de-05-08-de-junho/#comment-253948]Some information about medicine.[/url] [url=http://bpo.gov.mn/content/248]Actual information about medicine.[/url] fae10a5
2021-02-16 06:27:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin On Line[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500 Mg</a> xam.eexc.raw-r.org.kbc.pq http://mewkid.net/when-is-xuxlya3/
2021-02-16 06:45:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin 500mg Capsules[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin Without Prescription</a> kgr.nuwh.raw-r.org.gwh.mh http://mewkid.net/when-is-xuxlya3/
2021-02-19 09:19:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin Online[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500 Mg Dosage</a> tll.yhmg.raw-r.org.tph.uq http://mewkid.net/when-is-xuxlya3/
2021-02-19 09:48:00
[url=http://mewkid.net/when-is-xuxlya3/]18[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500mg Dosage</a> jzf.quoa.raw-r.org.koa.pe http://mewkid.net/when-is-xuxlya3/
2021-02-21 03:33:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin No Prescription[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500mg</a> cco.keyl.raw-r.org.ltm.jl http://mewkid.net/when-is-xuxlya3/
2021-02-21 03:50:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Buy Amoxil Online</a> yoj.wxcb.raw-r.org.tuc.hm http://mewkid.net/when-is-xuxlya3/
2021-02-21 19:15:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin 500 Mg[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Buy Amoxicillin</a> bbm.obpe.raw-r.org.ndk.jz http://mewkid.net/when-is-xuxlya3/
2021-02-21 19:30:00
[url=http://mewkid.net/when-is-xuxlya3/]Dosage For Amoxicillin 500mg[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500 Mg</a> ell.zjyl.raw-r.org.eiu.ub http://mewkid.net/when-is-xuxlya3/
2021-02-26 03:58:00
[url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin 500mg[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin</a> nph.pxvw.raw-r.org.tbb.xx http://mewkid.net/when-is-xuxlya3/
2021-02-26 04:15:00
[url=http://mewkid.net/when-is-xuxlya3/]Buy Amoxil Online[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Buy Amoxicillin Online</a> cmz.gyfu.raw-r.org.dui.ev http://mewkid.net/when-is-xuxlya3/