按组选择第一行

按组选择第一行

来自这样的数据框架


test <- data.frame('id'= rep(1:5,2), 'string'= LETTERS[1:10])

test <- test[order(test$id), ]

rownames(test) <- 1:10


> test

    id string

 1   1      A

 2   1      F

 3   2      B

 4   2      G

 5   3      C

 6   3      H

 7   4      D

 8   4      I

 9   5      E

 10  5      J

我想用每个id / string对的第一行创建一个新的。如果sqldf在其中接受R代码,则查询可能如下所示:


res <- sqldf("select id, min(rownames(test)), string 

              from test 

              group by id, string")


> res

    id string

 1   1      A

 3   2      B

 5   3      C

 7   4      D

 9   5      E

有没有像创建新列那样的解决方案


test$row <- rownames(test)

并使用min(行)运行相同的sqldf查询?


繁星coding
浏览 410回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP