A first year in texts

I have some long-overdue news to share! I mentioned in this post last August that things had been going well with one of my OkCupid dates. They still are :). We’ve been in a relationship for over a year now, and I’m still crazy about him.

Recently, I exported all of our texts to .csv to see if I could find anything interesting. Here’s what I found. I’ll use the results to share a little more about our relationship.

Year Overview


As you can see from this graph, our relationship moved rather quickly. We moved in together less than four months after we started dating. The graph has two major peaks: one at the beginning, and one the week when we were moving in together, when we were figuring out all the necessary details. Not surprisingly, after we moved in together, we texted a lot less. Since then, we tend to exchange around 10 to 40 texts a week. I suspect this pattern will continue in the future.

Who texts the most?


Every month, I consistently sent fewer texts than he did. On average, he sent 26 texts per week, while I sent 22.


My texts, however, were generally longer. Mine were 53 characters long on average, while his were 50.

Most Common Phrases

Him Me
Phrase Count   Phrase Count
I miss you 19 i miss you 12
u got it babe 6 i’m not sure 10
i hope you are having a nice day 4 just leaving work now 7
how are you going 4 on my way home 5
how is your day going 3 have a good sleep 5
you got it babe 3 i miss you too 5
at the library 5
i’m just heading home 4

From this you can see we miss each other frequently and I’m often on my way home, unsure or at the library. I find it amusing that “babe” was one of his most common words, when he would never call me that in person.

Smileys and Sad Faces

Number of texts containing a smiley or sad face

Type Him Me
🙂 74 67
😦 26 8

Number of texts containing multiple smiley or sad faces

Type Him Me
🙂 1 8
😦 0 0

We sent a fairly similar number of smiley faces, but he sent more than three times as many sad faces as I did. This was somewhat surprising to me because I think I’m gloomier than he is. I was much more likely to send multiple smiley faces in one text.

To conclude, his texts are smilier and more frequent. Mine are longer and more likely to contain multiple smileys. What does all this tell us about our relationship? Perhaps not a whole lot, but I at least enjoyed putting it together.

The Code

Here is the R code I used to create most of this analysis. I used Jihosoft to export my text messages as a csv and I used the text analyzer at online-utility.org to find the most common phrases.


#Read in text data
 texts <- read.csv('C:/Users/Documents/Project Support/Blog/2017/07 July/sms_20170720.csv')

#Convert dates from factor to date
 texts$Date <- as.Date(texts$Date, format = "%d/%m/%Y")

#Get month and week of text
 texts$Month <- as.Date(cut(texts$Date, breaks="month"))
 texts$Week <- as.Date(cut(texts$Date,breaks="week",start.on.monday = FALSE))
 texts$Count <- 1

#Change in/out to him/me
 texts$Sender[texts$Type=="in"] <- "Him"
 texts$Sender[texts$Type=="out"] <- "Me"

### Graph count of texts ###
 #Get count of texts by month and week
 CountByMnthSender <- aggregate(Count~Month+Sender,texts,sum)
 CountByWeekSender <- aggregate(Count~Week+Sender,texts,sum)
 CountByWeek <- aggregate(Count~Week,texts,sum)

### Graph by Week
 green <- rgb(4,185,56,max=255)
 blue <- rgb(0,195,189,max=255)
 coral <- rgb(242,119,111,max=255)
 grey <- rgb(89,89,89,max=255)

##Color Bars
 CountByWeek$Color <- grey
 #First Sleepover
 #Moved in Together
 #Kaikoura Earthquake

##Change Hovertext
 CountByWeek$MyText <- ""
 #{Decide what to call first sleepover}
 #First Sleepover
 CountByWeek$MyText[CountByWeek$Week=="2016-08-07"]<-"First Sleepover"
 #Moved in Together
 CountByWeek$MyText[CountByWeek$Week=="2016-10-16"]<-"Moved in Together"
 #Kaikoura Earthquake
 CountByWeek$MyText[CountByWeek$Week=="2016-11-13"]<-"Kaikoura Earthquake"

p2 <- plot_ly(CountByWeek, x = ~Week, y= ~Count, type = 'bar',text=~MyText, marker = list(color = CountByWeek$Color) )%>%
 layout(title = "Texts Per Week")

##create legend
 #empty plot
 plot(1, type="n", axes=FALSE, xlab="", ylab="")

 c("{First Sleepover}", "Moved In Together","Earthquake"),
 col=c(blue,coral,green), pch = c(15,15,15),
 inset = .02, bty = "n")

#Graph by month and year
 ggplot(CountByMnthSender,aes(Month,Count,fill=Sender)) +
 geom_bar(stat="identity",position='dodge') +
 ggtitle("Texts Per Month") +
 theme(plot.title = element_text(hjust = 0.5))

### Graph average length of texts ###

#Get text length
 texts$Length <- nchar(as.character(texts$Message))

#Get average text length per month
 LengthByMnth <- aggregate(Length~Month+Sender,texts,mean)

ggplot(LengthByMnth,aes(Month,Length,fill=Sender)) +
 geom_bar(stat="identity",position='dodge') +
 ggtitle("Average Length of Texts Per Month") +
 theme(plot.title = element_text(hjust = 0.5))

###Calculate number of texts per week per person
 TxtsPerWeek <- aggregate(Count~Sender,CountByWeekSender,mean)
 AvgTxtLength <- aggregate(Length~Sender,texts,mean)

###Count texts with :) and :(
texts$Smile <- grepl(":)",texts$Message,fixed=TRUE)
texts$Frown <- grepl(":(",texts$Message,fixed=TRUE)
SmileTxts <- aggregate(Smile~Sender,texts,sum)
FrownTxts <- aggregate(Frown~Sender,texts,sum)

##Count texts with multiple :) or :(
texts$SmileCount <- str_count(texts$Message,":[)]")
texts$MultiSmile <- texts$SmileCount > 1
texts$FrownCount <- str_count(texts$Message,":[(]")
texts$MultiFrown <- texts$FrownCount > 1
MultiSmile <- aggregate(MultiSmile~Sender,texts,sum)
MultiFrown <- aggregate(MultiFrown~Sender,texts,sum)

Three tiny postcards from Italy

I received these three tiny postcards in a tiny envelope from Italy (quarter-sized coin included for scale). They’re my favorites of this whole postcard project. Read on:


I am so happy to write you! In Italy dating is so warm and sweet! You see many people kissing, hugging and flowers are often a nice gift. I’m going to marry my bf (secret <3) in June, hopefully. Our first date: he gave me a small sunflower… I guessed it was not only a friendly date, but a love date. I was so happy! I was 15 years old, he was 18. Now I’m 27, he is 30! We live together and we have a cat!


Often lovers are like that, in parks cuddling. We usually have dinner out and the man pays. It is common to go to the cinema and kiss in the dark :), walking together hand in hand and hugging. We were dating 1 week and then we decided to be engaged <3. It has been almost 12 years so we would like to marry on the same day as our first date!


Marriage: Commonly the wife is going with her dad and husband with his mother. She goes in a nice old car. We want to do a very private ceremony, maybe only the two of us and two witnessess. My dad died when I was 17, so it would be too sad without him at the “real” ceremony. We’d like the ceremony in the cityhall. The ceremony with parents is so stressfull…

Distance Traveled: 11,736 miles (18,887 kilometers)

A postcard from Belarus

This card shares an interesting summer tradition:


Hello Sandra!

I’m Rostislav. I am 12 years old and I’m from Minsk, Belarus.

On the holiday of the Slavic traditions of Ivan Kupala on the night of 6 to 7 July, girls floated wreaths on the river. If the girl floated a single wreath and it quickly floated down the river, this meant an early marriage.

Distance travelled: 10,700 miles (17,220 kms)


A Postcard from Taiwan


Greeting from Taiwan!

I’m Yu-Han. Traditional Taiwanese wedding customs include marriage preparation such as sending betrothal gifts to the bride, selecting an auspicious wedding date, compiling a guest list and picking up cookies and invitations. 

On the day of the wedding, the bridegroom drives to the bride’s parents and offers tea to parents and receives their red envelopes. Before leaving bride’s home, bride’s mother will pour out a basin of water and bride will toss a fan. Those mean the bride is no longer a member of her original family. 

Coming to the bridegroom’s house, the bridesmaid will hold a circular rice filter above the bride’s head and the bride will step on the tile and crush it, which means eradication of past evils.


Distance travelled: 5,679 miles (9,139 kms)

A postcard from Moscow


Dear Sandra,

My name is Marina and I am from Moscow, Russia. I’ll tell you about my unusual and unforgettable date. It was four years ago, when I was a first course student. My friends and I went for the first time to Sain Petersburg. One evening my groupmate offered me to go to the cinema. We left our other friends and went there. (It was about 8 pm) But on our way we disputed and swore.

I decided to turn and go to the hotel. The city was really unfamiliar to me and it took me a lot of time to find my way. And after 1 hour of wandering, I ran into my guy who also was lost. We considered this situation to be good fortune and since then have never left each other.

Happy postcrossing!


Distance Travelled: 8,320 miles (13,390 kms)

Another Postcard from Russia


Hello Sandra!

Unfortunately, I’ve never been on a date so I can’t share my experience. But if I could imagine ‘the perfect date’ then it would go like this: watching favorite movies, eating some junk food and laughing a lot. Don’t think that I would experience something like that ever in my life.

Also, hope you’ll like the postcard 🙂 Have a wonderful time!


Distance travelled: 10,282 miles (16547 kilometers)

A postcard from Germany

Iris shares a relatable experience, while claiming to have bad English:


My name is Iris and I’m 18 years old. I would like to tell you about a date last November. It was well caught, but a happy ending did not exist. We had breakfast together (he has naturally invited me) and then he and I have a very nice conversation with his mother (he still lives at home. I also). Then we go into his room and have set ourselve on the couch and watched a season of “The Walking Dead”.

Everything was wonderful, but then a few days later, he was strange to me and then that was over with us…It was a nice date, although there was no happy ending…

PS: Sorry for my bad English, but I hope you understand what I would like to say 🙂

Best wishes,

Distance travelled: 11,269 miles (18,136 kms)

A Postcard from Russia


Hello Sandra!

I’m a 21 year old student from Kazan, Russia. 

Well, as you might know, Russia is a traditional patriarchal country, which personally I like. Here a guy/man is supposed to ask a girl/woman out for the first date and he is supposed to pay for her on the first date.

Many boyfriends tend to behave jealously. I don’t like it, but many girls/women put up with it, though it depends, of course. Not everyone is jealous/compliant that much.

Distance travelled: 9,836 miles (15,829 kilometers)

A Postcard from Hong Kong


Dear Sandra,

Hi and greetings from Hong Kong! I have never come across someone who asks about marriage and dating customs. HK has both Chinese traditional values and Western beliefs, so if you ask marriage here, it’d be kind of in-between. 

People are serious about relationships but also can tolerate divorce and other acts more commonly seen in the west. People also get married rather late here, usually after 30.


Distance travelled: 5,862 miles (9,433 kilometers)

A Postcard from Canada

Here’s a little story from Toronto, Canada.

New Yorker Postcard

“I’m happy to tell you how I met my wife. It was in Vancouver, where I was getting my master’s degree at the University of British Colombia. I was riding a bus to campus and a woman got on a few stops after I did. She sat down behind me and started reading a book in German. I speak German, so I started talking to her. We hit it off, and the rest is history. That was in 2003. We’re now married and living in Toronto.”

Distance traveled: 2,179 miles