У меня есть продолжительность для слов в разговорной речи. Я хочу сравнить длительности слов в предфинальных позициях с длительностями тех же слов в финальных позициях. Вот некоторые воспроизводимые данные:
df <- data.frame(
word1 = c(sample(LETTERS[1:5], 10, replace = T)),
word2 = c(sample(LETTERS[1:5], 10, replace = T)),
word3 = c(sample(LETTERS[1:5], 10, replace = T)),
word4 = c(sample(LETTERS[1:5], 10, replace = T)),
word5 = c(sample(LETTERS[1:5], 10, replace = T)),
dur1 = c(round(abs(rnorm(10)),2)),
dur2 = c(round(abs(rnorm(10)),2)),
dur3 = c(round(abs(rnorm(10)),2)),
dur4 = c(round(abs(rnorm(10)),2)),
dur5 = c(round(abs(rnorm(10)),2))
)
df
# convert words to character:
df[,1:5] <- lapply(df[,1:5], as.character)
Предварительные позиции в этих данных включают df[,1:4]
, тогда как окончательная позиция включает только df$word5
. Теперь у меня также есть набор целевых слов, длительность которых в любом из условий я хочу нанести на блокпосты:
targets <- c("A", "C", "E")
Вопрос, на который мне трудно ответить, состоит в том, как изобразить длительности для целей в любом из условий бок о бок в блоках. Что я пробовал до сих пор это:
В предфинальной позиции я объединил слова, включенные в targets
в один вектор:
word1to4 <- c(df$word1[df$word1 %in% targets], df$word2[df$word2 %in% targets], df$word3[df$word3 %in% targets],
df$word4[df$word4 %in% targets])
и объединили их длительности в другом отдельном векторе:
dur1to4 <- c(df$dur1[df$word1 %in% targets], df$dur2[df$word2 %in% targets], df$dur3[df$word3 %in% targets],
df$dur4[df$word4 %in% targets])
и сделал то же самое для слов и длительностей слов в конечной позиции:
word5 <- df$word5[df$word5 %in% targets]
dur5 <- df$dur5[df$word5 %in% targets]
Теперь я могу изобразить длительности дофинальных и финальных слов, но, к сожалению, только в двух разных боксплотах:
par(mfrow=c(1,2))
boxplot(dur1to4 ~ word1to4, main="Words 1-4", col="red", frame=F)
boxplot(dur5 ~ word5, main="Word 5", col="blue", frame=F)
Я бы предпочел иметь длительности для целевых слов рядом в одном блокпосте. Как этого достичь?