我对R来说相对较新,并会非常感激任何帮助。
我将调查数据(项目称为j01:j10)分组到地理区域(VISN),每个区域内都有站点(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))
我已经花了好几天时间,我会非常感谢任何帮助或推动正确的方向。