Pergunta

Estou usando strsplit em R para adicionar nomes ao boxplot, mas isso me dá um erro.

strng <- "one%two%three"
tt <- strsplit(strng,"%",fixed=TRUE)

e então

boxplot(param~grp,data=snp,horizontal=TRUE,names=tt)

isso rende

ls = list(c("one", "two",  :
  'at' and 'labels' lengths differ, 3 != 1
Calls: boxplot ... boxplot.default -> do.call -> bxp -> do.call -> axis
Execution halted

o argumento de nomes requer um vetor e strsplit retorna uma lista.Estes são incompatíveis?

Se eu fizer

boxplot(param~grp,data=snp,horizontal=TRUE,names=c("on","two","three"))

Então está tudo bem.

Muito obrigado por sua ajuda

Foi útil?

Solução

Usar tt[[1]] ou unlist(tt) em vez de tt

boxplot(param~grp,data=snp,horizontal=TRUE,names=tt[[1]])

names argumento está esperando um vetor e tt é uma lista, então você precisa passar um vetor e não uma lista.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top