Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQl中计算其他记录的差异性度量_Sql_R_Sas_Stata - Fatal编程技术网

在SQl中计算其他记录的差异性度量

在SQl中计算其他记录的差异性度量,sql,r,sas,stata,Sql,R,Sas,Stata,假设我将群体的相异性/相似性定义为群体成员与其平均值的绝对距离的平均值,我有以下格式的数据: ID RecordNumber Other_Record_Similarity i1 r1 Avg(abs(r2-avg(r2,r3)),abs(r3-avg(r2,r3)) i1 r2 Avg(abs(r1-avg(r1,r3)),abs(r3-avg(r1,r3)) i1 r3 Avg(abs(r1-avg(r1,r2)),

假设我将群体的相异性/相似性定义为群体成员与其平均值的绝对距离的平均值,我有以下格式的数据:

ID  RecordNumber  Other_Record_Similarity
i1  r1            Avg(abs(r2-avg(r2,r3)),abs(r3-avg(r2,r3))
i1  r2            Avg(abs(r1-avg(r1,r3)),abs(r3-avg(r1,r3))
i1  r3            Avg(abs(r1-avg(r1,r2)),abs(r2-avg(r1,r2))
请建议我如何使用SQl/SAS/STATA/R计算上表中的
其他记录\u相似性


谢谢

这里是一种转换为宽格式并使用行操作的通用方法:

library(reshape2)

# create sample data
data <- data.frame(ID = paste0("i", rep(1:5, each = 5)), RecordNumber = paste0("r", rep(1:5, 5)), Value = runif(25))

# convert to wide form
cast_data <- dcast(data, ID ~ RecordNumber, value.var = "Value")

# isolate values
set <- cast_data[, colnames(x) %in% data$RecordNumber]

# calculate similarity
out <- sapply(seq(set), function(k) rowMeans(abs(set[, -k] - rowMeans(set[, -k]))))

# format and convert back to long form
recast_data <- data.frame(cbind(cast_data$ID, out))
colnames(recast_data) <- colnames(cast_data)

final <- melt(recast_data, "ID", value.name = "Similarity", variable.name = "RecordNumber")
> final
    ID RecordNumber Similarity
1   1           r1 0.15866019
2   2           r1 0.11273444
3   3           r1 0.35175203
4   4           r1 0.25581895
5   5           r1 0.18711691
6   1           r2 0.17474599
7   2           r2 0.18542584
8   3           r2 0.28154138
9   4           r2 0.24019621
10  5           r2 0.20536817
11  1           r3 0.17782101
12  2           r3 0.16896563
13  3           r3 0.25620738
14  4           r3 0.14478319
15  5           r3 0.05033490
16  1           r4 0.17889032
17  2           r4 0.11219373
18  3           r4 0.24858994
19  4           r4 0.16687316
20  5           r4 0.20259905
21  1           r5 0.05547675
22  2           r5 0.16319309
23  3           r5 0.26891738
24  4           r5 0.22163225
25  5           r5 0.19568286
library(重塑2)
#创建示例数据
数据