if (data_1$Sample.Name%in%(1:6))
{data_1$Sample.Name=("con%d",data_1$Sample.Name)
}else
data_1$Sample.Name=("EXP%d",data_1$Sample.Name-6)
报错信息Warning message:
In if (data_1$Sample.Name %in% (1:6)) { :
the condition has length > 1 and only the first element will be used
所以是if后面括号里的内容不对,但是不知道怎么改。需要用到循环语句吗?
按数据框长度循环,逐个替换。参考代码如下:
data_1<-read.csv('rt3.csv')
for(i in 1:length(data_1$SampleName)){
if (data_1$SampleName[i]%in%1:3)
{data_1$SampleName[i]=paste0('CON',data_1$SampleName[i])
}else{
data_1$SampleName[i]=paste0('EXP',as.numeric(data_1$SampleName[i])-3)
}
}
print(data_1)
运行结果:
index SampleName ComponentName Area
1 785 CON1 1 123
2 786 CON1 1_1 2245
3 787 CON2 3 111
4 788 CON2 3_1 52552
5 789 CON3 4 101
6 790 EXP1 5 2636
7 791 EXP1 5_1 223
8 792 EXP2 6 666
9 793 EXP3 4 78
10 794 EXP3 4_1 120
11 795 EXP3 4_2 256
如有帮助,请点采纳。