Chapter 3 Botanic Gardens Survey Analysis
The primary concern of this research is to explore how and why people use the Singapore Botanic Gardens.
An intercept survey was conducted among the visitors of the Gardens. The survey aims to capture visitors’ usage of the Gardens and their perceptions of the Gardens. Visitors of the Gardens were randomly approached to participate in the survey. Surveys were conducted within a week across both weekdays and weekends, in continuous time periods from 6AM to 10PM, and in different locations within the Northern (67 surveys) and Southern (66 surveys) cores of the Gardens (Figure 1). Survey responses were collected from the visitors during their visit in the Gardens to reflect their ‘in-the-moment’ experiences. Surveys were filled up by the surveyors through ‘a walk and talk’ approach or by the visitor filling up the digital survey themselves.
3.1 Loading data from googlesheets
data <- read_sheet("1BFAqMUUn3mDq0OdStNYnWZh0Rr392LXfPMJuXLKMXr0")
## Reading from 'Botanic Gardens Intercept Survey'
## Range "'Singapore Botanic Gardens Survey'"
A preview of the dataset:
knitr::kable(data[1:5,])
When was the last time you have visited the Singapore Botanic Gardens? | How often do you normally visit this place? | How long do you plan to stay here today? | What is your reason for visiting the Singapore Botanic Gardens today? | Who are you here with today? | How did you get here today? | What do you like about this place? | What do you not like about this place? | If you could change or add something to the park, what would that be? | I am satisfied with the layout of the Singapore Botanical Gardens. | It is easy to find my way around the gardens. | It is easy to get to the gardens. | I am satisfied with the overall flora and fauna of the gardens. | There is a variety of food available at the gardens. | The food available at the gardens is affordable. | The garden is crowded. | Seating areas are available (e.g. benches and chairs) across the gardens. | Sheltered areas area available across the gardens. | There are many different activities to do within the gardens. | I feel safe within the gardens. | What is your age? | What gender do you identify as? | What neighbourhood do you live in? | Are there enough easily accessible green areas in the city? | Last one! Is there anything else you would like to share about the Singapore Botanic Gardens - something you absolutely love or hate about this park? | (Internal) What section of the park was this survey taken in? | (Internal) What is your (interviewer) name? | (Internal) Any other remarks you have as an interviewer for this particular survey | Submitted At | Token |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Less than a week ago | Once a week | 30 minutes to an hour | To exercise, To be with my children | Alone | Car, MRT, Taxi | Flowers! | It is hot! | Bike paths | 5 | 4 | 3 | 5 | 3 | 4 | 2 | 4 | 4 | 3 | 4 | NA | Male | Upper Changi | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Atr | NULL | 1539334777 | 93dd8b8984686e04ec37ab1cf9cb0fdd |
Less than a week ago | More than once a week | < 15 minutes | To relax, To exercise | Alone | MRT | Test | Test | Test | 2 | 3 | 4 | 3 | 4 | 3 | 4 | 3 | 3 | 3 | 3 | 25 | Female | Test | FALSE | Test | Northern (nearest to Botanic Gardens MRT) | Test | Test | 1539385874 | 80bef65279d1d12a76781b85cb5f9a0b |
Less than a week ago | More than once a week | > 1 hour | To exercise | Alone | Car | Landscape | Some construction works | More shelters | 5 | 5 | 5 | 5 | 5 | 4 | 4 | 3 | 2 | 4 | 5 | 45 | Female | Bishan | TRUE | Love the people here | Northern (nearest to Botanic Gardens MRT) | Aishah | She comes here everyday and recognises the regulars, Super friendly, will come despite the rain | 1539387428 | 2336e1f367eebaa1d9487e5bd03076c3 |
Less than a week ago | Once a week | > 1 hour | To meet others, To exercise | Siblings | NA | Nature and environment and it’s very big sometimes I get lost | Nothing | Nothin lg | 4 | 5 | 5 | 4 | 4 | 3 | 3 | 3 | 3 | 4 | 4 | 60 | Female | Bukit Timah | TRUE | No | Northern (nearest to Botanic Gardens MRT) | Aishah | Slightly impatient to get it done. Had to explain certain terms in questionnaire esp open ended parts. | 1539388179 | 8b7c852a65acc7f03ee9d54cc6f3b73c |
Within the last month | 1-3 times a month | 30 minutes to an hour | To be with my children, To exercise, To relax | Children | On foot, MRT | It’s huge | Runners footseps | Intro more animal attraction | 4 | 4 | 4 | 4 | 3 | 3 | 4 | 3 | 3 | 3 | 4 | 35 | Male | By timah | TRUE | Lake | Northern (nearest to Botanic Gardens MRT) | Aishah | Kid likes roosters | 1539388698 | 74db6c9551f0f6e24432078c4e9cffc1 |
3.2 Cleaning up data
3.2.1 Column names
clean_names() modifies column names with spacing within, replacing each spacing with an underscore. This makes it easier to reference the column name later on.
data <- data %>%
clean_names()
As each column name is a question from the survey, we shorten the column names by using the rename() function.
data <- data %>%
rename(last_visit = when_was_the_last_time_you_have_visited_the_singapore_botanic_gardens,
frequency_visit = how_often_do_you_normally_visit_this_place,
length_visit = how_long_do_you_plan_to_stay_here_today,
reason_visit = what_is_your_reason_for_visiting_the_singapore_botanic_gardens_today,
company_visit = who_are_you_here_with_today,
transport_mode = how_did_you_get_here_today,
like = what_do_you_like_about_this_place,
dislike = what_do_you_not_like_about_this_place,
change = if_you_could_change_or_add_something_to_the_park_what_would_that_be,
satisfaction_layout = i_am_satisfied_with_the_layout_of_the_singapore_botanical_gardens,
satisfaction_wayfinding = it_is_easy_to_find_my_way_around_the_gardens,
satisfaction_access = it_is_easy_to_get_to_the_gardens,
satisfaction_florafauna = i_am_satisfied_with_the_overall_flora_and_fauna_of_the_gardens,
satisfaction_food_variety = there_is_a_variety_of_food_available_at_the_gardens,
satisfaction_food_affordability = the_food_available_at_the_gardens_is_affordable,
satisfaction_crowdedness = the_garden_is_crowded,
satisfaction_seating = seating_areas_are_available_e_g_benches_and_chairs_across_the_gardens,
satisfaction_shelter = sheltered_areas_area_available_across_the_gardens,
satisfaction_activities = there_are_many_different_activities_to_do_within_the_gardens,
satisfaction_safety = i_feel_safe_within_the_gardens,
age = what_is_your_age,
gender = what_gender_do_you_identify_as,
neighhbourhood = what_neighbourhood_do_you_live_in,
accessible_green_space = are_there_enough_easily_accessible_green_areas_in_the_city,
free_share = last_one_is_there_anything_else_you_would_like_to_share_about_the_singapore_botanic_gardens_something_you_absolutely_love_or_hate_about_this_park,
park_section = internal_what_section_of_the_park_was_this_survey_taken_in,
interviewer = internal_what_is_your_interviewer_name,
interviewer_remarks = internal_any_other_remarks_you_have_as_an_interviewer_for_this_particular_survey) %>%
select(-token)
3.2.2 Filter out “test” rows
These are rows of data where the surveyors made trial entries.
data <- data %>%
slice(-1) %>%
filter(!str_detect(interviewer, "Test")) %>%
filter(!str_detect(interviewer, "test"))
data %>%
group_by(interviewer) %>%
summarise(count=n()) %>%
arrange(desc(count))
## # A tibble: 20 x 2
## interviewer count
## <chr> <int>
## 1 Aishah 17
## 2 SK 17
## 3 Adreena 12
## 4 Kendrick 9
## 5 Jolene 8
## 6 Jonathan 7
## 7 Norio 7
## 8 Aizat 6
## 9 Alex 6
## 10 Deviana 6
## 11 Fatin 6
## 12 Irwan 6
## 13 Kana 6
## 14 tommy 6
## 15 Ka kui 4
## 16 Wyton 4
## 17 Badrul 3
## 18 Ka Kui 2
## 19 Kendrick Goh 1
## 20 Mister 1
3.2.3 Recode typos
Combining the use of mutate and recode works well in removing typos.
data <- data %>%
mutate(interviewer = recode(interviewer,
"Kendrick Goh"="Kendrick",
"Ka kui"="Ka Kui")) %>%
filter(interviewer!="Mister")
3.2.4 Changing timezone
Seems like the timezone of the entries are not correct. mutate and with_tz works well in recoding the timezone of the time column.
Plotting a simple barchart of the number of entries collected in each hour shows the temporal distribution of the responses collected. More responses were collected from 8 to 10 AM and from 5 to 7 PM, than in other time periods of the day. This could constitute towards a bias in the results as lesser responses speak of people who visit during the afternoon.
data <- data %>%
mutate(submitted_at = with_tz(submitted_at, "Singapore"))
data %>%
mutate(hour=hour(submitted_at)) %>%
ggplot(aes(hour))+
geom_histogram(binwidth=1)+
theme_fivethirtyeight() +
labs(title="How many surveys were collected in each hour of a day?", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5))
3.2.5 Convert character variables to ordered factors
Converting character variables to ordered factors is useful for ordinal data such as frequency of visit or last visit, in this survey’s context. This matters as the order we define is what the plot will display, and we want to present an order that makes sense, eg. least frequent to most frequent along the x-axis or y-axis of the plot.
visit_levels <- c("Less than a week ago","Within the last month","Within the last year","Longer than a year ago")
data <- data %>%
mutate(last_visit=parse_factor(last_visit,levels=visit_levels,ordered=T))
data %>%
filter(last_visit!="NA") %>%
ggplot(aes(last_visit)) +
geom_bar()+
theme_fivethirtyeight() +
labs(title="When was your last visit to the Gardens?", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5))+
coord_flip()
freq_visit_levels <- c("Less than every month","1-3 times a month","Once a week","More than once a week","NA")
data <- data %>%
mutate(frequency_visit=parse_factor(frequency_visit,levels=freq_visit_levels,ordered=T))
3.2.6 Adding id column
The id column helps in joining of data or the splitting of multiple responses variables as seen in the next section.
data <- data %>%
rownames_to_column("id")
3.2.7 Split multiple responses variables into separate dummy variables
This step is needed because of the multiple response questions in the survey. For example, in questions such as “how did you get here today?”, people could choose more than one option. If they chose “car” and “walk”, the response in google sheets looks like “car, walk”. That poses a problem when we want to do counts of individual choices. For example, how many people went to the gardens by car?
The resulting data is shown in the table below.
The advantage of this step is that it appends the “expanded” transport variables as separate columns to the existing dataset, allowing for further intervariable plots such as count of transport mode by frequency of visit.
table <- data %>%
separate_rows(transport_mode,sep=", ") %>% # split a column and append it into the dataset
group_by(id) %>% # shows the mode column and the id column
dplyr::count(transport_mode) %>%
spread(transport_mode, n, fill=0) %>% # shows the matrix of mode by id
select(-V1) %>%
rename_at(2:11, funs(paste0("transport_", .))) %>% #rename columns by adding transport. in front of each mode as a column name
right_join(data) %>% #join with data
select(-transport_mode)
## Joining, by = "id"
knitr::kable(table)
id | transport_Bicycle/Personal mobility device | transport_Bus | transport_Car | transport_Grab | transport_Lorry | transport_Motorbike | transport_MRT | transport_On foot | transport_Taxi | transport_ |
last_visit | frequency_visit | length_visit | reason_visit | company_visit | like | dislike | change | satisfaction_layout | satisfaction_wayfinding | satisfaction_access | satisfaction_florafauna | satisfaction_food_variety | satisfaction_food_affordability | satisfaction_crowdedness | satisfaction_seating | satisfaction_shelter | satisfaction_activities | satisfaction_safety | age | gender | neighhbourhood | accessible_green_space | free_share | park_section | interviewer | interviewer_remarks | submitted_at |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise | Alone | Landscape | Some construction works | More shelters | 5 | 5 | 5 | 5 | 5 | 4 | 4 | 3 | 2 | 4 | 5 | 45 | Female | Bishan | TRUE | Love the people here | Northern (nearest to Botanic Gardens MRT) | Aishah | She comes here everyday and recognises the regulars, Super friendly, will come despite the rain | 1539387428 |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Less than a week ago | Once a week | > 1 hour | To meet others, To exercise | Siblings | Nature and environment and it’s very big sometimes I get lost | Nothing | Nothin lg | 4 | 5 | 5 | 4 | 4 | 3 | 3 | 3 | 3 | 4 | 4 | 60 | Female | Bukit Timah | TRUE | No | Northern (nearest to Botanic Gardens MRT) | Aishah | Slightly impatient to get it done. Had to explain certain terms in questionnaire esp open ended parts. | 1539388179 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To be with my children, To exercise, To relax | Children | It’s huge | Runners footseps | Intro more animal attraction | 4 | 4 | 4 | 4 | 3 | 3 | 4 | 3 | 3 | 3 | 4 | 35 | Male | By timah | TRUE | Lake | Northern (nearest to Botanic Gardens MRT) | Aishah | Kid likes roosters | 1539388698 |
4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To exercise, To relax, To listen to and observe nature | Alone | It is very green | Construction | Nothing | 5 | 5 | 4 | 5 | 3 | 3 | 3 | 3 | 3 | 5 | 5 | 30 | Female | Tiong Bahru | TRUE | I love how it is so close to the city, yet I can still feel this closeness to nature | Northern (nearest to Botanic Gardens MRT) | Adreena | Interviewee hesitated for a while, but then kindly agreed | 1539388821 |
5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise, To relax, To walk the dog | Alone, Dog | Scenery, fresh air | No | No | 5 | 5 | 5 | 5 | 3 | 3 | 4 | 4 | 4 | 4 | 5 | 65 | Female | Farrer rd | TRUE | No | Southern (nearest to Gleneagles Hospital) | SK | She was here with her dog and lives nearby | 1539388996 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To meet others | Alone | Is green | Nil | Children playground | 5 | 5 | 4 | 5 | 3 | 3 | 4 | 3 | 3 | 3 | 4 | 35 | Male | Sengkang | TRUE | Nothing | Northern (nearest to Botanic Gardens MRT) | Adreena | He was heading to work on a saturday morning, so he put “to meet others” as the reason | 1539389262 |
7 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To exercise, To listen to and observe nature | Friends | Ambience, greenery nature | Too sanitized | More seasonal flowering plants around | 5 | 4 | 5 | 4 | 3 | 2 | 3 | 4 | 4 | 4 | 5 | 60 | Male | Queenstown | FALSE | It’s a nice place | Southern (nearest to Gleneagles Hospital) | SK | Man was in a rush to start group exercise | 1539389304 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | 1-3 times a month | 30 minutes to an hour | To get inspiration, To take photographs | Friends | The calm environment | Can’t play frisbee | Being able to play frisbee | 5 | 4 | 3 | 5 | 4 | 4 | 3 | 4 | 2 | 4 | 5 | 20 | Male | Bukit Timah | FALSE | NA | Northern (nearest to Botanic Gardens MRT) | Aishah | guys wanted to be able to play ultimate frisbee here but then park rangers will come and stop them. But they’ll play again once the park ranger goes away. | 1539389423 |
9 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To relax | Partner | Qiang in the morning | No | No | 3 | 4 | 4 | 4 | 1 | 1 | 3 | 2 | 3 | 3 | 3 | 70 | Male | Havelock | TRUE | Everything is nice | Southern (nearest to Gleneagles Hospital) | SK | Old man not very fluent in English. Survey feels a bit long. | 1539389722 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | 30 minutes to an hour | To exercise, To relax, To meet others | Friends | Green | No | No | 5 | 5 | 5 | 5 | 3 | 3 | 3 | 4 | 3 | 3 | 5 | 65 | Female | Not mentioned | TRUE | She likes it here in general | Northern (nearest to Botanic Gardens MRT) | Adreena | I translated to her in Mandarin half of the interview, then she left with her friends and family members | 1539389964 |
11 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | Once a week | < 15 minutes | To exercise | Friends | The animals here | Very hot | Shelter | 4 | 3 | 4 | 4 | 4 | 4 | 3 | 3 | 3 | 4 | 4 | 20 | Female | Sengkang | TRUE | Nil | Northern (nearest to Botanic Gardens MRT) | Aishah | There’s a Hockey stadium on the other side of the park so they’re heading there | 1539390128 |
12 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To exercise, To relax, To listen to and observe nature | Partner | Clean, fresh, refreshing and good scenery and safe | Sometimes it’s too crowded | Should have extra coffeeshops in the gardens, Jacob’s garden is only for children | 5 | 3 | 5 | 5 | 4 | 2 | 3 | 5 | 5 | 3 | 5 | 55 | Male | Thomson | TRUE | Best thing is the way the government sets a budget for maintaining this place. A lot of maintenance works here so it’s beautiful. | Southern (nearest to Gleneagles Hospital) | SK | Actually a couple, but only logged one response. Husband sounded foreign, wife sounded local. Feels very strongly about gardens being safe. | 1539390319 |
13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Within the last month | More than once a week | 15 - 30 minutes | To exercise, To meditate | Alone | Greenery and concerts | I’ve seen snakes around. Hawker center near the entrance should come back. It was affordable. Info counter is not helpful about events | Hawker center should come back. | 5 | 5 | 5 | 5 | 1 | 2 | 4 | 2 | 3 | 4 | 4 | 60 | Female | Botanic area | TRUE | People in the info counter are not helpful. Know nothing about activities here like concerts. | Southern (nearest to Gleneagles Hospital) | SK | Female sounded foreign, felt mainly safe except for snakes | 1539390775 |
14 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To exercise | Friends | National treasure | NA | More drink or food kiosks outside visitor centres | 5 | 4 | 4 | 4 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 53 | Male | Bukit timah | TRUE | More food | Northern (nearest to Botanic Gardens MRT) | Aishah | Very concerned about food kiosks and drinks. Wants more of them around. | 1539391044 |
15 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To listen to and observe nature, To take photographs, To exercise, To relax, To escape from the city, To walk the dog | Alone | The flora and fauna in the garden and the beauty of the garden | There should be more toilets in the garden | Nil | 5 | 5 | 5 | 5 | 2 | 1 | 2 | 5 | 5 | 3 | 5 | 53 | Female | Holland V | TRUE | Maybe to have affordable bistro like cafes and local snack kiosks like Old Chang Kee, Mr Bean etc that will appeal to the tourists and hungry locals | Northern (nearest to Botanic Gardens MRT) | Adreena | She’s really friendly!! We talked for quite a while | 1539391076 |
16 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To listen to and observe nature | Alone | Tropical trees and different variety of landscaping. Nice maintenance and nice people | Restaurants not good enough | The food in the restaurant both type and price | 4 | 4 | 4 | 5 | 2 | 4 | 2 | 4 | 3 | 2 | 5 | 65 | Male | Taiwan | FALSE | No | Southern (nearest to Gleneagles Hospital) | SK | Taiwanese who comes here whenever he comes to Singapore. Thinks there should be more food variety. | 1539391168 |
17 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To exercise, To relax, To escape from the city, To listen to and observe nature | Partner | Great oasis keep it green parking great | Dark at night | Light up the area more at night | 4 | 4 | 4 | 5 | 5 | 5 | 2 | 5 | 5 | 5 | 5 | 60 | Male | Newton | TRUE | There should be more lights at night | Southern (nearest to Gleneagles Hospital) | SK | Indian couple who asked me to walk with them. Logged the husband’s responses. Feels very strongly about lights at night. | 1539391608 |
18 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To relax | Alone | Very naturic | No | Idk | 5 | 5 | 5 | 5 | 4 | 4 | 5 | 4 | 4 | 4 | 4 | 35 | Female | Yio Chu Kang | TRUE | I’m not sure | Northern (nearest to Botanic Gardens MRT) | Aishah | Unsure about the questions coz first time here. | 1539392064 |
19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | Once a week | 30 minutes to an hour | To relax, To be with my children | Partner, Children | The whole surroundings the environment the green and it is quiet compared to other parks | No | No | 5 | 5 | 4 | 5 | 4 | 3 | 3 | 5 | 3 | 4 | 5 | 50 | Male | Steven road | TRUE | Grateful and blessed to be living around here | Southern (nearest to Gleneagles Hospital) | SK | With wife and daughter. Walked with him and did the survey | 1539392159 |
20 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise, To relax | Partner | Hard to find in the city, nearby, alot of activities, observe people | Not enough chairs | Add more chairs and benches | 5 | 5 | 5 | 5 | 2 | 3 | 4 | 2 | 2 | 4 | 5 | 70 | Male | Nearby Nukit Timah | TRUE | He loves it! | Northern (nearest to Botanic Gardens MRT) | Adreena | It was a verbal questionnaire. He was friendly and approachable | 1539392227 |
21 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To exercise, To relax, To escape from the city, To listen to and observe nature | Partner | Diversity of nature. The shapes and versatility of the paths. | Sometimes the crowd | No | 5 | 4 | 5 | 5 | 3 | 3 | 3 | 3 | 4 | 4 | 5 | 55 | Male | Novena | TRUE | I think it’s great to have this large garden in the middle of the city. Great that the government didn’t build buildings here instead. | Southern (nearest to Gleneagles Hospital) | SK | Foreign couple who used to live in Shanghai. Husband Caucasian, wife Asian. | 1539392725 |
22 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | 1-3 times a month | > 1 hour | To relax, To be with my children | Children, Partner | Piece of greenery in Singapore. Different plants to see | No | No | 4 | 4 | 4 | 5 | 3 | 3 | 3 | 4 | 3 | 3 | 5 | 40 | Male | Queenstown | TRUE | Nope | Southern (nearest to Gleneagles Hospital) | SK | Father in a family with two kids, feeding fishes at Swan lake | 1539393138 |
23 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 15 - 30 minutes | To exercise, To escape from the city, To listen to and observe nature, To get inspiration | Alone | Quiet | Unfamiliar faces | Nothing | 5 | 4 | 4 | 4 | 1 | 1 | 3 | 3 | 2 | 3 | 4 | 25 | Female | Holland | TRUE | Nil | Northern (nearest to Botanic Gardens MRT) | Aishah | Nil | 1539393343 |
24 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise, To relax, To listen to and observe nature | Partner | Natural, fresh air and quiet. Can see birds. | Dog poop | More space for kids to play. | 4 | 3 | 4 | 3 | 3 | 2 | 4 | 3 | 2 | 3 | 4 | 50 | Male | Newton | FALSE | Green gardens are important, green lungs of the city. Maintenance is important and maintaining capacity for tourists | Southern (nearest to Gleneagles Hospital) | SK | Couple going for a walk | 1539393756 |
25 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | > 1 hour | To listen to and observe nature, To relax | Alone | Greenery, peaceful and tranquil | People should not feed the animals | More toilets, more benches | 5 | 5 | 5 | 5 | 3 | 3 | 3 | 3 | 3 | 5 | 5 | 20 | Female | Bishan | TRUE | I love the green spaces | Northern (nearest to Botanic Gardens MRT) | Aishah | Girl is a nature lover | 1539393786 |
26 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise | Alone | Greenery, fresh air, nice envt, alot if good things | - | More signs esp for tourists | 5 | 5 | 5 | 4 | 3 | 3 | 3 | 3 | 3 | 5 | 5 | 65 | Male | Holland Road | TRUE | This is my second home | Northern (nearest to Botanic Gardens MRT) | Adreena | I felt I was interrupting him alot as I could not comprehend his tempo of conversation. But he was very friendly in general | 1539393820 |
27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Within the last year | Less than every month | > 1 hour | To listen to and observe nature, To exercise, To relax, To meet others | Friends | Greenery, exercise | Nothing! | More sheltered spaces for rainy days | 4 | 5 | 4 | 4 | 2 | 2 | 2 | 4 | 4 | 3 | 5 | 30 | Female | Hougang | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Adreena | Very friendly people from law school!! | 1539394189 |
28 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | Less than every month | > 1 hour | To exercise, To meet others, To listen to and observe nature, To get inspiration | Friends | Quite green and pleasant | Signage is lousy. They don’t tell the directions properly! | Nothing much, the signages pls! | 4 | 3 | 5 | 5 | 3 | 2 | 4 | 5 | 3 | 5 | 5 | 35 | Female | Kent ridge | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Aishah | Very nice people from law school who are passionate about survey and cheap food | 1539394195 |
29 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 30 minutes to an hour | To listen to and observe nature, To exercise | Children, Partner | Big open natural spaces | The weather | No | 5 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 3 | 2 | 5 | 30 | Male | Telok belangah | TRUE | Nope | Southern (nearest to Gleneagles Hospital) | SK | Couple with baby in pram. Second time here, first time was a few years ago | 1539394477 |
30 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | Less than every month | > 1 hour | To take photographs | Alone | The diversity of the plants and trees | Some of the signs/labels are small or not available with the flowering plants | 攼㹤愼㸰戼㹤攼㹤戼㸸㠼㸱 | 4 | 4 | 4 | 4 | 4 | 3 | 2 | 4 | 4 | 4 | 4 | 35 | Female | Choa Chu Kang | TRUE | I love that SBG is a Heritage Site now! | Northern (nearest to Botanic Gardens MRT) | Jolene | She was trying to photograph a white flower and said she’s doing this for her diploma course. She doesn’t come to the gardens often and this is a good reminder to come to the gardens more | 1539396545 |
31 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | 1-3 times a month | > 1 hour | To exercise, To relax, To listen to and observe nature, To get inspiration | Partner | Greenery | I dislike the numerous trucks driving around. I don’t know what they do. Disrupts my view and mood. The endless construction here and there. | Less noise, less vehicles | 4 | 5 | 5 | 5 | 3 | 3 | 2 | 4 | 3 | 2 | 5 | 60 | Male | Jurong west | TRUE | No, I need to get going | Northern (nearest to Botanic Gardens MRT) | Jolene | Opinionated old man who frequents the garden and is getting annoyed with the garden’s construction and truck vehicles | 1539397085 |
32 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | Less than every month | > 1 hour | To relax, To meet others, To escape from the city | Friends | Very paceful | NA | Nothing | 5 | 3 | 5 | 5 | 3 | 3 | 4 | 3 | 5 | 3 | 5 | 26 | Male | Italy | TRUE | The athmosphere | Northern (nearest to Botanic Gardens MRT) | Jolene | Two Italians, first time in Singapore, was looking for an area with trees from all over the world within a sheltered area | 1539397537 |
33 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To escape from the city | Alone | Nature, peace of mind and soul connecting earth and infinity. | Rules and Regulations | Adult theme park | 4 | 3 | 4 | 5 | 4 | 3 | 3 | 3 | 4 | 4 | 4 | 30 | Male | Malaysia | TRUE | Love about the garden structure. | Northern (nearest to Botanic Gardens MRT) | Jolene | He works here as an offences reporter from CISCO. He’s Malaysian and travels to Singapore from Johor Everyday. Been working here for 4-6 months | 1539398644 |
34 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To relax, To meet others | Partner | Beautiful greenery, good eateries | Mosquitoes for sure | Rental picnic maps and appropriate food/drinks for sale | 5 | 4 | 5 | 5 | 4 | 3 | 2 | 4 | 4 | 4 | 5 | 25 | Male | Upp Bukit timah | TRUE | It’s cook | Northern (nearest to Botanic Gardens MRT) | Jolene | Youth at a restaurant | 1539414086 |
35 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last month | Less than every month | 30 minutes to an hour | To take photographs | Alone | Picturesque | It can get too crowded | More orchid | 3 | 3 | 4 | 4 | 2 | 2 | 5 | 3 | 3 | 3 | 4 | 25 | Male | Katong | TRUE | No | Southern (nearest to Gleneagles Hospital) | Badrul | Nothing in particular | 1539423983 |
36 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To escape from the city, To relax, To be with my children | Children | Can do activity with my son | Too crowded sometimes | Not sure | 4 | 4 | 3 | 4 | 3 | 3 | 4 | 4 | 4 | 2 | 4 | 45 | Female | Paya Lebar | TRUE | No cars | Southern (nearest to Gleneagles Hospital) | Badrul | Interviewee quite undecisive with her answers | 1539425239 |
37 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | , Sightseeing | Alone | Green and old | Noisy | Don’t know yet | 3 | 2 | 4 | 3 | 3 | 2 | 3 | 4 | 4 | 3 | 4 | 29 | Male | Penang | TRUE | A lot of chicken | Southern (nearest to Gleneagles Hospital) | Badrul | Nothing in particular | 1539426156 |
38 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To take photographs | Alone | It’s very relaxing. | None. | Better wayfinding. | 4 | 3 | 4 | 4 | 3 | 3 | 2 | 3 | 3 | 3 | 5 | 34 | Male | Jurong West. | TRUE | None. | Southern (nearest to Gleneagles Hospital) | Kana | The participation was here for a specific purpose which was photography. Got the most reaction when asked about safety. His answer was, “Bro, this is Singapore”. | 1539426583 |
39 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To relax, To be with my children | Children | Pleasant and convenient. | None. | Grand wish. Just clear all the surrounding roads to keep away the traffic noise. | 5 | 3 | 4 | 3 | 1 | 2 | 4 | 4 | 3 | 3 | 5 | 39 | Male | Clementi | TRUE | Fantastic. Keep it the way it is. | Southern (nearest to Gleneagles Hospital) | Kana | He was quite relaxed, most probably due to being around the kids. Had no issues participating as long as I was ready to walk with them. A very happy visitor of the garden and had a grand wish of clearing all the cars away from the surroundings. | 1539427351 |
40 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To listen to and observe nature, To get inspiration | Partner | Native flowers, organised activities, souvenirs and the new spaces (learning forest) | Ongoing construction at learning forest. The mixed traffic of casual walkers, joggers and pets. | Better wayfinding. | 5 | 4 | 4 | 3 | 2 | 1 | 3 | 4 | 3 | 4 | 5 | 52 | Male | Ang Mo Kio | TRUE | Embed more sculptures related to cultural and historical significance. Introduce some murals as well. | Southern (nearest to Gleneagles Hospital) | Kana | It was the participants birthday and he was there with his wife. I was reluctant to disturb them but they insisted. Ended up having a chat for more than 1 hour. Being a design lecturerwith fascination for nature, he wanted to share his ideas that can be incorporated into urban planning etc. A nice way to end the day :-) | 1539434115 |
41 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To listen to and observe nature, To escape from the city, To relax | Children, Partner | Enjoying greenery | No | Food options | 5 | 5 | 5 | 5 | 3 | 1 | 2 | 5 | 3 | 3 | 5 | 70 | Male | Ang Mo kio | TRUE | Satisfied | Southern (nearest to Gleneagles Hospital) | Fatin | Old couple with relatives | 1539477484 |
42 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To exercise | Alone | Very relaxing, good plants, interested in gardening | Carpark charges | More swans/ducks in the pond | 5 | 5 | 5 | 5 | 5 | 3 | 3 | 3 | 3 | 4 | 5 | 70 | Female | Holland road | TRUE | No | Southern (nearest to Gleneagles Hospital) | Fatin | She had to rush off in the middle of the survey - so I had to walk with her | 1539477915 |
43 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To listen to and observe nature, To be with my children, To relax, To walk the dog | Children, Partner | Food and nature | None | More kids friendly zone | 5 | 5 | 5 | 5 | 5 | 3 | 4 | 5 | 3 | 5 | 5 | 30 | Female | East Coast | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Fatin | Couple with a small kid | 1539478787 |
44 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To listen to and observe nature, To get inspiration | Partner | Many types of flowers | NA | More activities | 4 | 4 | 4 | 5 | 3 | 2 | 3 | 3 | 3 | 3 | 4 | 35 | Male | Hougang | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Alex | NULL | 1539485058 |
45 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 15 - 30 minutes | To meditate, To relax | Friends | Relaxed atmosphere surrounded by greenery | NA | More varieties of plants | 5 | 5 | 4 | 5 | 4 | 4 | 4 | 5 | 5 | 5 | 4 | 25 | Male | Redhill | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Alex | NULL | 1539487295 |
46 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To be with my children | Children | Fresh air, easy to walk | NA | More shady trees | 5 | 4 | 5 | 4 | 5 | 5 | 4 | 3 | 2 | 3 | 5 | 35 | Female | Jurong | TRUE | Love that is children friendly and many types of trees to see | Southern (nearest to Gleneagles Hospital) | Alex | NULL | 1539488731 |
47 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 30 minutes to an hour | To take photographs, To escape from the city | Parents | Very green, not high rise | Sometimes noisy | More shelters | 4 | 4 | 4 | 4 | 3 | 3 | 3 | 3 | 3 | 4 | 4 | 40 | Female | Toa Payoh | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Alex | NULL | 1539490671 |
48 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To escape from the city | Alone | Relaxed place | NA | More toilets | 4 | 4 | 4 | 5 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 45 | Female | Sengkang | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Alex | NULL | 1539490829 |
49 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | 30 minutes to an hour | To take photographs | Friends | Many trees to see | NA | NA | 4 | 3 | 3 | 5 | 4 | 5 | 4 | 5 | 4 | 4 | 5 | 30 | Female | Malaysia | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Alex | NULL | 1539490982 |
50 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | , Work | Alone | Looks of visitors | Nil | Nil | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 30 | Male | Kaki Bukit | TRUE | Nil | Northern (nearest to Botanic Gardens MRT) | Wyton | Foreign worker, likely from Bangladesh/India. Works on a contract basis. This period he is working in SBG and it’s his off day. Does not understand English well and seemed reluctant to have opinions on SBG. | 1539500662 |
51 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To take photographs | Alone | Landscape, nature | Not much | Don’t know | 4 | 5 | 5 | 4 | 3 | 3 | 2 | 3 | 3 | 4 | 5 | 25 | Male | Kovan | TRUE | The birds - good opportunity for exposure for kids. | Northern (nearest to Botanic Gardens MRT) | Wyton | Photographer, came to shoot stuff. But he comes very rarely and presumably just came; doesn’t have much to say with regards to improvement. | 1539504088 |
52 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | NA | NA | > 1 hour | , Recommended location in blog | Partner | Lots of variety of plants which cannot be seen in home country | No food options. Especially cheap ones | Nil | 4 | 4 | 4 | 5 | 2 | 1 | 1 | 3 | 3 | 4 | 4 | 30 | Male | Poland | TRUE | The park is really big, it took us three hours just to explore the northern section. | Northern (nearest to Botanic Gardens MRT) | Wyton | NULL | 1539505177 |
53 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | 1-3 times a month | > 1 hour | To relax | Friends | Natural | Tre | NA | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 27 | Male | India | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Deviana | A bit unwilling to asnwer the open ended questions | 1539515713 |
54 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last month | 1-3 times a month | 30 minutes to an hour | To exercise | Friends | Nice garden | Mosquito | More food | 4 | 4 | 5 | 4 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 30 | Male | Bukit Timah | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Deviana | NULL | 1539516441 |
55 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | Once a week | 30 minutes to an hour | To relax | Partner | Garden, flower, nature | NA | NA | 4 | 4 | 5 | 5 | 3 | 2 | 4 | 3 | 3 | 3 | 3 | 40 | Female | Newton | TRUE | None | Northern (nearest to Botanic Gardens MRT) | Deviana | Answer in a rush | 1539517212 |
56 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To relax, To exercise | Partner | Very good. | Not sufficient seating areas. | More shelters. | 5 | 5 | 5 | 5 | 2 | 2 | 4 | 2 | 2 | 3 | 5 | 70 | Male | Novena. | TRUE | None. | Northern (nearest to Botanic Gardens MRT) | Kana | The uncle is a regular. | 1539561398 |
57 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | 15 - 30 minutes | To exercise | Alone | Morning fresh air and the crowd. | What is there not to like? | None. | 5 | 5 | 5 | 5 | 3 | 3 | 3 | 4 | 3 | 3 | 5 | 82 | Male | Watten Estate. | TRUE | I’m a satisfied customer. Nothing to complaint. | Northern (nearest to Botanic Gardens MRT) | Kana | The uncle was hesitant to speak on improvements. Either he wasn’t comfortable or just a happy customer. | 1539562622 |
58 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To exercise | Alone | Fantastic! Good route for morning jog. | Dog shit. | Hopefully no dogs. Add signs to tell dog owners to pick shit up | 5 | 5 | 5 | 4 | 4 | 3 | 4 | 4 | 3 | 4 | 4 | 60 | Female | You Pandan/Farreer Market | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Wyton | Had lots to say. The food used to be affordable but became more expensive after renovation. Perhaps this is after it became a world heritage site? It became more crowded after the SBG was upgraded to WHS. She really wishes people who exercise in groups would not shout and thinks that everyone should be quiet in parks. Talked about greening policy, and she agrees a lot with LKY on that. Architect. | 1539562975 |
59 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To listen to and observe nature, As a tourist. | Alone | It’s nice and commendable that they have a vast well managed garden right in the middle of the city. | None. | More shelters for rainy days. | 4 | 4 | 4 | 4 | 2 | 2 | 3 | 4 | 3 | 3 | 5 | 40 | Male | Malaysia. | TRUE | To have a garden with so much of history is an asset for the future generation. Maybe discouraging people from driving to the place would great. | Northern (nearest to Botanic Gardens MRT) | Kana | None. | 1539563127 |
60 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To exercise | Alone | Very green, near my home, hard to get a place like that in the centre of the city | Employed too many staff (too much money spent on certain things like NPARKS people w T-shirt printed customer service w khaki pants), Too many construction, prefer it to be more natural, prefer not too many buildings | As natural as possible, maintain it | 4 | 4 | 4 | 4 | 3 | 2 | 2 | 4 | 5 | 4 | 5 | 60 | Female | Coronation road | TRUE | No | Southern (nearest to Gleneagles Hospital) | Jolene | Frequent jogger! She gave feedback emphasising on better use of money and not hiring “useless staff” in the park | 1539565483 |
61 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise | Children, Friends | It’s beautiful. A sanctuary in the city | I would like more sheltered areas when it’s raining | No | 5 | 5 | 5 | 5 | 2 | 2 | 4 | 2 | 2 | 2 | 5 | 40 | Female | Holland V | TRUE | No, thank you | Southern (nearest to Gleneagles Hospital) | Jolene | She declined the survey as She was on the way to workout session. Walked and talked with her | 1539566087 |
62 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | 30 minutes to an hour | To escape from the city, To exercise | Friends | Beautiful nature and wonderful gardens to walk | Nothing | More water points | 5 | 3 | 5 | 5 | 2 | 2 | 4 | 3 | 5 | 4 | 5 | 51 | Female | AMK | TRUE | Jacob ballad gardens should be open on Monday’s | Southern (nearest to Gleneagles Hospital) | Jolene | Three ladies (not from Singapore) walking for an hour in the gardens. | 1539566514 |
63 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | 30 minutes to an hour | To get inspiration, To meditate, To take photographs, To exercise, To relax, To listen to and observe nature | Alone | Flora and fauna, very natural setting, lots of history | Nothing | More dining options | 4 | 5 | 5 | 5 | 2 | 2 | 1 | 4 | 3 | 3 | 4 | 63 | Female | Bukit Timah Road | FALSE | Very glad it’s a heritage site | Southern (nearest to Gleneagles Hospital) | Fatin | NULL | 1539644210 |
64 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To escape from the city, To exercise | Alone | Beautiful greenery | Cats at night | Nothing | 5 | 5 | 5 | 5 | 3 | 3 | 3 | 4 | 3 | 4 | 4 | 34 | Female | Tanglin | TRUE | Beautiful trees and greenery | Southern (nearest to Gleneagles Hospital) | Fatin | Nil | 1539644718 |
65 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To exercise, To listen to and observe nature | Alone | All the greenery | Trying to plant too many trees- prefer green lawns | Get rid of monitor lizards | 5 | 5 | 5 | 5 | 3 | 3 | 2 | 5 | 5 | 5 | 5 | 68 | Female | Tanglin | TRUE | Nothing | Southern (nearest to Gleneagles Hospital) | Fatin | Nil | 1539645246 |
66 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | , Recommendations, too good to miss | Partner | Everything | Nothing | Land trains | 5 | 5 | 5 | 5 | 5 | 3 | 1 | 3 | 3 | 2 | 5 | 70 | Couple | England | TRUE | Lovely gorgeous | Southern (nearest to Gleneagles Hospital) | Ka Kui | Very friendly ppl from england, first attraction they visited since they landed | 1539752250 |
67 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To meet others | , Family | Beautiful place | Hot weather | Put AC | 5 | 2 | 5 | 5 | 5 | 1 | 2 | 5 | 5 | 4 | 5 | 75 | Male | East coast | TRUE | Fresh air | Southern (nearest to Gleneagles Hospital) | Ka Kui | Very enthusiastic and friendly | 1539752622 |
68 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | NA | NA | > 1 hour | To relax, To be with my children | Children | Garden trees more than hundred yr tree and fish | None | None | 5 | 5 | 5 | 5 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 35 | Female | Tanglin | TRUE | None | Southern (nearest to Gleneagles Hospital) | Ka Kui | NULL | 1539754789 |
69 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 15 - 30 minutes | To relax | Partner | Greenery serenity | Not convenient without car | Have transport to south side | 5 | 1 | 2 | 5 | 1 | 1 | 1 | 5 | 5 | 3 | 5 | 50 | Female | Yck | FALSE | Beautiful and good exercise if convenient | NA | Ka Kui | In a rush, came here cos near gleneagle. Got appt at gleneagle | 1539755283 |
70 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | NA | > 1 hour | , Work | Alone | Cool, very nice | No | Everything is ok | 4 | 5 | 5 | 5 | 3 | 3 | 3 | 5 | 5 | 2 | 5 | 55 | Male | Woodland | TRUE | Very good! | Southern (nearest to Gleneagles Hospital) | Ka Kui | He came for research work | 1539755289 |
71 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | NA | NA | > 1 hour | To exercise, To relax | Alone | Everything | No | No | 5 | 5 | 5 | 5 | 1 | 1 | 1 | 3 | 3 | 4 | 5 | 30 | Female | Sheraton tower | TRUE | No | Northern (nearest to Botanic Gardens MRT) | Deviana | Nope | 1539756078 |
72 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To be with my children, To get inspiration, To relax, To listen to and observe nature | Children | Flowers and statues | Nothing | Free fun fair | 5 | 4 | 4 | 5 | 4 | 5 | 2 | 5 | 4 | 4 | 5 | 40 | Male | Pasir Ris | TRUE | Nice food and peaceful and love the nature | Southern (nearest to Gleneagles Hospital) | Ka Kui | Very friendly Father and Son. Son was very chatty | 1539756276 |
73 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | , Work | Alone | Organised, in order | Otter that eat fish | Get rid of otters | 5 | 5 | 5 | 5 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 65 | Female | East coast | TRUE | Tanglin gate quite isolated | Southern (nearest to Gleneagles Hospital) | Irwan | NULL | 1539756899 |
74 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | NA | > 1 hour | To relax, To take photographs, To listen to and observe nature | Partner | Orchid garden | No | No | 5 | 5 | 5 | 5 | 5 | 5 | 1 | 5 | 5 | 5 | 5 | 55 | Couple | Yotel | TRUE | Will revisit | Northern (nearest to Botanic Gardens MRT) | Deviana | No | 1539758229 |
75 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Within the last month | Less than every month | > 1 hour | To relax, Spend time with family | Parents | Quietness and tranquility | Less accessible for elderly | More stop spots for relaxing | 4 | 3 | 3 | 4 | 3 | 3 | 2 | 3 | 3 | 2 | 5 | 58 | Male | Queenstown | FALSE | Hate about the accessibility need public transport | Southern (nearest to Gleneagles Hospital) | Irwan | No | 1539758839 |
76 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To relax, Photograph | Children, Partner | Greeneries, scenery, large green field | The maps not user friendly, not enough staff to help | Add more staff to help the tourist | 4 | 2 | 4 | 4 | 3 | 3 | 2 | 2 | 1 | 3 | 5 | 25 | Female | Indonesia | TRUE | Advice for tourists, if you want to come, better come from the southern area, as it is nearer to the attractions, we come from the MRT and have to walk far. The garden itself is very pretty | Northern (nearest to Botanic Gardens MRT) | Deviana | Couple with one toddler, they are friendly and helpful to give feedback about the garden,m. | 1539759126 |
77 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | > 1 hour | To relax, To escape from the city, To see orchids | Parents | Many kinds of Orchids | Nothing | More drinks such as fruit juices | 5 | 5 | 5 | 4 | 3 | 3 | 2 | 5 | 4 | 3 | 5 | 33 | Female | Ho Chih Minh | FALSE | I love everything | Southern (nearest to Gleneagles Hospital) | Irwan | A tourist from Ho Chih Minh | 1539759911 |
78 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | 30 minutes to an hour | To relax, To take photographs | Alone | It’s a butifull place and very relaxing | Nothing | NA | 5 | 4 | 5 | 5 | 3 | 4 | 4 | 5 | 4 | 2 | 5 | 34 | Male | France | TRUE | I love place with lake | Northern (nearest to Botanic Gardens MRT) | Jonathan | NULL | 1539853324 |
79 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To exercise | Friends | The scenary | The construction | More colourful plants | 4 | 1 | 5 | 3 | 3 | 2 | 1 | 4 | 4 | 3 | 2 | 18 | Female | Tan kah kee | TRUE | No | Northern (nearest to Botanic Gardens MRT) | Jonathan | NULL | 1539853731 |
80 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | , For work | Alone | Beautiful and unique, love nature | Weather, hot | More sheltered areas | 4 | 4 | 5 | 4 | 3 | 4 | 3 | 5 | 3 | 3 | 5 | 28 | Female | Jurong | TRUE | Nature beauty, love seeing nature everyday! | Southern (nearest to Gleneagles Hospital) | Adreena | She is working at SBG as a Park Manager. | 1539854074 |
81 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | , School | Alone | Sunshine | Heat | Remove law school | 4 | 4 | 4 | 4 | 5 | 5 | 2 | 2 | 4 | 2 | 4 | 20 | Female | Clement | TRUE | I hate law school love the park | Northern (nearest to Botanic Gardens MRT) | Jonathan | Commented that results will be skewed due to the NUS Law school being close to the garden | 1539854291 |
82 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | More than once a week | 30 minutes to an hour | To relax, To exercise, To escape from the city | Alone | No pollution, no cars | Too many renovations | More water fountains, no picnic tables | 5 | 5 | 5 | 5 | 3 | 3 | 2 | 4 | 2 | 2 | 5 | 54 | Female | Bukit Timah | FALSE | More parking on weekends | Southern (nearest to Gleneagles Hospital) | Adreena | She provides uncommon answers across the surveys that I’ve conducted | 1539854573 |
83 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last month | 1-3 times a month | > 1 hour | To be with my children | Children | Spacious | Beautiful | More Water points | 5 | 5 | 5 | 5 | 4 | 3 | 2 | 3 | 3 | 4 | 4 | 35 | Female | West | TRUE | No | Northern (nearest to Botanic Gardens MRT) | Jonathan | NULL | 1539854702 |
84 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | NA | NA | > 1 hour | To relax | Alone | The temperature and the quiet | Nothing | Nothing | 5 | 5 | 5 | 5 | 3 | 3 | 1 | 5 | 5 | 3 | 5 | 33 | Female | London, UK | TRUE | It’s very peaceful! | Southern (nearest to Gleneagles Hospital) | Adreena | She’s from the UK and she seems to love the outdoor weather in Singapore! | 1539855428 |
85 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To exercise | Alone | Lovely greenery and making friends | Littering | Northern side - less attractive, so the botanics mrt area should be more attractive | 5 | 4 | 5 | 5 | 3 | 3 | 3 | 4 | 4 | 3 | 5 | 71 | Male | Bukit Timah | TRUE | It’s a loveable place and I’ve made alot of friends! | Southern (nearest to Gleneagles Hospital) | Adreena | He is really sociable and asked me on what project I’m doing | 1539856083 |
86 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | More than once a week | > 1 hour | To take photographs, To meet others | Alone | Heritage trees | Not enough signs | Add more signboards and affordable restaurant | 4 | 3 | 3 | 3 | 2 | 1 | 3 | 3 | 3 | 3 | 3 | 41 | Male | Woodlands | TRUE | Add trams more foods more signs | Southern (nearest to Gleneagles Hospital) | Adreena | - | 1539856706 |
87 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | 15 - 30 minutes | To exercise, To listen to and observe nature, To be with my children, To escape from the city, To relax, To take photographs | Children | All the garden, it’s perfect | NA | Comfortable seats | 5 | 4 | 5 | 5 | 5 | 4 | 4 | 5 | 5 | 5 | 5 | 36 | Female | Jervois road | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Kendrick | Mother with children. | 1539856928 |
88 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | 1-3 times a month | 15 - 30 minutes | To exercise | Friends | Green space, conveniently located near my office | Nothing | Food and drink kiosks | 5 | 5 | 5 | 5 | 4 | 3 | 3 | 5 | 5 | 3 | 5 | 35 | Female | Punggol | FALSE | No | Southern (nearest to Gleneagles Hospital) | Kendrick | - | 1539859215 |
89 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | Once a week | > 1 hour | To take photographs, To relax, To listen to and observe nature | Alone | Quiet at this time of the day, green | Nil | More eco spaces like the eco lake | 4 | 5 | 5 | 5 | 3 | 3 | 3 | 2 | 4 | 3 | 5 | 38 | Female | Bukit timah | TRUE | Nothing much | Northern (nearest to Botanic Gardens MRT) | Norio | Foreign lady who has been living here for around one month | 1539859419 |
90 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Less than a week ago | Once a week | 30 minutes to an hour | To exercise, To attend events (e.g. movies in the park, symphony performances, and tours) | Friends | Peaceful environment and conducive for running | Nil | More intuitive wayfinding | 4 | 4 | 5 | 5 | 3 | 2 | 3 | 4 | 3 | 4 | 5 | 29 | Male | North East | FALSE | Nil | Southern (nearest to Gleneagles Hospital) | Kendrick | Nil | 1539859581 |
91 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To escape from the city, To take photographs, To spend time with my loved ones | Friends | Peaceful | Nil | Nil | 5 | 5 | 5 | 4 | 3 | 3 | 1 | 5 | 5 | 5 | 5 | 16 | Female | Jurong West | TRUE | The atmosphere | Northern (nearest to Botanic Gardens MRT) | Norio | Picnicking with her friend at the lawn near the eco lake | 1539859945 |
92 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | < 15 minutes | To exercise, Wedding shots | Friends | Trimmed plants and grass | Too hot | Aircon | 4 | 3 | 4 | 3 | 2 | 2 | 3 | 4 | 1 | 1 | 5 | 31 | Male | Woodlands | TRUE | Bored | Northern (nearest to Botanic Gardens MRT) | Kendrick | NULL | 1539860085 |
93 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To listen to and observe nature, To escape from the city, To relax | Alone | Everything is very good | Too dark at night | More lighting in the gaedens | 5 | 3 | 5 | 5 | 4 | 3 | 1 | 4 | 3 | 3 | 4 | 31 | Female | Bukit timah | TRUE | Nil | Northern (nearest to Botanic Gardens MRT) | Norio | Chinese masters student at the Lee kuan yew school of public policy | 1539860577 |
94 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | Less than every month | 15 - 30 minutes | To exercise | Friends | Greenery | Insect | More shelter | 3 | 3 | 3 | 3 | 3 | 1 | 2 | 1 | 1 | 1 | 4 | 30 | Male | Tanglin | FALSE | Na | Southern (nearest to Gleneagles Hospital) | Kendrick | NA | 1539860597 |
95 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | < 15 minutes | , To just pass through the botanics | NA | Very nice like a garden and swans and plants and people | Too crowded on the weekends, too hot | More benches for tourist, air conditioning | 4 | 3 | 5 | 5 | 1 | 3 | 4 | 3 | 2 | 4 | 5 | 25 | Female | Bukit Timah | TRUE | Nothing it’s okay | Northern (nearest to Botanic Gardens MRT) | Aishah | Got a lot of mosquito in the garden in the evening | 1539861125 |
96 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | More than once a week | < 15 minutes | To escape from the city, To listen to and observe nature, To get inspiration, Walk to school | Friends | Nice and green. Beautiful and cool not very hot better than road | Floods when rain deep puddles and not enough lights | More drains | 3 | 3 | 5 | 3 | 2 | 3 | 3 | 4 | 2 | 4 | 5 | 25 | Male | Queenstown and cck | FALSE | Nil | Northern (nearest to Botanic Gardens MRT) | Aishah | Law students coming out from law and walking to MRT | 1539861521 |
97 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | NA | > 1 hour | To relax, To exercise | , Family | Peaceful and we’ll kept, very refreshing from the city | Mosquitoes at dusk | More fogging | 5 | 5 | 5 | 5 | 3 | 2 | 1 | 4 | 5 | 3 | 5 | 53 | Male | Bukit batok | TRUE | JuJu should put less ice in their juices | Northern (nearest to Botanic Gardens MRT) | Norio | Indian foreigner visiting his sister | 1539861703 |
98 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise, To walk the dog, Play pokemon | Alone | Nice to walk here, everything is well kept and we’ll lit even at night | Nothing | Better reception for some parts of the garden | 5 | 5 | 5 | 5 | 4 | 3 | 1 | 5 | 3 | 4 | 5 | 45 | Female | Orchard | TRUE | Great place to play Pokémon! | Southern (nearest to Gleneagles Hospital) | SK | Lady who lives near here comes everyday to walk her dog. Apparently many people come here to play pokemon | 1539862227 |
99 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To get inspiration, To meet others, To escape from the city, To relax, To exercise | Children | Good place. Fresh air. See trees. Have fun! Baby likes it here | Mosquito at night | Nil | 5 | 5 | 5 | 5 | 5 | 3 | 4 | 5 | 5 | 5 | 5 | 40 | Female | Bukit Timah | TRUE | Nice place | Northern (nearest to Botanic Gardens MRT) | Aishah | My interviewee is a helper who brings her employees toddler to the gardens from morning till evening. They pack food for lunch and dinner and enjoy the garden | 1539862411 |
100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise | Alone | Nature sounds, away from traffic. | Nothing | Nothing | 5 | 5 | 5 | 5 | 5 | 3 | 2 | 5 | 5 | 5 | 5 | 35 | Female | Tanglin | TRUE | I love the new learning forest and how theres a lot of different age groups who come here | Southern (nearest to Gleneagles Hospital) | SK | Caucasian who lives here and usually comes with her toddler but is alone here today. | 1539862647 |
101 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | , To walk through the garden to get to the other side | Friends | Clean, vibrant, refreshing | Dark at night | More lighting | 4 | 4 | 4 | 3 | 1 | 2 | 2 | 3 | 4 | 2 | 4 | 20 | Male | Hougang | TRUE | It’s a nice garden just need more lighting at night | Northern (nearest to Botanic Gardens MRT) | Aishah | Boys are going to watch a. Basketball game but decided to walk around the gardens before the game | 1539862981 |
102 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | NA | NA | > 1 hour | To escape from the city, To relax | Partner | Nature, quiet peaceful | Nothing | Nothinf | 5 | 4 | 5 | 5 | 3 | 3 | 2 | 5 | 5 | 4 | 5 | 50 | Male | USA | TRUE | Great experience! | Southern (nearest to Gleneagles Hospital) | SK | American tourist first time here with his partner | 1539863107 |
103 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | More than once a week | < 15 minutes | To escape from the city, To attend events (e.g. movies in the park, symphony performances, and tours), To meditate, To get to the school | Alone | Quiet and peaceful usually at night. | Sometimes when it rains I get wet but it that’s nature | Have more food outlets | 5 | 2 | 5 | 5 | 1 | 2 | 4 | 3 | 4 | 4 | 5 | 20 | Male | Kent ridge | FALSE | The garden is nice at night because it’s quiet and peaceful | Northern (nearest to Botanic Gardens MRT) | Aishah | Interviewee is a law student. Feels that the garden events are too far from his school so he won’t go for them. | 1539863524 |
104 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | Once a week | 15 - 30 minutes | To exercise | Friends | Peaceful, lesser crowd at night | Can be too dark at some places | More lights at nighr | 3 | 4 | 4 | 4 | 3 | 2 | 3 | 4 | 3 | 3 | 4 | 30 | Female | Bedok | TRUE | Nil | Southern (nearest to Gleneagles Hospital) | SK | Pair of female colleagues who come here daily to run | 1539863540 |
105 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 30 minutes to an hour | To meditate, To listen to and observe nature, To take photographs, To attend events (e.g. movies in the park, symphony performances, and tours) | Partner | Nature; greenery | Inaccessible | Have more restaurants or events | 4 | 3 | 3 | 4 | 3 | 4 | 3 | 5 | 4 | 3 | 4 | 23 | Female | Bukit Merah | TRUE | Nil | Southern (nearest to Gleneagles Hospital) | Kendrick | Nil | 1539863887 |
106 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To escape from the city, To listen to and observe nature, To exercise | Alone | The atmosphere and the feeling to exercise among nature. Feels happy here : | A bit dark at night | More light s | 4 | 4 | 4 | 5 | 1 | 2 | 3 | 3 | 3 | 3 | 4 | 55 | Male | Bukit Timah | TRUE | More lights | Northern (nearest to Botanic Gardens MRT) | Aishah | Jogger who finished jogging his rounds | 1539864035 |
107 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | To walk the dog | Alone | It’s a uneaco site convenient sufficient heirtage | Inability to let dog run free without leash | Not have surveys in the gardens | 5 | 5 | 5 | 5 | 1 | 3 | 3 | 5 | 3 | 4 | 5 | 40 | Male | Holland road | TRUE | Beautiful place but still quite small compared to central park in new york or Ren min garden in Shanghai or Hyde Park in London. There is far less interaction between animals and people in this park | Southern (nearest to Gleneagles Hospital) | SK | Local man walking his dog in the garden. Initially reluctant to do survey but opened up by the end to show me some photos of other parks in other countries. | 1539864269 |
108 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | Once a week | 30 minutes to an hour | To relax, To exercise, To attend events (e.g. movies in the park, symphony performances, and tours), To escape from the city | Alone | Spacious and well maintain and safe at night | Constructions at the moment which lasted a year already | Nothing | 5 | 5 | 5 | 5 | 2 | 2 | 3 | 3 | 3 | 4 | 5 | 40 | Male | Bukit Timah | FALSE | Nil | Northern (nearest to Botanic Gardens MRT) | Aishah | Man was concerned about my safety coz it was dark. But felt that the Park was generally safe overall | 1539865281 |
109 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To relax, To spend time with family | Parents, Relatives | Ample green spaces, variety of flora and fauna | Accessibility to main area, way-finding | Easier way-finding | 3 | 2 | 2 | 5 | 3 | 2 | 3 | 4 | 4 | 4 | 5 | 29 | Female | Toa Payoh | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Kendrick | NULL | 1539874545 |
110 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To escape from the city, To relax, To listen to and observe nature | Alone | Wide variety of plants. Saw some otters running across the park! | Really hot | Separate paths for humans and buggy vehicles | 5 | 4 | 5 | 5 | 3 | 3 | 3 | 3 | 3 | 3 | 5 | 30 | Male | Woodlands | FALSE | Nil | Northern (nearest to Botanic Gardens MRT) | Aizat | None | 1539919007 |
111 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To listen to and observe nature, To take photographs, To relax, I am a tourist. Singapore botanic gardens is one of our locations to visit in Singapore | Children, Partner | A lot of greenery. Easy to get around. Free | Nothing so far | Can’t think of anything so far | 4 | 4 | 4 | 4 | 2 | 2 | 2 | 4 | 4 | 2 | 4 | 35 | Male | India | FALSE | MRT is only accesible at one side. If I come from there and walk to the other side of the park, I have to walk back all the way to take the MRT again. It is quite troublesome | Northern (nearest to Botanic Gardens MRT) | Aizat | Indian couple with small kid | 1539920045 |
112 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To relax, To meet others, Lunch with my girlfriend | Partner | Quiet open space with lots of nice plants | Little seating places which have shelter | More sheltered seating areas | 4 | 4 | 4 | 4 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 20 | Male | Bukit Panjang | FALSE | None | Northern (nearest to Botanic Gardens MRT) | Aizat | Couple brought McDonalds to eat in garden | 1539921648 |
113 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To relax, To listen to and observe nature | Partner | The peacefulness and the nature | Lack of eating place | Need to have more food stalls and tables for eating | 4 | 4 | 5 | 4 | 2 | 2 | 2 | 4 | 3 | 3 | 4 | 18 | Male | Hougang area | FALSE | No. Neutral | Southern (nearest to Gleneagles Hospital) | Irwan | No | 1540017875 |
114 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | , To learn (student on anthropology) | Friends, Students | The nature and culture | Nothing | Nothing | 3 | 5 | 5 | 3 | 3 | 2 | 3 | 4 | 3 | 3 | 5 | 22 | Female | Thailand | TRUE | Nothing | Southern (nearest to Gleneagles Hospital) | Irwan | Student from Prince of Songkhla University , Thailand | 1540018874 |
115 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | NA | > 1 hour | To take photographs | Friends | Scenery | Nothing | Should allow people to skate | 5 | 4 | 5 | 5 | 3 | 3 | 2 | 5 | 5 | 4 | 5 | 24 | Male | Malaysia, Sabah | FALSE | Nothing yet (just arrived) | Southern (nearest to Gleneagles Hospital) | Irwan | None | 1540020112 |
116 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To walk the dog | Friends, Partner | Big open space | Heat | More shaded areas | 4 | 4 | 4 | 4 | 3 | 2 | 4 | 3 | 2 | 3 | 5 | 24 | Female | Serangoon | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Jonathan | NULL | 1540027895 |
117 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | > 1 hour | To exercise | Partner | Everyhevemts plants smells wildlife | No more pavement | Build less | 5 | 4 | 5 | 5 | 4 | 3 | 3 | 5 | 5 | 5 | 5 | 50 | Female | Orchard | FALSE | One of my favourite parks in the world | Northern (nearest to Botanic Gardens MRT) | Jonathan | Too much pavement, but best planned city in the world | 1540028478 |
118 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last month | Less than every month | 30 minutes to an hour | To exercise, To listen to and observe nature, To walk the dog, To escape from the city | Alone | The greenery | The heat | Nothing, it’s perfect | 4 | 4 | 5 | 5 | 4 | 3 | 3 | 5 | 5 | 3 | 5 | 30 | Male | East coast | TRUE | The whole garden | Northern (nearest to Botanic Gardens MRT) | Jonathan | NULL | 1540028932 |
119 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 30 minutes to an hour | To relax, To listen to and observe nature, To escape from the city | Partner | Its serene and tranquil nature | Nil | Better directional signs | 4 | 3 | 4 | 4 | 4 | 3 | 2 | 4 | 3 | 4 | 4 | 28 | Male | Bishan | TRUE | Nil | Southern (nearest to Gleneagles Hospital) | Norio | With his girlfriend | 1540035412 |
120 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | To escape from the city, To be with my children | Children | A lot of open spaces for my kids to run around | Nil | More children friendly facilities | 4 | 4 | 5 | 5 | 4 | 4 | 3 | 3 | 3 | 3 | 5 | 38 | Female | Serangoon | TRUE | Nil | Southern (nearest to Gleneagles Hospital) | Norio | Mother of 2 | 1540035988 |
121 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Within the last year | Less than every month | > 1 hour | , To eat | Friends | Quiet and peaceful, has some historical features | A little too dark at night | Better lighting | 4 | 4 | 5 | 3 | 4 | 4 | 2 | 4 | 4 | 4 | 4 | 32 | Female | Toa Payoh | TRUE | Nil | Southern (nearest to Gleneagles Hospital) | Norio | Going for dinner with her friends | 1540037515 |
122 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | > 1 hour | To attend events (e.g. movies in the park, symphony performances, and tours), To relax | Friends | Great place to chill | None | Brighter lights at night | 4 | 4 | 4 | 4 | 3 | 3 | 4 | 4 | 3 | 4 | 4 | 35 | Male | Jurong east | FALSE | Nope | Northern (nearest to Botanic Gardens MRT) | Aizat | Nil | 1540041419 |
123 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To relax, To walk the dog, To meet others | Partner | Quiet. Escape from the city | Nothing | More covered seating areas | 5 | 5 | 5 | 5 | 3 | 3 | 4 | 2 | 2 | 4 | 5 | 25 | Female | Clementi | FALSE | No | Northern (nearest to Botanic Gardens MRT) | Aizat | Nil | 1540042142 |
124 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | 1-3 times a month | > 1 hour | To be with my children, To attend events (e.g. movies in the park, symphony performances, and tours), To listen to and observe nature, To relax | Partner, Children | Good place to relax and bond with family | Gets very dark at night, lack of bright lights | The lights could be brighter also for safety reasons | 5 | 5 | 5 | 5 | 3 | 2 | 4 | 3 | 3 | 5 | 4 | 40 | Male | Bukit timah | FALSE | Great place to view the moon in the night sky | Northern (nearest to Botanic Gardens MRT) | Aizat | Nil | 1540042799 |
125 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | > 1 hour | To relax, To take photographs | Partner | environment | too hot | n.a. | 4 | 4 | 4 | 4 | 2 | 1 | 5 | 2 | 2 | 2 | 4 | 40 | Female | USA | TRUE | n.a. | Northern (nearest to Botanic Gardens MRT) | tommy | tourist | 1540099144 |
126 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Longer than a year ago | Less than every month | 30 minutes to an hour | , for nostalgia (FT used to work in sg, today here as tourist) | Alone | everything | nothing | n.a. | 5 | 5 | 5 | 5 | 4 | 4 | 4 | 4 | 3 | 4 | 4 | 35 | Male | India | TRUE | n.a. | Northern (nearest to Botanic Gardens MRT) | tommy | former FT | 1540100101 |
127 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last month | Once a week | > 1 hour | To meditate, To meet others | , meditation group | tranquilty | construction noise | n.a. | 3 | 3 | 5 | 4 | 1 | 1 | 4 | 2 | 2 | 3 | 4 | 35 | Female | bukit timah | TRUE | n.a. | Northern (nearest to Botanic Gardens MRT) | tommy | NULL | 1540100774 |
128 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Less than a week ago | More than once a week | < 15 minutes | , route to get to office | Alone | Nothing at all | n.a. | internal transport like sentosa | 1 | 1 | 1 | 1 | 1 | 1 | 5 | 1 | 1 | 1 | 1 | 30 | Male | Queenstown | FALSE | too many kids | Northern (nearest to Botanic Gardens MRT) | tommy | friday | 1540104637 |
129 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Less than a week ago | More than once a week | 30 minutes to an hour | , lunch | , colleagues | quiet | too hot | aircon canteen | 2 | 4 | 1 | 4 | 1 | 1 | 5 | 3 | 2 | 2 | 3 | 40 | Male | jurong | TRUE | hard to come without car | Northern (nearest to Botanic Gardens MRT) | tommy | friday | 1540104851 |
130 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | > 1 hour | To attend events (e.g. movies in the park, symphony performances, and tours) | Alone | na | na | na | 3 | 4 | 1 | 2 | 1 | 1 | 4 | 3 | 3 | 3 | 3 | 50 | Male | bishan | TRUE | na | Northern (nearest to Botanic Gardens MRT) | tommy | friday | 1540105067 |
131 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Longer than a year ago | Less than every month | 30 minutes to an hour | To exercise | Partner | Scenic, relaxing, catch pokemon | Mosquitoes | more water features | 4 | 4 | 5 | 4 | 3 | 3 | 3 | 4 | 4 | 3 | 5 | 30 | Female | Bishan | TRUE | Nope! | Southern (nearest to Gleneagles Hospital) | Kendrick | NULL | 1540112953 |
132 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Within the last year | Less than every month | 30 minutes to an hour | To escape from the city, To exercise, To listen to and observe nature | Partner | Large area to walk around | Would be good if there are more shelters and rest stops | More shelters and rest stops and some vending machines | 4 | 4 | 4 | 4 | 3 | 3 | 2 | 3 | 3 | 2 | 5 | 30 | Male | Singapore | TRUE | NA | Northern (nearest to Botanic Gardens MRT) | Kendrick | No | 1540112959 |
133 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Less than a week ago | Once a week | 15 - 30 minutes | To exercise, To attend events (e.g. movies in the park, symphony performances, and tours) | Children, Friends | Free, green, lots of open spaces | Not enough shelter | More shelters | 4 | 4 | 5 | 4 | 4 | 3 | 3 | 3 | 3 | 4 | 4 | 35 | Female | Seletar | TRUE | NA | Southern (nearest to Gleneagles Hospital) | Kendrick | NULL | 1540117286 |
3.3 Is there any relation between frequency_visit and last_visit?
As expected, the highest counts are people who visit the garden more than once a week and last visited the garden less than a week ago.
data %>%
filter(last_visit != "This is my first time") %>%
ggplot(aes(frequency_visit, last_visit)) +
geom_bin2d()+
theme_fivethirtyeight() +
labs(title="Relation between frequency_visit and last_visit", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5))+
theme(axis.text.x = element_text(angle = 20, hjust = 1))
3.4 Counts of transport modes taken to the garden
We can plot a frequency bar chart to find out how many people got to the gardens by each transport mode.
data %>%
separate_rows(transport_mode,sep=", ") %>%
ggplot(aes(transport_mode))+
geom_bar()+
theme_fivethirtyeight() +
labs(title="How did you get here today?", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5))+
theme(axis.text.x = element_text(angle = 20, hjust = 1))
3.5 What is the age distribution of the respondents?
data %>%
ggplot(aes(x=age)) + geom_histogram(binwidth=10)+
theme_fivethirtyeight() +
theme(plot.title = element_text(size=14, hjust=0.5))+
theme(legend.position="none")+
labs(title="Age distribution of respondents") +
theme(axis.title = element_text()) + ylab("Frequency")+xlab("Age")
3.6 Are there any differences between how different age groups reach SBG?
To create a facet plot of the travel modes per age group! But the ages have to be grouped into bins first if not we would get a plot per age.
With the age groups formed, we expect 14 plots.
setDT(data)
data[age <1, agegroup := "0-1"]
data[age >0 & age <5, agegroup := "1-4"]
data[age >4 & age <10, agegroup := "5-9"]
data[age >9 & age <15, agegroup := "10-14"]
data[age >14 & age <20, agegroup := "15-19"]
data[age >19 & age <25, agegroup := "20-24"]
data[age >24 & age <30, agegroup := "25-29"]
data[age >29 & age <35, agegroup := "30-34"]
data[age >34 & age <40, agegroup := "35-39"]
data[age >39 & age <45, agegroup := "40-44"]
data[age >44 & age <50, agegroup := "45-49"]
data[age >49 & age <55, agegroup := "50-54"]
data[age >54 & age <60, agegroup := "55-59"]
data[age >59 & age <65, agegroup := "60-64"]
data[age >64 & age <70, agegroup := "65-69"]
data[age >69 & age <75, agegroup := "70-74"]
data[age >74 & age <80, agegroup := "75-79"]
data[age >79 & age <85, agegroup := "80-84"]
data[age >84, agegroup := "85+"]
data %>%
separate_rows(transport_mode,sep=", ") %>%
filter(transport_mode!="NA") %>%
filter(!is.na(transport_mode)) %>%
filter(transport_mode!="") %>%
ggplot(aes(transport_mode))+
geom_bar(aes(x = transport_mode, fill=agegroup))+
theme_fivethirtyeight() +
labs(title="Count of transport modes by age groups", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0)) +
theme(axis.text.x = element_text(angle = 20, hjust = 1))+
ylab("frequency")+xlab("transport mode")
3.7 How do different age groups rate the gardens’ accessibility?
data %>%
group_by(agegroup) %>%
summarise(
count = n(),
mean = mean(satisfaction_access, na.rm = TRUE),
sd = sd(satisfaction_access, na.rm = TRUE),
median = median(satisfaction_access, na.rm = TRUE),
IQR = IQR(satisfaction_access, na.rm = TRUE)
)
## # A tibble: 14 x 6
## agegroup count mean sd median IQR
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 15-19 3 5 0 5 0
## 2 20-24 11 4.18 0.751 4 1
## 3 25-29 16 4.44 0.814 5 1
## 4 30-34 25 4.24 0.970 4 1
## 5 35-39 20 4.65 0.489 5 1
## 6 40-44 13 4.15 1.14 4 1
## 7 45-49 4 4.25 0.957 4.5 1.25
## 8 50-54 12 4.08 1.31 4.5 1
## 9 55-59 6 4.5 0.837 5 0.75
## 10 60-64 8 4.75 0.463 5 0.25
## 11 65-69 6 4.83 0.408 5 0
## 12 70-74 7 4.86 0.378 5 0
## 13 75-79 1 5 NaN 5 0
## 14 80-84 1 5 NaN 5 0
3.8 Are people who visit the gardens more often, more satisfied with it?
Most attributes except for “crowdedness” and “seating” showed a general increase in satisfaction, as we compare the mean of the likert rating for the two extremes of visit frequencies – “less that every month” and “more than once a week”. Only “layout” had an steadily increasing mean as the visit frequency increases. Most attributes such as “food variety”, “food affordability”, “crowdedness”, “seating”, “wayfinding”, “flora and fauna” had the highest mean of likert rating at “1-3 times a week”.
Step 1. For each frequency of visit, what is the mean, sd and median of the likert ratings for each attribute?
likert_visitfreq <- data %>%
group_by(frequency_visit) %>%
summarise_at(c("satisfaction_layout", "satisfaction_wayfinding", "satisfaction_access","satisfaction_florafauna","satisfaction_food_variety","satisfaction_food_affordability","satisfaction_crowdedness","satisfaction_seating","satisfaction_shelter","satisfaction_activities","satisfaction_safety"), funs(mean, sd,median), na.rm = TRUE)
knitr::kable(likert_visitfreq)
frequency_visit | satisfaction_layout_mean | satisfaction_wayfinding_mean | satisfaction_access_mean | satisfaction_florafauna_mean | satisfaction_food_variety_mean | satisfaction_food_affordability_mean | satisfaction_crowdedness_mean | satisfaction_seating_mean | satisfaction_shelter_mean | satisfaction_activities_mean | satisfaction_safety_mean | satisfaction_layout_sd | satisfaction_wayfinding_sd | satisfaction_access_sd | satisfaction_florafauna_sd | satisfaction_food_variety_sd | satisfaction_food_affordability_sd | satisfaction_crowdedness_sd | satisfaction_seating_sd | satisfaction_shelter_sd | satisfaction_activities_sd | satisfaction_safety_sd | satisfaction_layout_median | satisfaction_wayfinding_median | satisfaction_access_median | satisfaction_florafauna_median | satisfaction_food_variety_median | satisfaction_food_affordability_median | satisfaction_crowdedness_median | satisfaction_seating_median | satisfaction_shelter_median | satisfaction_activities_median | satisfaction_safety_median |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Less than every month | 4.268293 | 3.682927 | 4.170732 | 4.219512 | 2.902439 | 2.634146 | 2.804878 | 3.585366 | 3.292683 | 3.219512 | 4.536585 | 0.6334189 | 0.9858759 | 0.9461088 | 0.7909550 | 1.019923 | 0.9938837 | 0.9278877 | 0.9212928 | 1.0060791 | 0.9620861 | 0.6744465 | 4.0 | 4.0 | 4 | 4 | 3 | 3 | 3 | 4.0 | 3 | 3.0 | 5 |
1-3 times a month | 4.285714 | 4.428571 | 4.428571 | 4.642857 | 3.500000 | 3.071429 | 3.357143 | 3.857143 | 3.357143 | 3.571429 | 4.500000 | 1.0690450 | 0.6462062 | 0.7559289 | 0.6333237 | 1.091928 | 0.7300459 | 0.8418974 | 0.7703289 | 0.8418974 | 1.0163499 | 0.6504436 | 4.5 | 4.5 | 5 | 5 | 3 | 3 | 3 | 4.0 | 3 | 3.5 | 5 |
Once a week | 4.368421 | 4.263158 | 4.684210 | 4.631579 | 3.052632 | 2.578947 | 2.947368 | 3.578947 | 3.368421 | 3.842105 | 4.473684 | 0.6839856 | 0.7334928 | 0.4775669 | 0.4955946 | 1.129094 | 1.0173926 | 0.7798635 | 0.9612370 | 0.8306976 | 0.6882472 | 0.6117753 | 4.0 | 4.0 | 5 | 5 | 3 | 2 | 3 | 3.0 | 3 | 4.0 | 5 |
More than once a week | 4.416667 | 4.138889 | 4.472222 | 4.472222 | 2.722222 | 2.555556 | 3.111111 | 3.555556 | 3.277778 | 3.500000 | 4.444444 | 0.9673233 | 1.0461570 | 1.0277885 | 0.9098229 | 1.322576 | 0.9394358 | 1.0358648 | 1.1574466 | 1.1615534 | 1.0000000 | 0.9085135 | 5.0 | 4.5 | 5 | 5 | 3 | 3 | 3 | 3.5 | 3 | 3.5 | 5 |
NA | 4.478261 | 4.260870 | 4.608696 | 4.565217 | 2.913044 | 2.739130 | 2.304348 | 4.130435 | 3.826087 | 3.347826 | 4.739130 | 0.6653478 | 0.9153932 | 0.5830274 | 0.6623709 | 1.040675 | 1.2510865 | 1.2945614 | 0.9678631 | 1.1140497 | 0.9820524 | 0.4489778 | 5.0 | 4.0 | 5 | 5 | 3 | 3 | 2 | 4.0 | 4 | 3.0 | 5 |
Step 2. To transform the datatable from wide to long:
likert_visitfreq <- melt(setDT(likert_visitfreq),
measure = patterns("mean", "sd","median"),
variable.name = 'var', value.name = c('avg', 'sd','median'))
likert_visitfreq<-likert_visitfreq %>%
mutate(var=recode_factor(likert_visitfreq$var, `1` = "layout", `2` = "wayfinding", `3` = "access",`4`="flora&fauna",`5`="food_variety",`6`="food_affordability",`7`="crowdedness",`8`="seating",`9`="shelter",`10`="activities",`11`="safety")) %>%
filter(likert_visitfreq$frequency_visit!="NA")
freq_visit_levels <- c("Less than every month","1-3 times a month","Once a week","More than once a week")
likert_visitfreq <- likert_visitfreq %>%
mutate(frequency_visit=parse_factor(frequency_visit,levels=freq_visit_levels,ordered=T))
likert_visitfreq
## frequency_visit var avg sd median
## 1 Less than every month layout 4.268293 0.6334189 4.0
## 2 1-3 times a month layout 4.285714 1.0690450 4.5
## 3 Once a week layout 4.368421 0.6839856 4.0
## 4 More than once a week layout 4.416667 0.9673233 5.0
## 5 Less than every month wayfinding 3.682927 0.9858759 4.0
## 6 1-3 times a month wayfinding 4.428571 0.6462062 4.5
## 7 Once a week wayfinding 4.263158 0.7334928 4.0
## 8 More than once a week wayfinding 4.138889 1.0461570 4.5
## 9 Less than every month access 4.170732 0.9461088 4.0
## 10 1-3 times a month access 4.428571 0.7559289 5.0
## 11 Once a week access 4.684211 0.4775669 5.0
## 12 More than once a week access 4.472222 1.0277885 5.0
## 13 Less than every month flora&fauna 4.219512 0.7909550 4.0
## 14 1-3 times a month flora&fauna 4.642857 0.6333237 5.0
## 15 Once a week flora&fauna 4.631579 0.4955946 5.0
## 16 More than once a week flora&fauna 4.472222 0.9098229 5.0
## 17 Less than every month food_variety 2.902439 1.0199235 3.0
## 18 1-3 times a month food_variety 3.500000 1.0919284 3.0
## 19 Once a week food_variety 3.052632 1.1290942 3.0
## 20 More than once a week food_variety 2.722222 1.3225756 3.0
## 21 Less than every month food_affordability 2.634146 0.9938837 3.0
## 22 1-3 times a month food_affordability 3.071429 0.7300459 3.0
## 23 Once a week food_affordability 2.578947 1.0173926 2.0
## 24 More than once a week food_affordability 2.555556 0.9394358 3.0
## 25 Less than every month crowdedness 2.804878 0.9278877 3.0
## 26 1-3 times a month crowdedness 3.357143 0.8418974 3.0
## 27 Once a week crowdedness 2.947368 0.7798635 3.0
## 28 More than once a week crowdedness 3.111111 1.0358648 3.0
## 29 Less than every month seating 3.585366 0.9212928 4.0
## 30 1-3 times a month seating 3.857143 0.7703289 4.0
## 31 Once a week seating 3.578947 0.9612370 3.0
## 32 More than once a week seating 3.555556 1.1574466 3.5
## 33 Less than every month shelter 3.292683 1.0060791 3.0
## 34 1-3 times a month shelter 3.357143 0.8418974 3.0
## 35 Once a week shelter 3.368421 0.8306976 3.0
## 36 More than once a week shelter 3.277778 1.1615534 3.0
## 37 Less than every month activities 3.219512 0.9620861 3.0
## 38 1-3 times a month activities 3.571429 1.0163499 3.5
## 39 Once a week activities 3.842105 0.6882472 4.0
## 40 More than once a week activities 3.500000 1.0000000 3.5
## 41 Less than every month safety 4.536585 0.6744465 5.0
## 42 1-3 times a month safety 4.500000 0.6504436 5.0
## 43 Once a week safety 4.473684 0.6117753 5.0
## 44 More than once a week safety 4.444444 0.9085135 5.0
- To visualise:
ggplot(data=likert_visitfreq, aes(x=frequency_visit, y = avg, colour = var, group = var)) +
geom_line()+
geom_dl(aes(label = var), method = list(dl.combine("first.points"), cex = 0.7))+
theme_fivethirtyeight() +
labs(title="Mean of likert rating per attribute by frequency of visit", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0)) +
theme(legend.position="none")
3.8.1 Is there any difference in satisfaction for northern and southern section?
The responses showed higher satisfaction (higher mean of likert rating) in the southern section for: * layout * food variety * flora and fauna * seating * shelter * safety
The responses showed higher satisfaction (higher mean of likert rating) in the northern section for: * wayfinding * access * food affordability * crowdedness * activities
likert_visitfreq_northsouth <- data %>%
group_by(frequency_visit,park_section) %>%
summarise_at(c("satisfaction_layout", "satisfaction_wayfinding", "satisfaction_access","satisfaction_florafauna","satisfaction_food_variety","satisfaction_food_affordability","satisfaction_crowdedness","satisfaction_seating","satisfaction_shelter","satisfaction_activities","satisfaction_safety"), funs(mean, sd,median), na.rm = TRUE) %>%
filter(frequency_visit!="NA") %>%
filter(park_section!="NA")
likert_visitfreq_northsouth <- melt(setDT(likert_visitfreq_northsouth),
measure = patterns("mean", "sd","median"),
variable.name = 'var', value.name = c('avg', 'sd','median'))
likert_visitfreq_northsouth<-likert_visitfreq_northsouth %>%
mutate(var=recode_factor(likert_visitfreq_northsouth$var, `1` = "layout", `2` = "wayfinding", `3` = "access",`4`="flora&fauna",`5`="food_variety",`6`="food_affordability",`7`="crowdedness",`8`="seating",`9`="shelter",`10`="activities",`11`="safety")) %>%
filter(likert_visitfreq_northsouth$frequency_visit!="NA")
freq_visit_levels <- c("Less than every month","1-3 times a month","Once a week","More than once a week")
likert_visitfreq_northsouth <- likert_visitfreq_northsouth %>%
mutate(frequency_visit=parse_factor(frequency_visit,levels=freq_visit_levels,ordered=T))
knitr::kable(likert_visitfreq_northsouth %>%
group_by(park_section, var) %>%
summarise(avg=mean(avg)) %>%
arrange(var))
park_section | var | avg |
---|---|---|
Northern (nearest to Botanic Gardens MRT) | layout | 4.200000 |
Southern (nearest to Gleneagles Hospital) | layout | 4.462744 |
Northern (nearest to Botanic Gardens MRT) | wayfinding | 4.180357 |
Southern (nearest to Gleneagles Hospital) | wayfinding | 4.120860 |
Northern (nearest to Botanic Gardens MRT) | access | 4.461607 |
Southern (nearest to Gleneagles Hospital) | access | 4.450122 |
Northern (nearest to Botanic Gardens MRT) | flora&fauna | 4.441071 |
Southern (nearest to Gleneagles Hospital) | flora&fauna | 4.527800 |
Northern (nearest to Botanic Gardens MRT) | food_variety | 2.936607 |
Southern (nearest to Gleneagles Hospital) | food_variety | 3.141802 |
Northern (nearest to Botanic Gardens MRT) | food_affordability | 2.746429 |
Southern (nearest to Gleneagles Hospital) | food_affordability | 2.679627 |
Northern (nearest to Botanic Gardens MRT) | crowdedness | 3.177679 |
Southern (nearest to Gleneagles Hospital) | crowdedness | 2.949188 |
Northern (nearest to Botanic Gardens MRT) | seating | 3.255357 |
Southern (nearest to Gleneagles Hospital) | seating | 3.978044 |
Northern (nearest to Botanic Gardens MRT) | shelter | 3.085714 |
Southern (nearest to Gleneagles Hospital) | shelter | 3.530073 |
Northern (nearest to Botanic Gardens MRT) | activities | 3.541071 |
Southern (nearest to Gleneagles Hospital) | activities | 3.525041 |
Northern (nearest to Botanic Gardens MRT) | safety | 4.321429 |
Southern (nearest to Gleneagles Hospital) | safety | 4.643912 |
ggplot(data=likert_visitfreq_northsouth, aes(x=frequency_visit, y = avg, colour = var, group = var)) +
geom_line()+
geom_dl(aes(label = var), method = list(dl.combine("first.points"), cex = 0.7))+
theme_fivethirtyeight() +
labs(title="Mean of likert rating per attribute by frequency of visit", y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0)) +
theme(legend.position="none")+
facet_wrap(~(park_section))+
theme(axis.text.x = element_text(angle = 20, hjust = 1))
3.9 Is there any difference in age distribution for northern and southern section?
Respondents of both sections were mostly around the age of 30 years old. The southern section showed a higher proportion of older people (>50 years old).
gg <- data %>%
filter(park_section!="NA") %>%
ggplot(aes(x=age)) + geom_histogram(binwidth=10)+facet_wrap(~park_section)+
theme_fivethirtyeight() +
theme(plot.title = element_text(size=14, hjust=0.5))+
theme(legend.position="none")+
labs(title="Age Distribution in different park sections") +
theme(axis.title = element_text()) + ylab("Frequency")+xlab("Age")
ggplotly(gg)
3.10 Botanic Gardens Survey Analysis (previous try)
3.10.1 Loading the data
botanic_surveys <- read_sheet("1BFAqMUUn3mDq0OdStNYnWZh0Rr392LXfPMJuXLKMXr0")
## Reading from 'Botanic Gardens Intercept Survey'
## Range "'Singapore Botanic Gardens Survey'"
3.10.2 Lots of data cleaning
botanic_surveys <- subset(botanic_surveys,botanic_surveys$`(Internal) What is your (interviewer) name?`!="Test")
botanic_surveys <- subset(botanic_surveys,botanic_surveys$`(Internal) What is your (interviewer) name?`!="Test Kana")
botanic_surveys <- subset(botanic_surveys,botanic_surveys$`(Internal) What is your (interviewer) name?`!="Atr")
botanic_surveys <- subset(botanic_surveys,botanic_surveys$`(Internal) What is your (interviewer) name?`!="Mister")
table(botanic_surveys$`What gender do you identify as?`)
##
## Couple Female Male
## 2 63 68
botanic_surveys$`What neighbourhood do you live in?`<-toupper(botanic_surveys$`What neighbourhood do you live in?`)
botanic_surveys <- botanic_surveys %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "AMK", "ANG MO KIO")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "BY TIMAH","BUKIT TIMAH")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "NEARBY BUKIT TIMAH", "BUKIT TIMAH")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "BUKIT TIMAH ROAD", "BUKIT TIMAH")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "NEARBY NUKIT TIMAH", "BUKIT TIMAH")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "UPP BUKIT TIMAH", "BUKIT TIMAH")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "JURONG WEST.", "JURONG WEST")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "NOVENA.", "NOVENA")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "WATTEN ESTATE.", "WATTEN ESTATE")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "MALAYSIA.", "MALAYSIA")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "HOLLAND ROAD", "HOLLAND V")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "TELOK BELANGAH", "TELOK BLANGAH")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "YCK", "YIO CHU KANG")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "WOODLAND", "WOODLANDS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "QUEENSTOWN AND CCK", "QUEENSTOWN")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "WEST", "OTHERS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "NOT MENTIONED", "OTHERS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "NORTH EAST", "OTHERS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "JERVOIS ROAD", "OTHERS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "SHERATON TOWER", "OTHERS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "YOTEL", "OTHERS")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "STEVEN ROAD", "STEVENS ROAD")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "YOU PANDAN/FARREER MARKET", "FARRER ROAD")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "FARRER RD", "FARRER ROAD")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "CLEMENT", "CLEMENTI")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "JURONG EAST", "JURONG")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "JURONG WEST", "JURONG")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "JURONG OTHERS", "JURONG")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "HOUGANG AREA", "HOUGANG")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "MALAYSIASABAH", "MALAYSIA"))
botanic_countries <- botanic_surveys %>%
mutate(Overseas=`What neighbourhood do you live in?`%!in%c("ANG MO KIO","BEDOK","BISHAN","BOTANIC AREA","BUKIT BATOK","BUKIT MERAH","BUKIT PANJANG","BUKIT TIMAH",
"CHOA CHU KANG","CLEMENTI","CORONATION ROAD","EAST COAST","FARRER ROAD","HAVELOCK","HOLLAND V","HOUGANG",
"JURONG","KAKI BUKIT","KATONG","KENT RIDGE","KOVAN","NEWTON","NOVENA","ORCHARD","PASIR RIS","PAYA LEBAR",
"PUNGGOL","QUEENSTOWN","REDHILL","SELETAR","SENGKANG","SERANGOON","SINGAPORE","STEVENS ROAD","TAN KAH KEE","TANGLIN",
"TELOK BLANGAH","THOMSON","TIONG BAHRU","TOA PAYOH","WATTEN ESTATE","WOODLANDS","YIO CHU KANG"))
botanic_surveys <- botanic_surveys %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "CLEMENTII", "CLEMENTI")) %>%
mutate(`What neighbourhood do you live in?` = str_replace(`What neighbourhood do you live in?`, "WOODLANDSS","WOODLANDS"))
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="ANG MO KIO"] <- "North-east"
## Warning: Unknown or uninitialised column: 'Region'.
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="BEDOK"] <- "East"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="BISHAN"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="BOTANIC AREA"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="BUKIT BATOK"] <- "West"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="BUKIT MERAH"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="BUKIT PANJANG"] <- "West"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="CHOA CHU KANG"] <- "West"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="CLEMENTI"] <- "West"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="CORONATION ROAD"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="EAST COAST"] <- "East"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="ENGLAND"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="FARRER ROAD"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="FRANCE"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="HAVELOCK"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="HO CHIH MINH"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="HOLLAND"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="HOLLAND V"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="HOUGANG"] <- "North-east"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="INDIA"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="INDONESIA"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="ITALY"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="JURONG"] <- "West"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="KAKI BUKIT"] <- "East"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="KATONG"] <- "East"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="KENT RIDGE"] <- "West"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="KOVAN"] <- "North-east"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="LONDON, UK"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="MALAYSIA"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="MALAYSIA SABAH"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="OTHERS"] <- "Others"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="NEWTON"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="ORCHARD"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="NOVENA"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="PASIR RIS"] <- "East"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="PAYA LEBAR"] <- "East"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="PENANG"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="POLAND"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="PUNGGOL"] <- "North-east"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="QUEENSTOWN"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="REDHILL"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="SELETAR"] <- "North-east"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="SENGKANG"] <- "North-east"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="SERANGOON"] <- "North-east"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="SINGAPORE"] <- "Others"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="STEVENS ROAD"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="TAIWAN"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="TAN KAH KEE"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="TANGLIN"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="TELOK BLANGAH"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="THAILAND"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="THOMSON"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="TIONG BAHRU"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="TOA PAYOH"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="USA"] <- "Overseas"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="WATTEN ESTATE"] <- "Central"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="WOODLANDS"] <- "North"
botanic_surveys$Region[botanic_surveys$`What neighbourhood do you live in?`=="YIO CHU KANG"] <- "North-east"
botanic_surveys <- mutate(botanic_surveys,`What is your age?`=5*round(`What is your age?`/5))
Data parsing for multiple response: reasons of visit and creating a table with some open-ended “reasons of visit” as “others”
botanic_reasons <- botanic_surveys %>%
select(`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6','7','8','9','10','11','12'), sep =',', remove = FALSE, fill="right") %>%
stack(botanic_reasons, select=-`What is your reason for visiting the Singapore Botanic Gardens today?`)
botanic_reasons <- as.data.frame(table(trimws(botanic_reasons$values)))
names(botanic_reasons)[1] = 'Reasons'
'%!in%' <- function(x,y)!('%in%'(x,y))
botanic_reasons <- botanic_reasons %>%
mutate(Others=(Reasons%!in%c("To walk the dog","To exercise","To relax","To listen to and observe nature","To escape from the city","To take photographs","To meet others","To be with my children","To get inspiration","To meditate","To attend events (eg. movies in the park, symphony performances, and tours)")))
botanic_reasons_others <- botanic_reasons %>%
group_by(Others) %>%
summarise(Freq=sum(Freq))
botanic_reasons_others <- botanic_reasons_others %>%
filter(Others=="TRUE") %>%
mutate(Reasons="Others")
botanic_reasons <- rbind(botanic_reasons,botanic_reasons_others)
botanic_reasons_less <- botanic_reasons %>%
filter(Others==FALSE | Reasons=="Others") %>%
select(-Others)
botanic_who <- botanic_surveys %>%
select(`Who are you here with today?`) %>%
separate(`Who are you here with today?`, c('1','2','3','4','5','6','7'), sep =',', remove = FALSE, fill="right") %>%
stack(botanic_who, select=-`Who are you here with today?`)
botanic_who <- as.data.frame(table(trimws(botanic_who$values)))
names(botanic_who)[1] = 'Who'
Data parsing for multiple response: commute
botanic_commute <- botanic_surveys %>%
select(`How did you get here today?`) %>%
separate(`How did you get here today?`, c('1','2','3','4','5','6','7'), sep =',', remove = FALSE, fill="right") %>%
stack(botanic_commute, select=-`How did you get here today?`)
botanic_commute <- as.data.frame(table(trimws(botanic_commute$values)))
names(botanic_commute)[1] = 'mode'
3.10.3 Frequency plots
ggplot(data=botanic_surveys, aes(botanic_surveys$`What is your age?`)) +
geom_histogram(breaks=seq(15, 80, by = 10),
col="black") +
theme_fivethirtyeight()+
theme(axis.title = element_text()) + ylab("Frequency")+xlab("Age")+
ggtitle("Histogram for age of respondents")
#install.packages("ggplot2")
library(ggplot2)
#install.packages("plotly")
library(plotly)
positions <- c("This is my first time", "Longer than a year ago", "Within the last year", "Within the last month","Less than a week ago")
ggplot(botanic_surveys, aes(botanic_surveys$`When was the last time you have visited the Singapore Botanic Gardens?`))+
ggtitle("When was the last time you have visited \n the Singapore Botanic Gardens?")+
geom_bar(fill=c("#6baed6", "#bdd7e7","#9ecae1","#c6dbef","#08519c"))+
geom_text(stat='count', aes(label=..count..), vjust=0, hjust=-2,color="black")+
scale_x_discrete(limits = positions)+
theme_fivethirtyeight()+
coord_flip()+
theme_fivethirtyeight()+
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0))+
theme(axis.title = element_text()) + ylab("Frequency")+xlab(" ")
positions <- c("Less than every month", "1-3 times a month", "Once a week","More than once a week")
botanic_surveys %>%
filter(`How often do you normally visit this place?`!="NA") %>%
ggplot(aes(`How often do you normally visit this place?`))+
xlab("")+ylab("Frequency")+
ggtitle("How often do you normally visit this place?")+
geom_bar(fill=c("#2171b5","#c6dbef","#bdd7e7","#6baed6"))+
geom_text(stat='count', aes(label=..count..), vjust=0, hjust=-1,color="black")+
coord_flip()+
scale_x_discrete(limits=positions)+
theme_fivethirtyeight()+
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0))+
theme(axis.title = element_text()) + ylab("Frequency")+xlab(" ")
a <- table(botanic_surveys$`When was the last time you have visited the Singapore Botanic Gardens?`,botanic_surveys$`How often do you normally visit this place?`)
a <- as.data.frame(a)
names(a)[1] = 'Last Visit'
names(a)[2] = 'Visit Frequency'
positions <- c("Less than every month", "1-3 times a month", "Once a week","More than once a week")
botanic_surveys %>%
filter(`When was the last time you have visited the Singapore Botanic Gardens?`!="This is my first time") %>%
ggplot() + geom_bar(aes(y = Freq, x = `Visit Frequency`, fill = `Last Visit`),
data = a,
stat="identity") +
theme_fivethirtyeight() +
theme(plot.title = element_text(size=14, hjust=0.5))+
labs(title="Count of visit frequency by last visit") +
scale_x_discrete(limits=positions)+
theme(axis.title = element_text("")) + ylab("Frequency")+xlab(" ")+
theme(legend.title=element_blank())+
theme(legend.key.height=unit(1,"line"))+
theme(legend.key.width=unit(1,"line"))+
theme(legend.spacing.x = unit(0.3, 'cm'))+
scale_fill_brewer(palette="Spectral")
positions <- c("< 15 minutes", "15 - 30 minutes", "30 minutes to an hour","> 1 hour")
ggplot(botanic_surveys, aes(`How long do you plan to stay here today?`))+
xlab("")+ylab("Frequency")+
ggtitle("How long do you plan to stay here today?")+
geom_bar(fill=c("#c6dbef","#bdd7e7","#6baed6","#2171b5"))+
scale_x_discrete(limits = positions)+
geom_text(stat='count', aes(label=..count..), vjust=-1)+
theme_fivethirtyeight()+
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0))+
theme(axis.title = element_text()) + ylab("Frequency")+xlab(" ")
botanic_reasons_less %>%
ggplot(aes(x=reorder(Reasons,Freq),y=Freq))+
theme_minimal()+
geom_bar(stat="identity",fill=c("#f7fbff","#f7fbff","#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"))+
geom_text(stat='identity', aes(label=Freq), vjust=0, hjust=-1,color="black")+
coord_flip()+
theme_fivethirtyeight() +
labs(title="What is your reason for visiting the \n Singapore Botanic Gardens today?")+
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0))+
theme(axis.title = element_text()) + ylab("Frequency")+xlab(" ")
botanic_who %>%
filter(Who!="") %>%
ggplot(aes(x=reorder(Who,Freq),y=Freq))+theme_minimal()+
geom_bar(stat="identity")+
geom_text(stat='identity', aes(label=Freq), vjust=0, hjust=-1,fill="black")+
ylab("Frequency")+xlab(" ")+
coord_flip()+
scale_fill_brewer(palette = "Blues")+
theme_fivethirtyeight() +
labs(title="Who are you with here today?")+
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0))+
theme(axis.title = element_text()) + ylab("Frequency")+xlab(" ")
## Warning: Ignoring unknown parameters: fill
botanic_commute %>%
filter(mode!="") %>%
ggplot(aes(x=reorder(mode,Freq),y=Freq))+theme_minimal()+
geom_bar(stat="identity",fill=c("#deebf7","#deebf7","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c"))+
geom_text(stat='identity', aes(label=Freq), vjust=0, hjust=-1,color="black")+
coord_flip()+
theme_fivethirtyeight() +
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0))+
labs(title="How did you get here today?")+
theme(axis.title = element_text()) + ylab("Frequency")+xlab(" ")
library(ggridges)
##
## Attaching package: 'ggridges'
## The following object is masked from 'package:ggplot2':
##
## scale_discrete_manual
botanic_surveys %>%
filter(`What gender do you identify as?`!="Couple") %>%
ggplot(aes(x = `What is your age?`, y = `What gender do you identify as?`)) +
geom_density_ridges(aes(fill = `What gender do you identify as?`),scale=0.6) +
scale_fill_manual(values = c("#c60d11", "#1c2e7c"))+
theme_fivethirtyeight() +
theme(plot.title = element_text(size=14, hjust=0.5))+
theme(legend.position="none")+
labs(title="Age Distribution by Gender") +
theme(axis.title = element_text()) + ylab(" ")+xlab("Age")
## Picking joint bandwidth of 5.31
3.10.4 Inter-variable frequency plots
botanic_mode_neighbourhood_part1 <- botanic_surveys %>%
select(Region, `How did you get here today?`) %>%
separate(`How did you get here today?`, c('1','2'), sep =',', remove = FALSE, fill="right") %>%
select(-'How did you get here today?') %>%
select(-"2")
botanic_mode_neighbourhood_part2 <- botanic_surveys %>%
select(Region, `How did you get here today?`) %>%
separate(`How did you get here today?`, c('1','2'), sep =',', remove = FALSE, fill="right") %>%
select(-'How did you get here today?') %>%
select(-"1")
names(botanic_mode_neighbourhood_part2)[2] = '1'
botanic_mode_neighbourhood <- na.omit(rbind(botanic_mode_neighbourhood_part1,botanic_mode_neighbourhood_part2))
names(botanic_mode_neighbourhood)[2] = 'Mode'
botanic_mode_neighbourhood <- botanic_mode_neighbourhood[-which(botanic_mode_neighbourhood$Mode==""), ]
botanic_mode_neighbourhood<- botanic_mode_neighbourhood %>%
mutate(Mode=str_trim(Mode,"left"))
knitr::kable(table(botanic_mode_neighbourhood$Region,botanic_mode_neighbourhood$Mode))
Bicycle/Personal mobility device | Bus | Car | Grab | Lorry | Motorbike | MRT | On foot | Taxi | |
---|---|---|---|---|---|---|---|---|---|
Central | 0 | 4 | 22 | 0 | 0 | 0 | 7 | 11 | 2 |
East | 0 | 2 | 4 | 0 | 1 | 0 | 3 | 1 | 0 |
North | 1 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0 |
North-east | 0 | 0 | 7 | 0 | 0 | 0 | 9 | 2 | 1 |
Others | 1 | 1 | 1 | 0 | 0 | 0 | 2 | 1 | 0 |
Overseas | 0 | 4 | 0 | 0 | 0 | 1 | 12 | 2 | 3 |
West | 0 | 0 | 6 | 1 | 0 | 0 | 7 | 1 | 0 |
botanic_mode_neighbourhood_part1 <- botanic_surveys %>%
select(`What neighbourhood do you live in?`, `How did you get here today?`) %>%
separate(`How did you get here today?`, c('1','2'), sep =',', remove = FALSE, fill="right") %>%
filter(`What neighbourhood do you live in?`!="NA") %>%
select(-'How did you get here today?') %>%
select(-"2")
botanic_mode_neighbourhood_part2 <- botanic_surveys %>%
select(`What neighbourhood do you live in?`, `How did you get here today?`) %>%
separate(`How did you get here today?`, c('1','2'), sep =',', remove = FALSE, fill="right") %>%
filter(`What neighbourhood do you live in?`!="NA") %>%
select(-'How did you get here today?') %>%
select(-"1")
names(botanic_mode_neighbourhood_part2)[2] = '1'
botanic_mode_neighbourhood <- na.omit(rbind(botanic_mode_neighbourhood_part1,botanic_mode_neighbourhood_part2))
names(botanic_mode_neighbourhood)[2] = 'Mode'
botanic_mode_neighbourhood <- botanic_mode_neighbourhood[-which(botanic_mode_neighbourhood$Mode== ""), ]
botanic_mode_neighbourhood<- botanic_mode_neighbourhood %>%
mutate(Mode=str_trim(Mode,"left"))
knitr::kable(table(botanic_mode_neighbourhood$`What neighbourhood do you live in?`,botanic_mode_neighbourhood$Mode))
Bicycle/Personal mobility device | Bus | Car | Grab | Lorry | Motorbike | MRT | On foot | Taxi | |
---|---|---|---|---|---|---|---|---|---|
ANG MO KIO | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 1 | 0 |
BEDOK | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
BISHAN | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 |
BOTANIC AREA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
BUKIT BATOK | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
BUKIT MERAH | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
BUKIT PANJANG | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
BUKIT TIMAH | 0 | 0 | 7 | 0 | 0 | 0 | 3 | 8 | 0 |
CHOA CHU KANG | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
CLEMENTI | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 |
CORONATION ROAD | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
EAST COAST | 0 | 1 | 3 | 0 | 0 | 0 | 1 | 0 | 0 |
ENGLAND | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
FARRER ROAD | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
FRANCE | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
HAVELOCK | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
HO CHIH MINH | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
HOLLAND | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
HOLLAND V | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 |
HOUGANG | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 1 |
INDIA | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 |
INDONESIA | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
ITALY | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
JURONG | 0 | 0 | 3 | 0 | 0 | 0 | 3 | 1 | 0 |
KAKI BUKIT | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
KATONG | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
KENT RIDGE | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
KOVAN | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
LONDON, UK | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
MALAYSIA | 0 | 1 | 0 | 0 | 0 | 1 | 2 | 0 | 0 |
MALAYSIA SABAH | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
NEWTON | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 |
NOVENA | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
ORCHARD | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
OTHERS | 1 | 1 | 0 | 0 | 0 | 0 | 2 | 1 | 0 |
PASIR RIS | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
PAYA LEBAR | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
PENANG | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
POLAND | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
PUNGGOL | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
QUEENSTOWN | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 1 |
REDHILL | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
SELETAR | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
SENGKANG | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |
SERANGOON | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
SINGAPORE | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
STEVENS ROAD | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
TAIWAN | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
TAN KAH KEE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
TANGLIN | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 1 |
TELOK BLANGAH | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
THAILAND | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
THOMSON | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
TIONG BAHRU | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
TOA PAYOH | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0 |
USA | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
WATTEN ESTATE | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
WOODLANDS | 1 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0 |
YIO CHU KANG | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
botanic_age_reason_part1 <- botanic_surveys %>%
select(`What is your age?`, `What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6'), sep =',', remove = FALSE, fill="right") %>%
filter(`What is your age?`!="NA") %>%
select(-`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
select(-c('2','3','4','5','6'))
botanic_age_reason_part2 <- botanic_surveys %>%
select(`What is your age?`, `What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6'), sep =',', remove = FALSE, fill="right") %>%
filter(`What is your age?`!="NA") %>%
select(-`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
select(-c('1','3','4','5','6'))
botanic_age_reason_part3 <- botanic_surveys %>%
select(`What is your age?`, `What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6'), sep =',', remove = FALSE, fill="right") %>%
filter(`What is your age?`!="NA") %>%
select(-`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
select(-c('2','1','4','5','6'))
botanic_age_reason_part4 <- botanic_surveys %>%
select(`What is your age?`, `What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6'), sep =',', remove = FALSE, fill="right") %>%
filter(`What is your age?`!="NA") %>%
select(-`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
select(-c('2','3','1','5','6'))
botanic_age_reason_part5 <- botanic_surveys %>%
select(`What is your age?`, `What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6'), sep =',', remove = FALSE, fill="right") %>%
filter(`What is your age?`!="NA") %>%
select(-`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
select(-c('2','3','4','1','6'))
botanic_age_reason_part6 <- botanic_surveys %>%
select(`What is your age?`, `What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
separate(`What is your reason for visiting the Singapore Botanic Gardens today?`, c('1','2','3','4','5','6'), sep =',', remove = FALSE, fill="right") %>%
filter(`What is your age?`!="NA") %>%
select(-`What is your reason for visiting the Singapore Botanic Gardens today?`) %>%
select(-c('2','3','4','5','1'))
names(botanic_age_reason_part2)[2] = '1'
names(botanic_age_reason_part3)[2] = '1'
names(botanic_age_reason_part4)[2] = '1'
names(botanic_age_reason_part5)[2] = '1'
names(botanic_age_reason_part6)[2] = '1'
botanic_age_reason <- na.omit(rbind(botanic_age_reason_part1,botanic_age_reason_part2,botanic_age_reason_part3,botanic_age_reason_part4,botanic_age_reason_part5,botanic_age_reason_part6))
names(botanic_age_reason)[2] = 'Activity'
botanic_age_reason <- botanic_age_reason[-which(botanic_age_reason$Activity== ""), ]
botanic_age_reason<- botanic_age_reason %>%
mutate(Activity=str_trim(Activity,"left"))
a <- table(botanic_age_reason$`What is your age?`,botanic_age_reason$Activity)
a <- as.data.frame(a)
write.table(a,"age_activities.csv")
colnames(a)=c("Age","Activity","Freq")
a <- a %>%
filter(Activity%in%c("To relax","To exercise","To listen to and observe nature","To escape from the city","To take photographs","To meet others","To be with my children","To get inspiration","To walk the dog","To meditate")) %>%
group_by(Activity) %>%
mutate(per=(round(Freq/sum(Freq)*100, 2))) %>%
ungroup
a$per <- as.numeric(as.character(a$per))
botanic_age_reason_elderly <- botanic_age_reason %>%
filter(`What is your age?`>=60)
#sort(table(botanic_age_reason_elderly$Activity))
botanic_surveys_elderly <- botanic_surveys %>%
filter(`What is your age?`>=60)
#table(botanic_surveys_elderly$`Who are you here with today?`)
ggplot(a,aes(Age,Activity)) + geom_tile(aes(alpha = per, fill = Activity)) +
scale_alpha(range = c(0.1, 1))+theme_fivethirtyeight()+
labs(title="Count of age group and activity") +
theme(axis.title = element_text("")) + ylab("Activity")+xlab("Age")
3.10.5 Word clouds for likes and dislikes of the garden
#install.packages("slam")
#install.packages('devtools')
library(devtools)
slam_url <- "https://cran.r-project.org/src/contrib/Archive/slam/slam_0.1-37.tar.gz"
#install_url(slam_url)
#install.packages("http://cran.r-project.org/bin/windows/contrib/3.0/tm_0.5-10.zip",repos=NULL)
library(tm)
#install.packages("SnowballC")
library(SnowballC)
#install.packages("RColorBrewer")
library(RColorBrewer)
library(dplyr)
#install.packages("wordcloud")
library(wordcloud)
Likes of the gardens
#like
like <- botanic_surveys$`What do you like about this place?` #open-response variable to a new variable for text transformations
like <- gsub("[^[:graph:]]", " ", like) #get rid of non graphical characters
like <- gsub("[[:punct:]]", "", like)# Remove punctuation
like <- gsub("rt", "", like)# Replace blank space ("rt")
like <- gsub("\\s+"," ",like)
like <- gsub("[ |\t]{3,}", "", like)# Remove tabs
like <- gsub("^ ", "", like)# Remove blank spaces at the beginning
like <- gsub(" $", "", like)# Remove blank spaces at the end
like <- tolower(like)#convert all text to lower case
table(like==c("no","nil","none"))
## Warning in like == c("no", "nil", "none"): longer object length is not a
## multiple of shorter object length
##
## FALSE
## 133
myCorpus <- Corpus(VectorSource(like))
myCorpus <- tm_map(myCorpus, removeNumbers)
myCorpus <- tm_map(myCorpus, removeWords, stopwords("english")) #removes common english stopwords
myCorpus <- tm_map(myCorpus, removeWords, c("don?t","nil","none","can?t","it?")) #You can specify words to remove
#build a term-document matrix
myTDM = TermDocumentMatrix(myCorpus, control = list(minWordLength = 1))
m = as.matrix(myTDM)
v = sort(rowSums(m), decreasing = TRUE)
d = data.frame(word = names(v),freq=v)
wordcloud(d$word, freq=d$freq, min.freq=1,scale=c(3,0.5), max.words=500, random.order=FALSE, rot.per=0.35,
use.r.layout=FALSE, colors=brewer.pal(8, "Dark2"))
#word associations of "greenery"
findFreqTerms(myTDM, lowfreq =6)
## [1] "air" "beautiful" "city" "fresh" "garden"
## [6] "good" "green" "greenery" "nature" "nice"
## [11] "peaceful" "place" "plants" "quiet" "trees"
findAssocs(myTDM,terms="green",corlimit = 0.1)
## green
## near 0.35
## ample 0.24
## better 0.24
## centre 0.24
## compared 0.24
## conveniently 0.24
## day 0.24
## field 0.24
## greeneries 0.24
## high 0.24
## hot 0.24
## keep 0.24
## located 0.24
## oasis 0.24
## office 0.24
## old 0.24
## parking 0.24
## parks 0.24
## quite 0.24
## rise 0.24
## road 0.24
## surroundings 0.24
## time 0.24
## whole 0.24
## great 0.21
## spaces 0.18
## cool 0.15
## free 0.15
## hard 0.15
## home 0.15
## large 0.15
## like 0.15
## pleasant 0.15
## fauna 0.11
## flora 0.11
## get 0.11
## space 0.11
Dislikes of the gardens
#dislike wordcloud
dislike <- botanic_surveys$`What do you not like about this place?` #open-response variable to a new variable for text transformations
dislike <- gsub("[^[:graph:]]", " ", dislike) #get rid of non graphical characters
dislike <- gsub("[[:punct:]]", "", dislike)# Remove punctuation
dislike <- gsub("rt", "", dislike)# Replace blank space ("rt")
dislike <- gsub("\\s+"," ",dislike)
dislike <- gsub("[ |\t]{3,}", "", dislike)# Remove tabs
dislike <- gsub("^ ", "", dislike)# Remove blank spaces at the beginning
dislike <- gsub(" $", "", dislike)# Remove blank spaces at the end
dislike <- tolower(dislike)#convert all text to lower case
table(dislike==c("no","nil","none","NA"))
## Warning in dislike == c("no", "nil", "none", "NA"): longer object length is
## not a multiple of shorter object length
##
## FALSE TRUE
## 116 9
myCorpus <- Corpus(VectorSource(dislike))
myCorpus <- tm_map(myCorpus, removeNumbers)
myCorpus <- tm_map(myCorpus, removeWords, stopwords("english")) #removes common english stopwords
myCorpus <- tm_map(myCorpus, removeWords, c("don?t","nil","none","can?t","it?","don?","can?","ceain","tre","tshi")) #You can specify words to remove
#build a term-document matrix
myTDM = TermDocumentMatrix(myCorpus, control = list(minWordLength = 1))
m = as.matrix(myTDM)
v = sort(rowSums(m), decreasing = TRUE)
d = data.frame(word = names(v),freq=v)
wordcloud(d$word, freq=d$freq, min.freq=1,scale=c(2,0.5), max.words=500, random.order=FALSE, rot.per=0.35,
use.r.layout=FALSE, colors=brewer.pal(8, "Dark2"))
Desired changes of the gardens
#change
change <- botanic_surveys$`If you could change or add something to the park, what would that be?` #open-response variable to a new variable for text transformations
change <- gsub("[^[:graph:]]", " ", change) #get rid of non graphical characters
change <- gsub("[[:punct:]]", "", change)# Remove punctuation
change <- gsub("rt", "", change)# Replace blank space ("rt")
change <- gsub("\\s+"," ",change)
change <- gsub("[ |\t]{3,}", "", change)# Remove tabs
change <- gsub("^ ", "", change)# Remove blank spaces at the beginning
change <- gsub(" $", "", change)# Remove blank spaces at the end
change <- tolower(change)#convert all text to lower case
table(change==c("no","nil","none"))
## Warning in change == c("no", "nil", "none"): longer object length is not a
## multiple of shorter object length
##
## FALSE TRUE
## 123 6
myCorpus <- Corpus(VectorSource(change))
myCorpus <- tm_map(myCorpus, removeNumbers)
myCorpus <- tm_map(myCorpus, removeWords, stopwords("english")) #removes common english stopwords
myCorpus <- tm_map(myCorpus, removeWords, c("don?t","nil","none","can?t","it?")) #You can specify words to remove
#build a term-document matrix
myTDM = TermDocumentMatrix(myCorpus, control = list(minWordLength = 1))
m = as.matrix(myTDM)
v = sort(rowSums(m), decreasing = TRUE)
d = data.frame(word = names(v),freq=v)
wordcloud(d$word, freq=d$freq, min.freq=1,scale=c(3,0.5), max.words=500, random.order=FALSE, rot.per=0.35,
use.r.layout=FALSE, colors=brewer.pal(8, "Dark2"))
3.10.6 Likert rating frequency plot
# packages needed for the nice likert plot
library(reshape2)
library(RColorBrewer)
#install.packages("ggthemes")
library(ggthemes)
library(data.table)
#install.packages("RColorBrewer")
library(RColorBrewer)
likert_data <- as.data.frame(botanic_surveys[,10:20])
likert_data_proportions <- as.data.frame(response.frequencies(likert_data, uniqueitems = 1:5))
likert_data_proportions <- likert_data_proportions %>%
mutate(Question=c("Layout of botanic gardens","Wayfinding within botanic gardens","Accessibility of botanic gardens","Satisfaction of flora and fauna", "Variety of food","Affordability of food","Perception of crowdedness","Availability of seating areas","Availability of sheltered areas","Range of activities","Perception of safety"))
likert_data_proportions <- likert_data_proportions[c("Question","1","2","3","4","5","miss")]
colnames(likert_data_proportions)<-c("Question","Strongly Disagree","Disagree","Neutral","Agree","Strongly Agree","Unanswered")
# Append missing levels
#likert_data_proportions %>% group_by(Question) %>% mutate(value = value / sum(value)) %>%
#ggplot(aes(x = Question, y = ifelse(ind %in% 1:2, -value, value), fill = ind)) +
#geom_col() +
#coord_flip()
mytitle<-"Perception of Botanic Gardens"
mylevels<-c("Strongly Disagree","Disagree","Neutral","Agree","Strongly Agree")
tab <- likert_data_proportions[-7]
numlevels<-length(tab[1,])-1
numcenter<-ceiling(numlevels/2)+1
tab$midvalues<-tab[,numcenter]/2
tab2<-cbind(tab[,1],tab[,2:ceiling(numlevels/2)],
tab$midvalues,tab$midvalues,tab[,numcenter:numlevels+1])
colnames(tab2)<-c("Aspect",mylevels[1:floor(numlevels/2)],"midlow",
"midhigh",mylevels[numcenter:numlevels])
numlevels<-length(mylevels)+1
point1<-2
point2<-((numlevels)/2)+1
point3<-point2+1
point4<-numlevels+1
mymin<-(ceiling(max(rowSums(tab2[,point1:point2]))*4)/4)*-100
mymax<-(ceiling(max(rowSums(tab2[,point3:point4]))*4)/4)*100
numlevels<-length(tab[1,])-1
temp.rows<-length(tab2[,1])
pal<-brewer.pal((numlevels-1),"RdBu")
pal[ceiling(numlevels/2)]<-"#DFDFDF"
legend.pal<-pal
pal<-c(pal[1:(ceiling(numlevels/2)-1)], pal[ceiling(numlevels/2)],
pal[ceiling(numlevels/2)], pal[(ceiling(numlevels/2)+1):(numlevels-1)])
tab3<-melt(tab2,id="Aspect")
tab3$col<-rep(pal,each=temp.rows)
tab3$value<-tab3$value*100
tab3$Aspect<-str_wrap(tab3$Aspect, width = 40)
tab3$Aspect<-factor(tab3$Aspect, levels = tab2$Aspect[order(-(tab2[,5]+tab2[,6]+tab2[,7]))])
highs<-na.omit(tab3[(length(tab3[,1])/2)+1:length(tab3[,1]),])
lows<-na.omit(tab3[1:(length(tab3[,1])/2),])
lows <- lows[rev(rownames(lows)),]
lows$col <- factor(lows$col, levels = c("#CA0020","#F4A582", "#DFDFDF"))
ggplot() + geom_bar(data=highs, aes(x = Aspect, y=value, fill=col), position="stack", stat="identity") +
geom_bar(data=lows, aes(x = Aspect, y=-value, fill=col), position="stack", stat="identity") +
geom_hline(yintercept = 0, color =c("white")) +
scale_fill_identity("Percent", labels = mylevels, breaks=legend.pal, guide="legend") +
theme_fivethirtyeight() +
coord_flip() +
labs(title=mytitle, y="",x="") +
theme(plot.title = element_text(size=14, hjust=0.5)) +
theme(axis.text.y = element_text(hjust=0)) +
theme(legend.position = "bottom") +
scale_y_continuous(breaks=seq(mymin,mymax,25), limits=c(mymin,mymax))
3.10.7 Likert analysis for age and gender differences
3.10.8 Correlation analysis of attributes
#correlation matrix of factors
botanic_surveys_shorter <- botanic_surveys[,10:20]
colnames(botanic_surveys_shorter) = c("layout","wayfinding","accessibility","flora & fauna","food variety","food affordability","crowd level","seating areas","sheltered areas","activities range","safety")
# 1. Compute correlation
cormat <- round(cor(botanic_surveys_shorter),2)
# 2. Reorder the correlation matrix by
# Hierarchical clustering
hc <- hclust(as.dist(1-cormat)/2)
cormat.ord <- cormat[hc$order, hc$order]
# 3. Get the upper triangle
cormat.ord[lower.tri(cormat.ord)]<- NA
# 4. Melt the correlation matrix
require(reshape2)
melted_cormat <- melt(cormat.ord, na.rm = TRUE)
# Create the heatmap
ggplot(melted_cormat, aes(Var2, Var1, fill = value))+
geom_tile(color = "white")+
scale_fill_gradient2(low = "blue", high = "red", mid = "white",
midpoint = 0, limit = c(-1,1), space = "Lab",
name="Pearson\nCorrelation") + # Change gradient color
theme_fivethirtyeight()+ # minimal theme
theme(axis.text.x = element_text(angle = 45, vjust = 1,
size = 12, hjust = 1))+
coord_fixed()
3.11 Reflections on survey analysis
Comparison of methods for survey data cleaning
Data cleaning | Bad practice | Good practice |
---|---|---|
Working with long column titles with spacings | Leaving it as it is, and using ` throughout | To use clean_names() from janitor package to replace spacings with underscores and rename function to shorten the column names |
Dealing with multiple response questions | To create a separate table from each column of multiple response question, which withdraws relation to other columns in the original dataset | To use group_by, count and spread functions to split the column and append the resulting columns to the original dataset |