按行进行子集以进行关联

时间:2014-11-19 15:53:34

标签: r count grouping rows

我使用332个ID从另一个数据集创建了一个数据框。我按ID分割数据帧,并希望对每个ID进行计数行,然后执行相关功能。有人可以告诉我如何计算每个ID的行数,以便从这些组中进行关联。

jlhoward your suggestion to add "table(dat1$ID)" command worked. My other problem is the function will not stop running                  
corr<-function(directory,threshold=)
#######  file location path#####                                   
for(i in 1:332){dat<-rbind(dat,read.csv(specdata1[i]))
  dat1<-dat[complete.cases(dat),]
  dat2<-(split(dat1,dat1$ID))
  list(dat2)            
  dat3<-table(dat1$ID)
  for (i in dat1>=threshold){
  x<-dat1$sulfate
  y<-dat1$nitrate
  correlations<-cor(x,y,use="pairwise.complete.obs",method="pearson")
corrs_output<-c(corrs_output,correlations) 

}

我试图关联&#34;硫酸盐&#34;和每个ID监视器的硝酸盐符合阈值。我创建了一个列表,其中包含每个ID监视器的所有完整案例。我需要这个函数来对'&#34;硫酸盐&#34;进行关联。每个ID的每组的硝酸盐和&#34; s =&gt;函数中的阈值参数。下面是主数据集&#34; specdata1&#34;中每个数据集的data.frame / list结构的开头和尾部。

  

整个data.frame / specdata1完整案例列表的负责人   相关

head(str(dat2,1))
List of 323
 $ 1  :'data.frame':    117 obs. of  4 variables:
  ..$ Date   : Factor w/ 4018 levels "2003-01-01","2003-01-02",..: 279 285 291 297 303 315 321 327 333 339 ...
  ..$ sulfate: num [1:117] 7.21 5.99 4.68 3.47 2.42 1.43 2.76 3.41 1.3 3.15 ...
  ..$ nitrate: num [1:117] 0.651 0.428 1.04 0.363 0.507 0.474 0.425 0.964 0.491 0.669 ...
  ..$ ID     : int [1:117] 1 1 1 1 1 1 1 1 1 1 ...
  

对于specdata1的所有完整案例的整个data.frame / list的尾部

tail(str(dat2,1))
$ 99 :'data.frame': 479 obs. of  4 variables:
  ..$ Date   : Factor w/ 4018 levels "2003-01-01","2003-01-02",..: 1774 1780 1786 1804 1810 1816 1822 1840 1852 1858 ...
  ..$ sulfate: num [1:479] 1.51 8.2 1.48 4.75 3.47 1.19 1.77 2.27 2.06 2.11 ...
  ..$ nitrate: num [1:479] 0.725 1.64 1.01 6.81 0.751 1.69 2.08 0.996 0.817 0.488 ...
  ..$ ID     : int [1:479] 99 99 99 99 99 99 99 99 99 99 ...
  [list output truncated]

0 个答案:

没有答案