请帮忙!
我是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)
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)