我是R的新手;有一个简单的绊脚石,我一直在寻找答案。
日期框架包括五年期间表现的个人名单。分析需要仅包括最近一年参与的那些人,因此我需要识别这些个体,然后从原始数据框中为所有列的个人选择所有记录(其他50个或更多列) )。
原始数据框架是performance_fiveyr;与我合作的变量是person_id和year。我已经尝试了许多可能的方法来获得我需要的东西;我在这里列出了其中一种方式......
第一步是创建过去一年参与的个人名单
person_current <- subset (x = performance_fiveyr,
subset = year==2015, # keep only records from 2015
select = person_id # keep only the person_id variable
)
然后,下一步是从performance_fiveyr中选择Person_id中存在person_id的所有行,并返回所有其他列(总共超过50列)。
performance_current <- performance_fiveyr[performance_fiveyr$person_id
%in% person_current, ]
我尝试过多次此类变体,最终得到所有列,没有行或所有行,也没有变量。
答案 0 :(得分:1)
请始终提供一些示例数据:
set.seed(0)
p5 <- data.frame(id = sample(5, 20, replace=TRUE), year = sample(2010:2015, 20, replace=TRUE))
p5 <- p5[order(p5$id, p5$year), ]
我认为你走在了正确的轨道上。我认为以下内容符合您的要求:
current <- unique(p5[p5$year==2015, 'id'])
p_current <- p5[p5$id %in% current, ]
p_current