es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cuando se utiliza sapply, obtengo el error “Error in str2lang(x) : :1:31: símbolo inesperado 1 ^”

Cuando ejecuto este código, obtengo un error:

genes<-colnames(survdata)[-c(1:3)]
univ_formulas<-sapply(genes,function(x)as.formula(paste('Surv(OS,status)~',x)))
Error in str2lang(x) : <texto>:1:31: símbolo inesperado
1: Surv(OS,status)~ ABC7-42389800N19.1
                              ^

Si elimino el elemento y vuelvo a ejecutar el código, aparece un error similar:

univ_formulas<-sapply(genes,function(x)as.formula(paste('Surv(OS,status)~',x)))
Error in str2lang(x) : <texto>:1:26: símbolo inesperado
1: Surv(OS,status)~ CITF22-1A6.3
                         ^

No sé dónde está el error.

Ejemplo de los datos:

R
head(genes,n = 50)
[1] "A1BG" "A1BG-AS1" "A2M"
[4] "A2M-AS1" "A2ML1" "A2MP1"
[7] "A3GALT2" "A4GALT" "AAAS"
[10] "AACS" "AACSP1" "AADAT"
[13] "AAED1" "AAGAB" "AAK1"
[16] "AAMDC" "AAMP" "AANAT"
[19] "AAR2" "AARD" "AARS"
[22] "AARS2" "AARSD1" "AASDH"
[25] "AASDHPPT" "AASS" "AATF"
[28] "AATK" "AATK-AS1" "ABAT"
[31] "ABC7-42389800N19.1" "ABCA1" "ABCA10"
[34] "ABCA11P" "ABCA12" "ABCA13"
[37] "ABCA17P" "ABCA2" "ABCA3"
[40] "ABCA4" "ABCA5" "ABCA6"
[43] "ABCA7" "ABCA8" "ABCA9"
[46] "ABCB1" "ABCB10" "ABCB4"
[49] "ABCB6" "ABCB7"

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error parece estar relacionado con el uso de caracteres no estándar en los nombres de genes, como “-” y “.”. Estos caracteres no están permitidos en la sintaxis de fórmula de R, por lo que deben ser eliminados o reemplazados por caracteres válidos.

    Una posible solución es reemplazar todos los caracteres no alfanuméricos por guiones bajos utilizando la función gsub() antes de crear las fórmulas:

    genes <- colnames(survdata)[-c(1:3)]
    genes <- gsub("[^[:alnum:]]", "_", genes)
    univ_formulas <- sapply(genes, function(x) as.formula(paste('Surv(OS,status)~', x)))
    

    Esto asegurará que todas las cadenas de fórmulas sean válidas y se puedan analizar sin errores.

Comments are closed.