Я считаю, что ваша проблема связана с тем, что -
не является символом слова. Таким образом, граница слова будет соответствовать после -
, и поэтому ее не будет захватывать. Границы слов совпадают перед первым и после последнего слова в строке, а также в любом месте, где перед символом слова или символом, отличным от слова, и после того, как это будет наоборот. Также обратите внимание, что граница слова является совпадением по нулевой ширине.
Возможна одна из возможных альтернатив
(?:(?:^|\s)-?)\d+\b
. Это будет соответствовать любым номерам, начинающимся с символа пробела и необязательной тире, и заканчивая на границе слова. Он также будет соответствовать числу, начинающемуся в начале строки.
Ваша жизнь была бы намного проще, если бы ваши данные были правильно отформатированы. Функция barplot
принимает вход vector
или matrix
. Когда вход является matrix
, R может использовать dimnames
для автоматической маркировки вещей для вас.
Попробуйте следующее:
heights1 = c(5, 5, 4.5, 4)
barplot(t(matrix(heights1, ncol=2, byrow=TRUE,
dimnames=list(c("Hindi", "English"),
c("Read/Write", "Speak")))),
main="Language ", ylab="Level",
xlab="Language starting with mostly used",
col=c("darkblue", "red"),
beside=TRUE, ylim = c(0, 6),
legend.text = TRUE,
args.legend = list(x = "topright"))
[/g0]
Если расстояние между двумя группами слишком велико, то предложение @ Здесь также подходит Дидзи. Добавьте space = c(0, .2)
в свою команду barplot
, имея в виду детали из документации:
Если
blockquote>height
- это матрица, аbeside
-TRUE
,space
может указывается двумя числами, где первое - это пробел между столбцами в одной и той же группе, а второе - пространство между группами. Если не указано явно, по умолчанию используется значениеc(0,1)
, если высота - это матрица, а рядом -TRUE
и0.2
в противном случае.
Вы должны добавить аргумент space=
к вашей функции barplot()
, где номера соответствуют пробелу перед каждой полосой.
heights1=c(5,5,4.5,4)
barplot(heights1, main="Language ", names.arg=c("Hindi R/W", "Speak" , "English
R/W","Speak"), ylab=" level ", xlab="Language starting with mostly used",
cex.names=0.8, col=c("darkblue","red"),space=c(0.2,0,0.2,0))
[/g0]