【发布时间】:2021-12-29 09:16:10
【问题描述】:
我需要删除 date_engaged 列中的重复值,或者是否有任何其他方法可以在不更改列值的情况下获取行数
预期输出
数据
structure(list(Incubatee = c("Janitri", "Janitri"), partnership_type = c("GTM",
"GTM"), plan_end_date = c("2021-06-30", "2021-06-30"), date_engaged = c("2021-06-20",
"2021-07-06")), row.names = c(NA, -2L), groups = structure(list(
Incubatee = "Janitri", .rows = structure(list(1:2), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
我用来获取plan_end_date ,date_engaged 的行数的函数
create_Incubatee_section = function(Incubatee_data) {
main_row = data.frame(
Incubatee = Incubatee_data$Incubatee[1],
partnership_type = "",
plan_end_date = "",
date_engaged = ""
)
partnership_type_rows = lapply(
Incubatee_data$partnership_type,
function(inc) {
data.frame(
Incubatee = "",
partnership_type = inc,
plan_end_date = unique(Incubatee_data$plan_end_date),
date_engaged = date_engaged[which(!duplicated(date_engaged))]
)
}
)
Reduce(rbind, x = c(list(main_row), partnership_type_rows))
}
expand_collapse = function(data) {
Incubatee_data = split(data, data$Incubatee)
Incubatee_sections = lapply(Incubatee_data, create_Incubatee_section)
total_row = data.frame(
Incubatee = "Total",
partnership_type = "",
plan_end_date = nrow(data),
date_engaged = nrow(data)
)
Reduce(rbind, x = c(Incubatee_sections, list(total_row)))
}
DT::datatable(expand_collapse(x), rownames = F,escape = FALSE,selection=list(mode="single",target="row"),options = list(pageLength = 50,scrollX = TRUE,dom = 'tp',ordering=F,columnDefs = list(list(visible=FALSE),list(className = 'dt-left', targets = '_all'))),class='hover cell-border stripe')
【问题讨论】:
-
你试过
unique(df)吗? -
expand_collapse(unique(x)) 试过这个仍然得到相同的电流输出