data_file=FileAttachment("NGOs & Digital Rights in the Global South - NGOs.csv")
data_text=data_file.text()
d3=require("d3-dsv@1")
data=d3.csvParse(data_text,d3.autoType)
import{printTable}from"@uwdata/data-utilities"
printTable(data)
// Returns an array of values in key, assuming that
// they are separated by newline characters.
functionextract(i,key)
{
varvalues=null;
varvalues_text=data[i][key];
if(values_text==null)
values=[];
else
values=values_text.split("\n");
varclean_values=[];
for(variinvalues)
{
varv=values[i].trim();
if(v=="")
continue;
if(v.endsWith("."))
v=v.substring(0,v.length-1);
clean_values.push(v);
}
returnclean_values;
}
{
letngo_nf_data={};
leti=0;
for(i=0;i<data.length;i++)
{
varngo=data[i]["Name of NGO"];
varnf=extract(i,"Normalised funders");
ngo_nf_data[ngo]=nf;
}
returnngo_nf_data;
}
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.