【发布时间】:2020-07-29 17:26:27
【问题描述】:
我有一个有点复杂的问题。我有两个数据库BD 和BD2。对于BD 中的每一行,我想搜索整个BD2 并获取一些信息:Sum, Mean, Sd 等。
使用Sum,我成功地使它工作,但对于Mean, Sd, Median,我想获取向量,然后应用这些函数。
为了更清楚,这里是代码。对于sum,它起作用了。但是我现在想将满足条件的值保存在一个向量中,然后计算Mean,Sd,Median。我试图将向量从基础 BD 中提取出来,但没有任何效果,或者有些棘手,我无法弄清楚。
for (i in 1:dim(BD)[1])
{
for (j in 1:dim(BD2)[1])
{
if((BD$Start.Date[i]<BD2$X_TIMESTAMP[j]) && (BD2$X_TIMESTAMP[j]<BD$End.Date[i]) && (BD$Linea[i]==BD2$Linea[j]))
{
vl = BD2$X_VALUE[j]
BD$vec[i] = paste(BD$vec[i],vl,sep="")
#vect = as.numeric(BD$vec[i])
BD$Sum[i] = BD$Sum[i]+ BD2$X_VALUE[j]
#BD$Average[i] = mean(vect)
}
}
}
我尝试在for 语句之前创建vec。但它仍然不起作用。
错误总是一样的:Error in $<-.data.frame(*tmp*, "vec", value = list(NULL, NULL, NULL, : replacement has 47 rows, data has 530
【问题讨论】:
-
如果您可以包含有关两个数据集结构的更多信息可能会有所帮助 - 这些是数据框还是列表?
vec已经是 BD 中的变量名了吗?也许显示每个数据帧中的前几行或str()的输出? -
我添加了更多信息。
-
如果您包含您想要的输出结果可能会有所帮助:也许尝试创建一个小示例(5 行?)并向我们展示您希望会发生什么?您的数据集的图像有所帮助,但仍不清楚
vec到底是什么或应该是什么样子..