R 如何比较数据配置文件随时间的变化?

R 如何比较数据配置文件随时间的变化?,r,R,我有数据集 df1= structure(list(date = c("17.02.2021", "04.11.2020", "14.11.2020", "24.11.2020", "29.11.2020", "04.12.2020", "09.12.2020"), x1 = c(0L, 0L, 7L, 0L, 0L, 0L, 0L), x2 = c(6

我有数据集

df1=
structure(list(date = c("17.02.2021", "04.11.2020", "14.11.2020", 
"24.11.2020", "29.11.2020", "04.12.2020", "09.12.2020"), x1 = c(0L, 
0L, 7L, 0L, 0L, 0L, 0L), x2 = c(674L, 632L, 1036L, 656L, 736L, 
762L, 698L), x3 = c(698L, 712L, 1140L, 704L, 784L, 786L, 722L
), x4 = c(522L, 472L, 988L, 464L, 608L, 578L, 514L), x5 = c(2408L, 
3256L, 2840L, 2840L, 2888L, 2632L, 2648L), x6 = c(1952L, 2336L, 
2480L, 2208L, 2208L, 2144L, 2016L), x7 = c(1056L, 1120L, 1504L, 
1056L, 1184L, 1184L, 1120L), x8 = c(1984L, 2464L, 2400L, 2144L, 
2208L, 2144L, 2080L), x9 = c(2336L, 2976L, 2784L, 2464L, 2784L, 
2528L, 2400L), x10 = c(2528L, 3232L, 3104L, 2848L, 2912L, 2592L, 
2656L), x11 = c(1248L, 1312L, 1504L, 1312L, 1312L, 1312L, 1248L
)), class = "data.frame", row.names = c(NA, -7L))
每行都是日期。对于第一天的数据配置文件,请单击此处

第二天有数据档案

等等

这里是参考数据集

df2=structure(list(date = c("06.11.2019", "01.12.2019", "25.01.2020", 
"04.02.2020", "09.02.2020", "14.02.2020"), x1 = c(12L, 0L, 1L, 
6L, 23L, 1L), x2 = c(1272L, 1046L, 688L, 572L, 592L, 328L), x3 = c(1032L, 
974L, 736L, 780L, 800L, 568L), x4 = c(792L, 862L, 496L, 476L, 
592L, 296L), x5 = c(2232L, 1496L, 1784L, 2792L, 3064L, 3544L), 
    x6 = c(2976L, 1904L, 1632L, 1760L, 1376L, 1440L), x7 = c(1568L, 
    1248L, 1008L, 1120L, 992L, 800L), x8 = c(1888L, 1376L, 1632L, 
    2400L, 2464L, 2720L), x9 = c(2080L, 1504L, 1760L, 2848L, 
    2912L, 3296L), x10 = c(2400L, 1552L, 1824L, 2848L, 2928L, 
    3360L), x11 = c(2400L, 1504L, 1120L, 1040L, 784L, 736L)), class = "data.frame", row.names = c(NA, 
-6L))
是否有一种方法可以将df1中每行数据的概要文件与参考数据集df2进行比较,如果概要文件相似,则为1,否则为0

两个数据集中的日期可能不同,主要问题是检测配置文件是否相似

我想要的输出。Peter的代码很好,但是否可以通过变量计算配置文件之间的差异

此代码允许您直观地比较参考和
df1
配置文件。正如您所看到的,没有一个配置文件完全匹配。有些配置文件是相似的,但如果没有@user2974951所指出的“相似”的定义,很难将其更接近于答案

库(dplyr)
图书馆(tidyr)
图书馆(GG2)
#重新构造数据以允许在数据集之间进行比较
df%
左联接(df2,by=c(“日期引用”=“日期”))%>%
左联接(df1,by=c(“日期”=“日期”))%>%
pivot\u更长(以“x”开头),名称\u到=c(“var”,“df”),名称\u sep=“\\.”%>%
变异(df=if_else(df==“x”,“ref”,“df1”),
var=因子(var,0(“x”,1:11)))
#现在,您可以绘制数据以比较配置文件;必须添加一些格式以使图表可读。
ggplot(df,aes(var,value,group=df,color=df))+
geom_线()+
面网格(日期参考~日期df1)+
实验室(color=“数据集”)+
主题(经典)+
主题(legend.position=“bottom”,
轴.text.x=元素_文本(尺寸=6,角度=90),
轴.text.y=元素_文本(大小=6),
strip.text=元素\文本(大小=6))


由(v1.0.0)于2021-04-07创建此代码允许您直观地比较参考和df1配置文件。正如您所看到的,没有一个配置文件完全匹配。有些配置文件是相似的,但如果没有@user2974951所指出的“相似”的定义,很难将其更接近于答案

库(dplyr)
图书馆(tidyr)
图书馆(GG2)
#重新构造数据以允许在数据集之间进行比较
df%
左联接(df2,by=c(“日期引用”=“日期”))%>%
左联接(df1,by=c(“日期”=“日期”))%>%
pivot\u更长(以“x”开头),名称\u到=c(“var”,“df”),名称\u sep=“\\.”%>%
变异(df=if_else(df==“x”,“ref”,“df1”),
var=因子(var,0(“x”,1:11)))
#现在,您可以绘制数据以比较配置文件;必须添加一些格式以使图表可读。
ggplot(df,aes(var,value,group=df,color=df))+
geom_线()+
面网格(日期参考~日期df1)+
实验室(color=“数据集”)+
主题(经典)+
主题(legend.position=“bottom”,
轴.text.x=元素_文本(尺寸=6,角度=90),
轴.text.y=元素_文本(大小=6),
strip.text=元素\文本(大小=6))


由(v1.0.0)于2021-04-07创建,您首先需要定义的是您想要使用的相似性标准以及您的相似性阈值水平(数据集的相似程度应视为等效)。另一个重要因素是数据的性质。例如,你是否认为你的X1…X11是独立的,或者只是同一组的不同样本。
根据答案,它可以是任何东西,从精确地比较每个df1[i,2:12]到df2[i,2:12](如果它们只是重复的或不是重复的),到将它们两者都与NA进行比较,并检查它们是否都是NA或都是已知值。介于两者之间的是检查每行数据集的每个参数的差异是否不大于最小值的0.05,例如,如果所有参数都正常,则标记行等效,或者使用类似皮尔逊相关系数的东西(
cor(x,y)
函数默认启用)例如,对于每一行,将其值与0.5进行比较(当然,0.05和0.5都是任意数字,可能需要进行一些调整)。或者,匹配点的数量(与整数完全比较或在某种程度上相似)对您来说是一个更好的指示。还有已知的样本组差异、时间序列差异或其他统计假设的标准检验。其中许多都是通过捆绑包在R中提供的,如果您喜欢其他软件包,那么它很可能已经在您可以轻松下载和安装的额外软件包中提供了。

您首先需要定义的是您想要使用的相似性标准以及您的相似性阈值(重要的因素是数据的性质)。例如,你是否认为你的X1…X11是独立的,或者只是同一组不同的样本。

根据答案,它可以是任何东西,从精确地比较每个df1[i,2:12]到df2[i,2:12](如果它们只是重复的或不是重复的)将两者与NA进行比较,并检查两者是否均为NA或均为已知值。介于两者之间的是检查每行数据集的每个参数的差值是否不大于最小值的0.05,例如,如果所有参数均为OK,则标记行等效,或使用类似Pearson的方法每行的相关系数(
cor(x,y)
函数在默认情况下启用了它),并将其值与0.5进行比较,例如(0.05和0.5当然只是任意数字,它们可能需要进行一些调整)。或者匹配点的数量(精确地作为整数进行比较,或者在某种程度上类似)还有一些已知的样本组差异、时间序列差异或其他统计假设的标准测试。其中许多在捆绑pac的R中可用