I want to edit two columns of my seurat object’s meta.data by using the following script. I always have used this and it had worked. but now it returns the following error.
Could anyone help me fix it?
b <- [email protected]
for (i in 1:nrow(b) ){
if (b[i, 'DataSet'] == "A"){
b[i , 'DataSet'] <- "H"
b[i , 'orig.ident'] <- "H"
}
if (b[i, 'DataSet'] == "B"){
b[i , 'DataSet'] <- "I"
b[i , 'orig.ident'] <- "I"
}
if (b[i, 'DataSet'] == "C"){
b[i , 'DataSet'] <- "J"
b[i , 'orig.ident'] <- "J"
}
if (b[i, 'DataSet'] == "D"){
b[i , 'DataSet'] <- "K"
b[i , 'orig.ident'] <- "K"
}
}
Error:
Error in if (b[i, "DataSet"] == "B") { :
missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In `[<-.factor`(`*tmp*`, iseq, value = "H") :
invalid factor level, NA generated
2: In `[<-.factor`(`*tmp*`, iseq, value = "H") :
invalid factor level, NA generated
I also tried this way:
b <- [email protected]
b$DataSet <- factor(b$DataSet, levels=c('A', 'B', 'C', 'D'))
b$orig.ident <- factor(b$orig.ident, levels=c('A', 'B', 'C', 'D'))
for (i in 1:nrow(b) ){
if (b[i, 'DataSet'] == "A"){
b[i , 'DataSet'] <- "H"
b[i , 'orig.ident'] <- "H"
}
if (b[i, 'DataSet'] == "B"){
b[i , 'DataSet'] <- "I"
b[i , 'orig.ident'] <- "I"
}
if (b[i, 'DataSet'] == "C"){
b[i , 'DataSet'] <- "J"
b[i , 'orig.ident'] <- "J"
}
if (b[i, 'DataSet'] == "D"){
b[i , 'DataSet'] <- "K"
b[i , 'orig.ident'] <- "K"
}
}
but again that error occurred.