在R中找到中位数

时间:2015-03-24 10:39:19

标签: r median

socialsec  
411223  
420211   
420604
430404 
431030
440127
910415
950110
740505
910101

这是瑞典社会安全号码的数字列,格式为yymmdd我想找到他们的中位数年份。 ( 如果那个人的年龄高于中位年龄,我想创建一个新栏目,这个人是“老”。我想把新栏目称为“年龄” 对于年龄小于中位年龄的人来说也是如此。在同一栏“年龄”中,他们表现为“年轻” 这当然是一个非常基本的问题,但我不是R的经验丰富的用户。

2 个答案:

答案 0 :(得分:3)

如果您的初始data.frame是df

df$socialsec = as.Date(paste0('19',as.character(df$socialsec)), format='%Y%m%d')
df$age = ifelse(df$socialsec < median(df$socialsec), 'old', 'young')

其中:

df = structure(list(socialsec = c(411223L, 420211L, 420604L, 430404L, 
431030L, 440127L, 910415L, 950110L, 740505L, 910101L)), .Names = "socialsec",     
class = "data.frame", row.names = c(NA, -10L))

答案 1 :(得分:2)

你也可以这样做(&#39; df&#39;来自@Colonel Beauvel&#39;)

df$age <- with(df, c('young', 'old')[(socialsec > median(socialsec))+1L])