# 1. Read in digit pitch data. # Each line is of the form # 2.287 2.487 122 119 120 122 130 118 3 1 # where the columns are # time1 time2 meanf0 %20f0 %50f0 %80f0 maxf0 minf0 digit position # Pdata <- read.table("MYL_NList4.ppout") colnames(Pdata) <- c("time1", "time2", "meanf0", "p20f0", "p50f0", "p80f0", "maxf0", "minf0", "digit", "position") Digits <- Pdata[,"digit"] Positions <- Pdata[,"position"] # Arrange means of various f0 measures by digit by position Medf0 <- matrix(nrow=10,ncol=7) for(d in 0:9){ for(p in 1:7){ Medf0[d+1,p] = mean(Pdata[(Digits==d)&(Positions==p),"p50f0"]) } } Maxf0 <- matrix(nrow=10,ncol=7) for(d in 0:9){ for(p in 1:7){ Maxf0[d+1,p] = mean(Pdata[(Digits==d)&(Positions==p),"maxf0"]) } } P20f0 <- matrix(nrow=10,ncol=7) for(d in 0:9){ for(p in 1:7){ P20f0[d+1,p] = mean(Pdata[(Digits==d)&(Positions==p),"p20f0"]) } } P80f0 <- matrix(nrow=10,ncol=7) for(d in 0:9){ for(p in 1:7){ P80f0[d+1,p] = mean(Pdata[(Digits==d)&(Positions==p),"p80f0"]) } } Minf0 <- matrix(nrow=10,ncol=7) for(d in 0:9){ for(p in 1:7){ Minf0[d+1,p] = mean(Pdata[(Digits==d)&(Positions==p),"minf0"]) } } X <- data.frame(Medf0) png(filename="MYL_DigitPitch%03d.png", width=480, height=480) plot(1:7, mean(X,na.rm=TRUE), type="b", pch="x", col="red", lty="dotted", xlab="String position", ylab="Mean F0", main="Mean F0 in phone-number style digit strings") # Now percentiles for digit 5 in different positions: yr <- range(c(P20f0[6,], Medf0[6,], P80f0[6,])) plot(1:7, X[6,], ylim=yr, type="n", xlab="String position", ylab="F0", main="F0 percentiles by Position: Digit 5") lines(1:7, P20f0[6,], type="l", lty="dotted", col="darkgreen") text(1:7, P20f0[6,], "20", col="darkgreen") lines(1:7, Medf0[6,], type="l", lty="dashed", col="red") text(1:7, Medf0[6,], "50", col="red") lines(1:7, P80f0[6,], type="l", lty="dotted", col="blue") text(1:7, P80f0[6,], "80", col="blue")