What does mfrow & mfcol stand for in par()? - r

As the title says. I ask because understanding what the abbreviation stands for helps me remember it and I'm really struggling with this parameter.
If the answer is unintuitive, can you also explain how you rationalize it?

Paul Murrell has listed some helpful mnemonics; the interpretation might be
mfrow: number of Multiple Figures (use ROW-wise).

mfrow simply stands for "MultiFrame rowwise layout". The other one is pretty obvious now: mfcol stands for MultiFrame columnwise layout.

I'm guessing here, and my guess is that it might be "matrix-frame". The parameters set up the row and column dimensions of the graphical device. "mfrow" might be thought of as matrix-frame-by-row, since the two parameters have The "mfg" parameter might be thought of as matrix-frame-get, since it addresses a location in matrix-like conceptual arrangement of device splits set up by the last call to par with either "mfcol" or "mfrow".
I suppose another hypothesis might be "-_m_ultiple-_f_igures". Still guessing after an attempt at searching with Google and MarkMail in Rhelp.

I've wondered about this myself. "multi-frame" and "multiple-figures" make all kind of sense.
In the absence of the "right" answer, I came up with the mnemonic "me first" (by) rows and by columns. Certainly wrong, but I always remember what they do!

My understanding is : mfrow == matrix filled by row; mfcols == matrix filled by column.

Related

How to combine two actions into one object

I recently just started with R a few weeks ago at the Uni. We were given a problem which we had to solve. However in this problem, I find that there are two answers that fit the question:
Verify that you created lo_heval correctly (incl. missing values). Store your verification in the object proof2.
So i find this is correct:
proof2 <- soep[1:100, c("heval", "lo_heval")]
But I think that this answer is also correct:
proof2 <- table(soep$heval, soep$lo_heval, useNA = "always")
Instead of having to decide for one answer, how do I combine them both into the object? I tried to use &, but I get an error. I may be using it wrong.
Prof. if you're seeing this, please don't fail me. I just can't decide between them.
Thanks in advance!
R lists can hold any arbitrary objects in them, so you could use
proof2 <- list(
soep[1:100, c("heval", "lo_heval")],
table(soep$heval, soep$lo_heval, useNA = "always")
)
However, to my mind 100 rows of two columns isn't proof - it's an exercise to look through those and verify things are right. (And what about the rows past 100? It's a decent spot check, but if there are more rows in the data it is more strong evidence than proof.) The table approach, on the other hand, seems succinct and effective.

generating completely new vector based on other vectors

Assume I have four-vectors (v1,v2,v3,v4), and I want to create a new vector (vec_new) that is not close to any of those four-vectors. I was thinking about interpolation and extrapolation. Do you think they are suitable? Are they also apply for vector and generate a vector of let's say 300 dimensions? Another possible option would be the transformation matrix. But I am not sure if it fit my concern. I think averaging and concatenation are not the good ones as I might be close to some of those four-vectors.
based on my problem, Imagine I divided my vectors into two categories. I need to find a vector which belongs to non-of those categories.
Any other ideas?
Per my comment, I wouldn't expect the creation of synthetic "far away" examples to be useful for realistic goals.
Even things like word antonyms are not maximally cosine-dissimilar from each other, because among the realm of all word-meaning-possibilities, antonyms are quite similar to each other. For example, 'hot' and 'cold' are considered opposites, but are the same kind of word, describing the same temperature-property, and can often be drop-in replacements for each other in the same sentences. So while they may show an interesting contrast in word-vector space, the "direction of difference" isn't going to be through the origin -- as would create maximal cosine-dissimilarity.
And in classification contexts, even a simple 2-category classifier will need actual 'negative' examples. With only positive examples, the 'vector space' won't necessarily model anything about hypothesized-but-not-actually-present negative examples. (It's nearly impossible to divide the space into two categories without training examples showing the real "boundaries".)
Still, there's an easy way to make a vector that is maximally dissimilar to another single vector: negate it. That creates a vector that's in the exact opposite direction from the original, and thus will have a cosine-similarity of -1.0.
If you have a number of vectors against which you want to find a maximally-dissimilar vector, I suspect you can't do much better than negating the average of all the vectors. That is, average the vectors, then negate that average-vector, to find the vector that's pointing exactly-opposite the average.
Good luck!

Maxima: equations: eliminate variable inside diff() expression

I have this code:
(%i3)depends([y,x],t)$
eqsp: [y=2*x,
v=diff(y,t,1)+y];
eliminate(eqsp,[y]);
(eqsp) [y=2*x,v='diff(y,t,1)+y]
(%o3) [-'diff(y,t,1)-2*x+v]
And this is a picture for better visualization:
PNG of code in wxMaxima
I was expecting that Maxima would perform a substitution of "y" in the second equation, and then differentiate to get "[-2*diff(x,t,1)-2*x+v]".
This is of course not the real problem (which has many more equations), it's just that I think I'm missing some concept here for Maxima to do what I want.
Thanks in advance for your comments. I'm a newbie in Stackoverflow and in Maxima, sorry if I made some mistake.

What is the R equivalent of numpy "stride" indexing?

In numpy if you have an array x you can access it's elements with a 'stride' (i.e. skipping some inbetween) like so: x[::2]. How can you do this in R with a vector? I've searched all over the internet and couldn't find an answer to something so simple, kind of surprising.
EDIT:
I just realized that you could use seq(), but is there no built-in method for doing this?
Ya so it turns out you just need to use
v[seq(to=length(v),by=stride)], just another quirk of R.
Though as #Igor F. mentioned they don't bother making it easier since array order is less important to statisticians. I imagine people are more likely to do something like sample(v,as.integer(length(v)/stride)) without being so verbose of course.
There is none, to my knowledge, but a hard-core R user (which I am not) would probably tell you that you are having a wrong approach. R is made for statistics, by statisticians. In their worldview, the order of the entries in an array or frame is irrelevant (or random), so there is no point in accessing them in a particular order.

Expressing set of sequences as one sequence

This is a discrete math problem, and i was hoping that someone will guide me in the right direction on how to go about solving it...
I have the following set of sequences:
a_(2n) = 8^n
This will give me the values of all the even terms
a_(2n+1) = (-3)8^n
This will give me the values of all the odd terms
I would like to know if there's a way for me to express the values of all terms (both even and odd) using only one formula! Would you please help me!
Thank you,
You can define it as follows:
a_k=[-1+2*(-1)^k]*8^(floor(k/2))

Resources