On 05/02/2023 2:59 p.m., Rolf Turner wrote:
On Sun, 5 Feb 2023 19:37:03 +0530
Upananda Pani <upananda.p...@gmail.com> wrote:
Dear All,
I want to create a vector p and extract first 20 observations using
subset function based on logical condition.
My code is below
p <- 0:100
I know i can extract the first 20 observations using the following
command.
q <- p[1:20]
But I want to extract the first 20 observations using subset function
which requires a logical condition. I am not able to frame the
logical condition.
The code should be
q <- subset(p, logical condition)
I am not able to do it. Please let me know what you think.
I think that you are manufacturing an unnecessary difficulty. If you
want the first 20 entries of p, use p[1:20]!!!
However, if you obdurately *insist* on using subset() you could do
subset(p,(1:length(p)) <= 20)
This works, but makes a mountain out of a molehill.
Just to build the mountain a little higher, I would use
subset(p, seq_along(p) <= 20)
You should generally avoid expressions like "1:length(p)", because they
don't do what you would expect in the unusual case that p is length 0.
Even in cases where you know p is not length 0, it's a good habit to get
into so that in the future you don't get surprised.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.