Please see inline below.

n 09/21/2018 01:07 PM, Peter Langfelder wrote:
I don't know tibble, so I'll do the same with a plain data frame:

a =
data.frame(x=LETTERS[1:4],y=1:4,z=rnorm(4),a=c("dog","cat","tree","ferret"))
a
   x y           z      a
1 A 1 -0.08264865    dog
2 B 2  0.32344426    cat
3 C 3 -0.80416061   tree
4 D 4  1.27052529 ferret
mean(a[2:3])
[1] NA
Warning message:
In mean.default(a[2:3]) : argument is not numeric or logical: returning NA
mean(as.matrix(a[2:3]))
[1] 1.338395

The reason you get an error on mean(a[2:3]) is that a[2:3] is still a data
frame (a special list) and you cannot simply apply mean to a list. You need
to first convert to a matrix or vector which can then be fed to mean().

Perhaps

sapply(a[2:3],mean)?

cheers,

Rolf


Peter


On Thu, Sep 20, 2018 at 5:50 PM Erin Hodgess <erinm.hodg...@gmail.com>
wrote:

Hello!

Here is a toy tibble problem:

xt <-
tibble(x=LETTERS[1:4],y=1:4,z=rnorm(4),a=c("dog","cat","tree","ferret"))
str(xt)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 4 obs. of  4 variables:
  $ x: chr  "A" "B" "C" "D"
  $ y: int  1 2 3 4
  $ z: num  0.3246 0.0504 0.339 0.4872
  $ a: chr  "dog" "cat" "tree" "ferret"
#No surprise
  xt %>% mean
[1] NA
Warning message:
In mean.default(.) : argument is not numeric or logical: returning NA
#surprised!
mean(xt[2:3])
[1] NA
Warning message:
In mean.default(xt[2:3]) : argument is not numeric or logical: returning NA
  xt[, 2:3] %>% mean
[1] NA
Warning message:
In mean.default(.) : argument is not numeric or logical: returning NA

I have a feeling that I'm doing something silly wrong.  Has anyone run into
this, please?  I saw something like this on this list, but didn't see a
solution.

Thanks,
Erin

______________________________________________
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.

Reply via email to