gpt4 book ai didi

r - 向上合并行,而列单元格中缺少值

转载 作者:行者123 更新时间:2023-12-04 08:11:56 26 4
gpt4 key购买 nike

我从格式不佳的 pdf 表中读取了一些数据,其中单元格有时跨越几页。这给我留下了一个与此类似的数据框:

company_name <- c("company_a", NA, "company_a", "company_b", "company_b", NA)
text <- c("some_text", "text that should be in the above cell","some_text", "some_text", "some_text","text that should be in the above cell")
more_text <- c("some_text", "text that should be in the above cell", "some_text", "some_text", "some_text","text that should be in the above cell")
df <- data.frame(company_name, text, more_text)


公司名
文本
更多_文本


公司_a
some_text
some_text

不适用
应在上述单元格中的文本
应在上述单元格中的文本

公司_a
some_text
some_text

公司_b
some_text
some_text

公司_b
some_text
some_text

不适用
应在上述单元格中的文本
应在上述单元格中的文本


我怎么能合并具有缺失值的行,其中“company_name”应该是这样的,所以它看起来更像这样,并且还在所有以 NA 开头的行上循环它:


公司名
文本
更多_文本


公司_a
some_text + 应在上述单元格中的文本
some_text + 应在上述单元格中的文本

公司_a
some_text
some_text

公司_b
some_text
some_text

公司_b
some_text + 应在上述单元格中的文本
some_text + 应在上述单元格中的文本


我试过 unheadr包,但我似乎无法弄清楚要使用的正确功能。
编辑:为了更清晰,重新做了这个例子

最佳答案

我们基于 NA 元素 ( ind ) 创建一个逻辑列,然后通过转换 'ind' 或 ( | ) lead 来创建 'grp'该列到数字索引 rleid , 使用 fill替换 NA 'company_name 中前一个非 NA 的元素,然后使用分组列和 summarise across其他列由 paste将元素组合在一起

library(dplyr)
library(tidyr)
library(stringr)
library(data.table)
df %>%
mutate(ind = is.na(company_name),
grp = rleid(ind|lead(ind))) %>%
fill(company_name) %>%
group_by(company_name, grp) %>%
summarise(across(contains('text'), str_c, collapse=" + "), .groups = 'drop') %>%
select(-grp)
# A tibble: 4 x 3
# company_name text more_text
# <chr> <chr> <chr>
#1 company_a some_text + text that should be in the above cell some_text + text that should be in the above cell
#2 company_a some_text some_text
#3 company_b some_text some_text
#4 company_b some_text + text that should be in the above cell some_text + text that should be in the above cell
数据
df <- data.frame(company_name = company_a, text, more_text)

关于r - 向上合并行,而列单元格中缺少值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65908928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com