【发布时间】:2013-12-30 12:30:52
【问题描述】:
我有两个数学公式需要创建为 R 函数,然后在我的数据上运行它们。
首先让我向您展示我的数据的头部,我将其命名为“data_1”
sex age seca1 chad1 DL alog1 dig1 scifirst1 crimetech1
1 F 20 1754 1750 175 95 95 432 429
2 F 19 1594 1596 158 56 55 420 417
3 F 20 1556 1558 156 74 72 435 437
4 F 18 1648 1640 167 67 65 431 434
5 F 19 1780 1780 178 99 67 433 431
6 F 19 1610 1620 165 56 54 423 425
现在让我们看看公式和我在 r 上创建函数的尝试:
1)第一个公式(f1):
第一个公式(可通过this link访问):
这是我创建第一个公式时所做的:
f1 <- function(x, y) {sqrt(sum((x - y) ^ 2) / 2 / length(x))}
因为我需要在 data_1$alog1 和 data_1$dig1 上运行 f1... 这就是我所做的:
f1(data_1$alog1, data_1$dig1)
给出:4.3
现在的问题是:我是否正确创建了函数?它应该只给我一个价值吗?
2)第二式(f2):
第二个函数是创建一个数学公式,其中第一个函数被替换。这是公式-->(关注this link):
"f1" 在第二个公式中以红色显示,应该是第一个创建的函数(第一个公式)。
接下来,这是我为实现第二个公式所做的:
f2 <- function(x, y){(f1 / ((x + y) / 2)) * 100}
但是,当我在 data_1$alog1 和 data_1$dig1 上运行它来计算这些数据的误差变异系数时,我得到:
> f2(data_1$alog1, data_1$dig1)
Error in f1/((x + y)/2) : non-numeric argument to binary operator
谁能评论创建函数所执行的步骤以及我在“alog1 vs dig1”上运行函数的方式?
【问题讨论】:
-
我已经在回答您的原始问题时回答了所有这些问题。也许你没有看到我的更新?仔细看,应该都在那里。 stackoverflow.com/questions/20824792/…
-
请修正问题标题 - 它没有说明任何用处。