-1

ストリップテキストにキャリッジリターンを挿入する方法を教えてください(ggplot2.0.9)

私は試した :

mf_labeller <- function(var, value){
  value <- as.character(value)
    if (var=="Nerves") { 
    value[value=="xv1"] <- c("xv","/r", "1")
    value[value=="xv2"]   <- c("xv","/r", "2")

  }
  return(value)
} 

facet_grid(..., labeller=mf_labeller)

戻ります

Warning in value[value == "xv1"] <- c("xv","/r", "1") : number of items to replace is not a multiple of replacement length
Warning in value[value == "xv2"] <- c("xv","/r", "2") : number of items to replace is not a multiple of replacement length

図の「xv」「xv」のみ

ご協力いただきありがとうございます

4

1 に答える 1

4

ラベラーは、長さが1の文字列を予期しており、最初の要素のみを返すことを通知しています。

/r新しい行に置き換えたことに注意してください\n

mf_labeller <- function(var, value){
  value <- as.character(value)
    if (var=="Nerves") { 
    value[value=="xv1"] <-  paste("xv","\n", "1")
    value[value=="xv2"]   <- paste("xv","\n", "2")

  }
  return(value)
} 

正規表現/文字列分割アプローチでこれを行うことができるはずだと思います。これは機能します(しかし、もっと良いものがあると確信しています)

mf_labeller <- function(var, value){
  value <- as.character(value)
  if (var=="Nerves") { 
    unscramble <- unlist(strsplit(split = '',value))
    value <- paste(paste0(unscramble[1:2],collapse=''), '\n', unscramble[3])

  }
  return(value)
}
于 2012-08-13T03:59:12.500 に答える