RScript和统计找到min

时间:2013-05-12 15:21:18

标签: r rscript

我需要找到以下最低要求:

  Product Year
   N1     1988
   N2     1986
   N1     2008
   N1     2008
   N2     1999
   N2     2007

我想找到使用RScript首次列出的年份产品。例如,产品N1于1988年首次上市。产品N2于1986年首次上市。同样,我必须为500000产品做好。

2 个答案:

答案 0 :(得分:3)

有不同的可能性:aggregatetapplyby

dat <- read.table(text = " Product Year
   N1     1988
   N2     1986
   N1     2008
   N1     2008
   N2     1999
   N2     2007", header = TRUE)

aggregate(Year ~ Product, dat, min)
  Product Year
1      N1 1988
2      N2 1986

with(dat, tapply(Year, Product, min))
  N1   N2 
1988 1986 

with(dat, by(Year, Product, min))
Product: N1
[1] 1988
-------------------------------------------------------------------------------- 
  Product: N2
[1] 1986

答案 1 :(得分:1)

这在R中非常简单。尝试:

dframe = read.table(text=" Product Year
   N1     1988
   N2     1986
   N1     2008
   N1     2008
   N2     1999
   N2     2007", header=T)

lapply(split(dframe$Year, dframe$Product), FUN=min)
$N1
[1] 1988

$N2
[1] 1986

此处的主要功能是?split?lapplysplit()按产品组拆分数据框并返回列表列表。 lapply()将函数min()应用于每个列表,并返回由相关列表(产品)索引的输出。