【发布时间】:2018-10-15 13:02:53
【问题描述】:
我有一个简单的表格,数字递减,一列交替显示“是”/“否”。
dat <- data.frame(a = c(8,8,6,6,4,4,2,2),
b = rep(c("yes", "no"), 4))
| 8 | "yes"
| 8 | "no"
| 6 | "yes"
| 6 | "no"
.. goes down to 2 | "no"
然后,我使用rnorm 根据“是”或“否”为该表生成另一列。
dat$total_time = apply(dat, 1,
function(x) round( rnorm(1, mean=ifelse(x[2] == "yes", 140, 120), sd=10), 1))
这给了我一个类似的表格:
| 8 | "yes" | 148.3
| 8 | "no" | 135.9
etc.
我现在想要的是每行创建另一列,并为每一行从 (x-30, x) 范围内获取一个随机数,其中 x 是第三行中新生成的数字。
我试过了:
dat$test_time = apply(dat, 1, function(x) runif(1, x[3]-30, x[3]))
但我得到了错误:
x[3] 中的错误 - 30 : 二元运算符的非数字参数
如果我只尝试一下
runif(1, 0, x[3])
我还是明白了
runif(1, 0, x[3]) 中的错误:参数无效
但是当我在R studio中点击表格时,它说第三行的值是数字,所以我不知道是什么问题。
【问题讨论】: