在r数据框中使用group by

时间:2017-04-06 15:40:38

标签: r dataframe

的数据看起来类似于下面的

UserID  dob  start_date induction_date  end_date
1       1990-12-12          
1             2010-10-10        
1                       2010-10-12  
1                                      2016-10-31
2       1991-12-14          
2            2011-10-10     
2                      2011-10-12   
2                                     2015-10-31

我想通过选择所有数据来创建数据框,以便将具有公共ID的所有数据显示为一行。我尝试过使用

sec_data <- sqldf('select * from first_data group by id')

但我收到错误

  

“match.fun(asfn)中的错误:'c(”as.labelled“,”as.integer“)'不是   功能,字符或符号“

1 个答案:

答案 0 :(得分:0)

你可以尝试通过填充空白然后删除重复来做一个hacky方式。您需要为每个列执行以下代码(您没有提供数据集,因此我无法对其进行测试)。

value<-0  
for (i in 1:length(first_data)){
  if (first_data$dob[i]!= ''){
    value=first_data$dob[i]
  } else {
  first_data$dob[i]<-value
}

对每个列执行此操作后,从表中删除重复项

first_data<-unique(first_data)

可能有一种更好的方法,但这是我能想到的最简单的方法,没有一组数据来构建更复杂的东西。