# R Language df = read.delim('07_table.dat', header=TRUE) for(snippet in levels(df$snippet)) df[df$snippet == snippet, "z.duration"] = scale(df[df$snippet == snippet, "duration"]) # Python with NumPy, SciPy and Pandas import pandas import scipy.stats as stats df = pandas.read_csv('07_table.dat', delimiter='\t') ## Magic! df['zduration'] = df.groupby('snippet', sort=False).transform(stats.zscore).duration