我还没有掌握编写功能的技巧,所以我正在寻求帮助!
我想创建一个计算测量技术误差(TEM)和两列相对TEM的函数。
我之前看到过有关此事的帖子,但他们似乎没有做我需要他们做的事情......
第一个:Technical error of measurement (TEM) for 3 or more participants适用于3个观察者。如果你尝试使用两个观察者来应用它,如果给出不同的结果。
第二个:Technical error of measurement in between two columns是我正在寻找的,但我希望它是一个功能而不是手动代码。
有人可以帮我把它写成我的数据函数:
n <- 23
D <- sum(MHDo1Ana$MHD.o1m1 - MHDo1Ana$MHD.o1m2)
D2 <- D^2
TEM <- sqrt((D2)/2*n)
TEM <- sqrt(((sum(MHDo1Ana$MHD.o1m1 - MHDo1Ana$MHD.o1m2)^2)) / 2 * n)
以及相对TEM的函数?
我的数据是:
MHD.o1m1 MHD.o1m2
1 46.58 46.77
2 50.66 50.50
3 51.15 50.98
4 46.54 46.16
5 45.78 45.82
6 47.83 47.98
7 43.59 43.66
8 40.27 40.59
9 50.08 50.11
10 47.66 47.69
11 46.11 46.11
12 42.90 43.34
13 38.93 39.14
14 43.89 44.05
15 48.14 48.39
16 46.20 46.11
17 51.34 51.12
18 43.48 43.41
19 46.29 46.14
20 42.26 42.28
21 45.33 45.28
22 47.43 47.23
23 37.37 37.32
非常感谢你!
答案 0 :(得分:1)
这应该做的工作:
TEM <- function(df, col1, col2){
sqrt(((sum(df[, col1] - df[, col2])^2)) / 2 * nrow(df))
}
首先通过在控制台中粘贴它来声明它,然后将其与(适用于您的数据集)一起使用:
TEM(MHDo1Ana, "MHD.o1m1", "MHD.o1m2")
MHDo1Ana <- read.table(text=" MHD.o1m1 MHD.o1m2
1 46.58 46.77
2 50.66 50.50
3 51.15 50.98
4 46.54 46.16
5 45.78 45.82
6 47.83 47.98
7 43.59 43.66
8 40.27 40.59
9 50.08 50.11
10 47.66 47.69
11 46.11 46.11
12 42.90 43.34
13 38.93 39.14
14 43.89 44.05
15 48.14 48.39
16 46.20 46.11
17 51.34 51.12
18 43.48 43.41
19 46.29 46.14
20 42.26 42.28
21 45.33 45.28
22 47.43 47.23
23 37.37 37.32")
TEM(MHDo1Ana, "MHD.o1m1", "MHD.o1m2")
[1] 1.254731
这会解决您的问题吗?