R:如何计算一个数据帧的每个值与同一行中另一个数据帧的所有元素之间的差值?

R:如何计算一个数据帧的每个值与同一行中另一个数据帧的所有元素之间的差值?,r,R,我有两个数据帧。X包括一个国家的公司及其相应日期的股价,Y包括另一个国家的公司及其相应日期的股价。 X/Y的第一列是日期,以下列包括公司的股价(一列代表一家公司)。以下是数据X的外观: 目标是找到每天股价相对差异最小的成对公司(一家来自X,一家来自Y)。因此,我必须计算公司x1和所有公司y1,y2,…,yn每天t的价格之间的相对差异。然后,每个t的x2和y1,y2,…,yn之间的相对差值。。。。。。依此类推。我设法用两个for循环来完成它。下一个问题是结果没有保存在向量中。因此,我创建了向量k

我有两个数据帧。X包括一个国家的公司及其相应日期的股价,Y包括另一个国家的公司及其相应日期的股价。 X/Y的第一列是日期,以下列包括公司的股价(一列代表一家公司)。以下是数据X的外观:


目标是找到每天股价相对差异最小的成对公司(一家来自X,一家来自Y)。因此,我必须计算公司x1和所有公司y1,y2,…,yn每天t的价格之间的相对差异。然后,每个t的x2和y1,y2,…,yn之间的相对差值。。。。。。依此类推。

我设法用两个for循环来完成它。下一个问题是结果没有保存在向量中。因此,我创建了向量k来获得for循环结果的向量

k <- numeric(0)
  for(i in 2:ncol(X)){
   for (j in 2:ncol(Y)){
    k <- c(k, (X[,i]-Y[,j]))
   }}
k

k请使用
dput()
函数嵌入X和Y数据帧中的一些样本数据?例如,
dput(头部(X,10))
。。。还有,到目前为止你试过什么?一种可能是通过日期列合并两个数据帧,然后计算出X价格和Y价格之间的差异。为什么不只是一个循环?嗨,请提供一个最小可重复的示例。这意味着给我们一份您用dput创建的数据副本,并提供足够的R代码,我们可以剪切并粘贴到我们自己的R会话中,以重现您的问题。很多人都想帮忙,但没有时间从头开始重新输入所有数据或代码。我们想去你已经去过的地方。谢谢你的帮助。我不知道如何正确复制一些样本数据。感谢您提供的关于“dput()”的提示。我将在下次使用它。我将使用
tidyr::gather(dat,company,share\u price,-dat)
获得一个带有(日期,company,share\u price)的data.frame
df
。然后进行
full_join(df,df,by=“date”)
以创建所有可能的公司对(可能很大!)。然后,您可以
mutate(PriceDiff=share\u price.x-share\u price.y)%%>%group\u by(company.x,company.y)%%>%总结(RMSDiff=sqrt(mean(PriceDiff^2))%%>%排列(RMSDiff)
,以找到平均股价最接近的公司。