R 如何提取列表中每个组第一列的最后一行?

R 如何提取列表中每个组第一列的最后一行?,r,lapply,R,Lapply,我一直在尝试编写一个函数,可以提取每个州死亡率最低的酒店名称。下面我记下了我尝试过的代码,但输出与正确答案不匹配 state_data <- state_data[order(state_data$State, state_data$Deaths),] state_data <- split(state_data, state_data$State) output <- do.call(rbind, lapply(state_data, function(x) { c(x[

我一直在尝试编写一个函数,可以提取每个州死亡率最低的酒店名称。下面我记下了我尝试过的代码,但输出与正确答案不匹配

state_data <- state_data[order(state_data$State, state_data$Deaths),]
state_data <- split(state_data, state_data$State)
output <- do.call(rbind, lapply(state_data, function(x) {
  c(x[nrow(x), 1], x[1, 2]) ## x[1,2] returns the state name
}))
data.frame(output)  

state\u data一个选项是使用
[
提取第一列,并使用
tail
获取最后一个元素

sapply(state_data, function(x) tail(x[[1]], 1))

或者在向上拆分的数据集上使用
dplyr

library(dplyr)
state_data %>%
    group_by(State) %>%
    select(1) %>%
    slice(n())