0

我对 R 比较陌生,并且非常感谢任何帮助。

我有按地理区域 (VISN) 分组的调查数据(项目称为 j01:j10),并且每个区域内都有站点 (StaNo)。目标是将每个站点与不包括特定站点的 VISN 的平均值进行比较,并对每个项目进行此操作。这是一个小示例集:

> visn<-c(1,1,1,2,2,2)
> station<-c(101, 102, 103, 201, 202, 203)
> j01<-c(2,3,4,2,3,4)
> j02<-c(3,2,5,4,2,3)
> data<-cbind(visn, station, j01, j02)

我已经编写了 2 个函数(cliffs.d 和 sig),我需要将子集数据传递给它们。我对这些子集进行了硬编码(超过 11,000 行代码),但我不知道如何使用索引或循环来压缩。

这是我所拥有的示例,用于 1 次比较(站 101 与 VISN 1 相比,不包括站 101,项目 j01):

>visn<-subset(data, VISN==1 & StaNo!="101", select=j01)
>station<-subset(data, StaNo=="101", select=j01)>
>a<-c(cliffs.d(station, visn))
>p<-c(sig(station, visn))

这就是我需要的(我只知道如何用非向量化语言表达):

for each item in c(j01:j10)
  for each station in station
     visn<-subset(data, visn==visn[i] & station!=stano[i], select=item[i]
     station<-subset(data, station==station[i], select=item[i]
     a<-c(a, cliffs.d(station, visn))
     p<-c(p, sig(station, visn))

我已经为此花费了几天时间,我将非常感谢任何帮助或朝着正确方向前进的努力。

4

0 回答 0