r将2个文件与for循环比较并划分某些列

mil*_*mil 2 loops r

请帮忙!

我是R的新手并试图进入它.我一直得到同样的警告:

    Warning messages:
 1: In if ((AttrSum[i, 1] == AllAttr[i:length(AllAttr), 1])) { :  the condition has length > 1 and only the first element will be used        
Run Code Online (Sandbox Code Playgroud)

我有3个csv文件.1- AttrSum [90,2]有90行,2列.... 2-TC_RC [80,12] ... 3-AllAttr [70,20]有20列70行.我想检查AttrSum [,1]的第一列是否等于TC_RC [,12]的第12列,然后将AllAttr [,19]的第19列分成AttrSum的第2列[,2]和相应的第1列(存在于TC_RC [,12] = RC_ind中.我这样做:

 AttrSum <-read.csv()
AllAttr <- read.csv()

RC_sum <-AttrSum [AttrSum [,1]%in%TC_RC[,12], col_ind]# values
RC_ind <- AttrSum [(AttrSum [,1] %in%TC_RC[,12]), 1]#names


len_attrSum <- length (AttrSum)
CV <- c()

for (i in 1:len_attrSum){


if (all(RC_ind [i] == AllAttr[i:length(AllAttr),1])){

CV[i] <- (RC_sum[i]/AllAttr[,19])

}
}
Run Code Online (Sandbox Code Playgroud)

对不起,这个基本问题,但我被困在这里.我知道我的循环有问题,但看不出它是什么.我看了R的介绍,但仍然无法得到它.

提前致谢

PS:1-AttrSum [90,2]文件.

Case    x
2   1.784309
3   2.836969
4   0.791783
5   1.812687
8   0.385067
.......
90  0.771613


2-TC_RC[80,12] file. 12 columns,80 rows.
10  41.166667   1   0.364352    47  0.944911    49       26.833333  26.833333   1   0.324537    49

100 40.625          0   0.112847    55  0.953485    107 33.625  42.25   0   0.117361    109

101 29.75          0    0.082639    111 0.917909    107 12.625  29.75   0   0.082639    111
Run Code Online (Sandbox Code Playgroud)
  1. AllAttr [90,19]档案

    Case    V16 V15 V14 V8  V9  V9.1    V10 V11 V12 V13 V1  V2  V3  V4  V5  V6  Vl7 VB
      2 0.577967    0.023869    0.021571    0.481754    0.61584 0   0   0   0   0   0.024057    0.039251    0   0   0   0   0   4
      3 0.327011    0.095338    0.025591    0.785795    0.511902    0.516165    0   0   0   0   0.033882    0.028056    0.513229    0   0   0   0   4
    
    Run Code Online (Sandbox Code Playgroud)

Jus*_*tin 5

ifR中的语句没有矢量化.因此,如果您运行代码,if(1:2 == 1:2)您将得到相同的错误.相反,将您的比较包装在allany: if(all(1:2 == 1:2))