比较两列替换值我有一个数据帧的样子:如何通过R中
df<-read.table(text="ID RE AL
140343 TC T
200012 A G
457096 GAA GAAA
555084 AG A
557151 T TAA
752311 GAATTAAT GAAT
810001 ATTTTT ATTTT
880420 GAAAAAAAAA GAAAAAAAAAA", header=TRUE, colClasses="character")
我想用字母“I”来代替较长的字符串列“RE”或“AL”而较短的一个用字母“D”代替。如果两栏都有一个字母,则不变。
预期的结果:
ID RE AL
140343 I D
200012 A G
457096 D I
555084 I D
557151 D I
752311 I D
810001 I D
880420 D I
我想我的脚本:
max <- apply(df[2:3], 1, function(x) max(nchar(x)))
index <- max > 1
if(nchar(df$RE[index])==max[index]){
df$RE[index] <- "I"
df$AL[index] <- "D"
}else{
df$RE[index] <- "D"
df$AL[index] <- "I"
}
@Jaap:感谢你对你的矫正,但为什么删除你的答案?我看到2种索引策略是互补的。 –
也许你是对的;没有删除我的答案 – Jaap