警告:参数不是数字

时间:2017-02-23 12:43:18

标签: r

我是R的新手,所以请原谅我的无知。

我有一个看起来像这样的数据集。 jetleg.dat是我的数据集。

version: '2'

services:

  database_master:
    image: hackermd/ubuntu-trusty-python
    user: postgres
    expose:
      - 5043
    command: ['dumb-init', '/usr/lib/postgresql/9.6/bin/postgres', '-D', '/var/lib/postgresql/9.6/master']
    links:
      - database_worker
    depends_on:
      - database_worker

  database_worker:
    image: hackermd/ubuntu-trusty-python
    user: postgres
    expose:
      - 9700
    command: ['dumb-init', '/usr/lib/postgresql/9.6/bin/postgres', '-D', '/var/lib/postgresql/9.6/worker']

我需要得到治疗和移相的平均值。

当我进行计算时,

treatment    phaseshift
control       0.53
control       0.36
  light      -0.78
  light      -0.86

我收到此通知:

  

警告讯息:   在mean.default(control)中:参数不是数字或逻辑:返回NA

我知道控制和灯光都是非数字的,但我认为我在计算中考虑到了这一点。我之前做过这样的事情并且有效。任何帮助,将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

您指的是名为percent的列,我看不到。我假设它应该是$phaseshift

control <- jetlag.dat[jetlag.dat$treatment == 'control',]$phaseshift
light <- jetlag.dat[jetlag.dat$treatment == 'light',]$phaseshift

mean(control)
mean(light)

如果这仍然给你同样的错误,请尝试将其包装在as.numeric中。

mean(as.numeric(control))

答案 1 :(得分:0)

这似乎主要是语法,这是你的问题。

首先,当您的变量在上一行中为名称$percent时,请致电phaseshift

其次,$percent$phaseshift需要在括号

之前

最后,jetlag.dat$treatment == "control"语句之后不应该有逗号。

以下是您的代码的修订版本,它可以运行:

df <- data.frame(treatment = c("control", "control", "light", "light"),
             phaseshift = c(0.53, 0.36, -0.78, -0.86))

control <- df$phaseshift[df$treatment == "control"]
light <- df$phaseshift[df$treatment == "light"]

control_mean <- mean(control)
light_mean <- mean(light)

希望这有帮助!