假设我的数据是df <- c("Author1","Reference1","Abstract1","Author2","Reference2","Abstract2","Author3","Reference3","Author4","Reference4","Abstract4").
这是一个系列,顺序为作者、参考文献和摘要。但在某些情况下,摘要数据会丢失。(在此示例中,缺少第三个摘要。)那么,当摘要丢失时,如何添加 NA 值来代替摘要呢?
换句话说,如果向量中的一个元素以单词“Reference”开头,但其下一个元素不以单词“Abstract”开头,我想在以“Reference”开头的元素后面添加一个 NA 值。结果向量应该是
result <- c("Author1","Reference1","Abstract1","Author2","Reference2","Abstract2","Author3","Reference3",NA,"Author4","Reference4","Abstract4")
How can I do it?
我已经尝试过 R 中的追加函数,但是为了使用它,我需要有要添加 NA 的元素的索引号。因此,每个 NA 元素都需要手动输入。
一种方法(也是我完成这些事情的唯一方法)是用小标题或数据框来思考:(所以这不是最好的方法)!
x,调用parse_number()函数来自readr(I love parse_number()),summarise(cur_data()[seq(3),])参阅将每个组扩展到最大行数,请参阅此处将每个组扩展到最大 n 行
3a 在此停止,如果需要 NA,则拉出,否则继续1. 如果需要 NA:
library(dplyr)
library(readr)
my_vector <- tibble(x = c("Author1","Reference1","Abstract1","Author2","Reference2",
"Abstract2","Author3","Reference3","Author4","Reference4","Abstract4")) %>%
group_by(group= parse_number(x)) %>%
summarise(cur_data()[seq(3),]) %>%
pull(x)
[1] "Author1" "Reference1" "Abstract1" "Author2" "Reference2" "Abstract2" "Author3"
[8] "Reference3" NA "Author4" "Reference4" "Abstract4"
Run Code Online (Sandbox Code Playgroud)
2. 如果需要缺少的单词:
library(dplyr)
library(readr)
my_vector <- tibble(x = c("Author1","Reference1","Abstract1","Author2","Reference2",
"Abstract2","Author3","Reference3","Author4","Reference4","Abstract4")) %>%
group_by(group= parse_number(x)) %>%
summarise(cur_data()[seq(3),]) %>%
mutate(group = paste0(c("Author", "Reference", "Abstract"), group)) %>%
pull(group)
Run Code Online (Sandbox Code Playgroud)
[1] "Author1" "Reference1" "Abstract1" "Author2" "Reference2" "Abstract2" "Author3"
[8] "Reference3" "Abstract3" "Author4" "Reference4" "Abstract4"
Run Code Online (Sandbox Code Playgroud)