Select 个变量的重复案例

Select repeated cases from a variable

我正在使用一个名为 Visitas 的数据库。它是来自医院的访问数据库,其中变量 codeep 代表患者的代码。由于患者经常去医院,患者有不止一种措施。他们有多个度量的变量称为 result,每次他们在 result 变量中获得结果时,在变量 codeep 中使用相同的代码患者进行编码。

我想要的是从每位患者获取 codeep 变量中的所有位置,以便从每位患者的变量 result 中获取平均值。

举个例子,我只为一个病人展示了我想要的东西。我使用了 which() 并在 return 中得到了向量,其中包含在 codeep 变量中重复此代码的位置。现在我想为所有患者做这个,自动化。

为了得到这个,我尝试了一个循环,但它不起作用,但也许是我的代码。

which(Visitas[,'codeep'] == 6208)

# One loop

for (i in Visitas[, 'codeep']) {
    Visitas_TRT[i] <- which(Visitas$codeep[i] == Visitas$codeep)
} 

# Double loop

for (i in Visitas[, 'codeep']) {
  for (j in Visitas[, 'codeep']) {
    Visitas_TRT <- which(Visitas$codeep[i] == Visitas$codeep[j])
  }
} 

有什么想法吗?

This is head the dataset

您似乎在寻找 ave,您可以通过每个 codeep.

创建一个具有 resultmean 的变量
Visitas <- transform(Visitas, result.M=ave(result, codeep, FUN=mean))
Visitas
#    codeep today result result.M
# 1       1     1    6.4 5.866667
# 2       2     1    4.4 6.066667
# 3       3     1    5.4 4.633333
# 4       4     1    5.6 5.766667
# 5       5     1    5.4 5.066667
# 6       1     2    4.9 5.866667
# 7       2     2    6.5 6.066667
# 8       3     2    4.9 4.633333
# 9       4     2    7.0 5.766667
# 10      5     2    4.9 5.066667
# 11      1     3    6.3 5.866667
# 12      2     3    7.3 6.066667
# 13      3     3    3.6 4.633333
# 14      4     3    4.7 5.766667
# 15      5     3    4.9 5.066667

数据:

Visitas <- expand.grid(codeep=1:5, today=1:3)
set.seed(42)
Visitas$result <- round(rnorm(nrow(Visitas), 5), 1)