Template:Index/author: Difference between revisions

mNo edit summary
 
No edit summary
 
Line 14: Line 14:
{{#repeat:TableRow6/author|6|
{{#repeat:TableRow6/author|6|
{{#cdr:
{{#cdr:
{{#lua:
{{#invoke:Index|Author| {{{1|Z}}} {{#SearchTitle:.*|Reference}}}}
  local key = stdin:match("%w+");
  local H = {};
  local I = {};
  for line in stdin:gmatch("(%S+)") do
  for names, ja, yr in string.gmatch(line,"([%a:_']+),([%w\._]+),([%d]+),") do
    for name in string.gmatch(names,"([%a_']+)") do
      if (string.sub(name,0,1) == key) then
        if (H[name] == nil) then
          tmp = {};
          tmp[line] = tonumber(yr);
          H[name] = tmp;
          table.insert(I, name);
        else
          tmp = H[name];
          tmp[line] = tonumber(yr);
        end
      end
    end
  end
  end
  table.sort(I);
  local ret = "";
  for i=1,table.getn(I) do
    local author = I[i];
    local tmp = H[author];
    local count = 0;
    local peakDist = {};
    local coAu = {};
    local earliest = 3000;
    local latest = 0;
    for k,v in pairs(tmp) do
      --check earliest and latest publications
      if (earliest > v) then earliest = v; end
      if (latest < v) then latest = v; end
      count = count + 1;
      for i=v-2,v+2 do
        if (peakDist[i] == nil)
          then peakDist[i] = 3-math.abs(v-i);
          else peakDist[i] = peakDist[i] + 3-math.abs(v-i);
        end
      end
      --check major coauthors
      for names, ja, yr in string.gmatch(k,"([%a:_']+),([%w\._]+),([%d]+),") do
        for name in string.gmatch(names,"([%a_']+)") do
          if (name ~= author) then
            if (coAu[name] == nil) then
              coAu[name] = 1;
            else
              coAu[name] = coAu[name] + 1;
            end
          end
        end
      end
    end
    local peak = 0;
    local peakY = 0;
    for k,v in pairs(peakDist) do
      if (v > peak) then peakY = k; peak = v; end
    end
    local auL = "";
    if (count > 4) then
      for k,v in pairs(coAu) do
        if (v >= 3) then
          if (auL == "") then
            auL = k; else auL = auL .. ":" .. k; end
        end
      end
    end
    ret = ret .. "&&" .. author ..
"&&" .. count .. "&&" .. earliest .. "&&" .. latest ..
"&&" .. peakY .. "&&" .. auL .. "\n";
  end
  print(ret);
| {{{1|Z}}} {{#SearchTitle:.*|Reference}}
}}
|&&}}
|&&}}
|&&}}
|&&}}

Latest revision as of 05:41, 3 February 2023

著者名のインデクス {{{1}}} 値(文字列) {{{2}}} ページタイトル (FL/LB/..) This page is automatically generated using Persist function (Last updated: 20230203054128).

{{#persist:FLindex/author a|go to Index a|Index/author|2|a;FL Author}} [[Index:{{{2}}}|Back to Index]] {{#persist:FLindex/author z|go to Index z|Index/author|2|z;FL Author}}

Author #articles earliest
paper
latest
paper
peak
year
major
coauthors
1 1977 1977 1977
6 1991 2003 1991
2 1984 1986 1986
1 1986 1986 1986
2 1976 1976 1976
2 2002 2005 2003
2 1962 1963 1962
1 2004 2004 2004
1 1983 1983 1983
7 1981 1991 1981
1 1996 1996 1996
1 1996 1996 1996
4 1956 1959 1956
1 1999 1999 1999
1 1988 1988 1988
1 1931 1931 1931
1 2013 2013 2013
1 1993 1993 1993
1 1995 1995 1995
4 1991 1998 1992
1 1992 1992 1992
2 2003 2008 2008
3 1992 1994 1993
2 1994 1994 1994
1 1993 1993 1993
1 1964 1964 1964
1 1989 1989 1989
1 1999 1999 1999
1 1995 1995 1995
1 2000 2000 2000
3 1963 1973 1970
1 1963 1963 1963
1 1989 1989 1989
2 1976 1976 1976
1 1952 1952 1952
2 1976 1976 1976
3 1987 1989 1987
1 1989 1989 1989
1 1970 1970 1970
1 1985 1985 1985
1 1988 1988 1988
1 1998 1998 1998
2 1988 1991 1989
1 1996 1996 1996
1 1987 1987 1987
2 1966 1969 1968
1 2001 2001 2001
5 1982 1988 1982
1 2013 2013 2013
1 1988 1988 1988
1 1937 1937 1937
1 1999 1999 1999
1 1998 1998 1998
1 1999 1999 1999
1 1998 1998 1998
3 1981 1989 1981
1 1963 1963 1963
2 1991 1995 1991

#top