Public
Edited
Feb 22, 2023
Insert cell
Insert cell
Insert cell
raw = FileAttachment("personality_survey_participation_MI@3.csv").url()
Insert cell
data = d3.csv(raw, d => {
console.log(d)
return {
id: +d['id'],
Openness: +d['Openness'],
Conscientiousness: +d['Conscientiousness'],
Extraversion: +d['Extraversion'],
Agreeableness: +d['Agreeableness'],
Neuroticism: +d['Neuroticism'],
BMissing: +d['BMissing'],
CMissing: +d['CMissing'],
Attrition: +d['Attrition'],
Age: +d['Age'],
Gender: +d['Gender'],
Education: +d['Education'],
}
})
Insert cell
data
Type Table, then Shift-Enter. Ctrl-space for more options.

Insert cell
no_attrition = d3.filter(data, d => d.Attrition === '0')
Insert cell
attrition = d3.filter(data, d => d.Attrition === '1')
Insert cell
Insert cell
t1_edu_group = d3.group(data, d => d.Education)
Insert cell
big_five = ['Openness', 'Conscientiousness', 'Extraversion', 'Agreeableness', 'Neuroticism']
Insert cell
Insert cell
list = []
Insert cell
big_five.forEach(item => {
list.push({
key: item,
'attrition median': d3.mean(t1_edu_group.get(0), d => d[item]),
'attrition deviation': d3.deviation(t1_edu_group.get(0), d => d[item]),
'no attrition median': d3.mean(t1_edu_group.get(1), d => d[item]),
'no attrition deviation': d3.deviation(t1_edu_group.get(1), d => d[item]),
})
})
Insert cell
list
Type Table, then Shift-Enter. Ctrl-space for more options.

Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more