Using data.table
you can try
library(data.table)
df <- tsibbledata::global_economy
setDT(df)
df[, PerCapita:= GDP/Population]
df[which.max(PerCapita)]
#Output
Country Code Year GDP Growth CPI Imports Exports Population PerCapita
1: Monaco MCO 2014 7060236168 7.179637 NA NA NA 38132 185152.5
Suppose you want to get the country with the max GDP per capita per year:
df[,Country[which.max(PerCapita)], by = Year]
Year V1
1: 1960 United States
2: 1961 United States
3: 1962 United States
4: 1963 United States
5: 1964 United States
6: 1965 Kuwait
7: 1966 Kuwait
8: 1967 United States
9: 1968 United States
10: 1969 United States
11: 1970 Monaco
12: 1971 Monaco
13: 1972 Monaco
14: 1973 Monaco
15: 1974 Monaco
16: 1975 Monaco
17: 1976 United Arab Emirates
18: 1977 United Arab Emirates
19: 1978 Monaco
20: 1979 Monaco
21: 1980 Monaco
22: 1981 Monaco
23: 1982 Monaco
24: 1983 Monaco
25: 1984 Monaco
26: 1985 Monaco
27: 1986 Monaco
28: 1987 Monaco
29: 1988 Monaco
30: 1989 Monaco
31: 1990 Monaco
32: 1991 Monaco
33: 1992 Monaco
34: 1993 Monaco
35: 1994 Monaco
36: 1995 Monaco
37: 1996 Monaco
38: 1997 Monaco
39: 1998 Monaco
40: 1999 Monaco
41: 2000 Monaco
42: 2001 Monaco
43: 2002 Monaco
44: 2003 Monaco
45: 2004 Monaco
46: 2005 Monaco
47: 2006 Monaco
48: 2007 Monaco
49: 2008 Monaco
50: 2009 Monaco
51: 2010 Monaco
52: 2011 Monaco
53: 2012 Monaco
54: 2013 Liechtenstein
55: 2014 Monaco
56: 2015 Liechtenstein
57: 2016 Monaco
58: 2017 Luxembourg