我是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
我知道控制和灯光都是非数字的,但我认为我在计算中考虑到了这一点。我之前做过这样的事情并且有效。任何帮助,将不胜感激。谢谢。
答案 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)
希望这有帮助!