我想知道是否可以study在data下面的每個唯一值后添加一個空白行?
我的Desired_output是下面。
請注意,這是一個玩具資料。高度贊賞功能性答案。
data <- data.frame(study=c(rep(1,2),2:3), year=c(rep(2001,2),2002:2003))
Desired_output =
" study year
1 1 2001
2 1 2001
# <- Blank row
3 2 2002
# <- Blank row
4 3 2003"
uj5u.com熱心網友回復:
您可以使用group_split按組將資料拆分為資料框串列。然后在每個串列元素上映射一個函式,并使用map_dfr.
library(dplyr)
library(tibble)
library(purrr)
data %>%
group_split(study) %>%
map_dfr(~ add_row(.x, .after = Inf))
輸出
study year
<dbl> <dbl>
1 1 2001
2 1 2001
3 NA NA
4 2 2002
5 NA NA
6 3 2003
7 NA NA
uj5u.com熱心網友回復:
這是一個基本的 R 解決方案:
data_new <- as.data.frame(lapply(data, as.character), stringsAsFactors = FALSE)
head(do.call(rbind, by(data_new, data$study, rbind, "")), -1)
study year
1.1 1 2001
1.2 1 2001
1.3
2.3 2 2002
2.2
3.4 3 2003
uj5u.com熱心網友回復:
按等于 study 的新列分組,然后使用 group_modify 在每個組的末尾添加一行。最后洗掉 study2 和最后一行。
library(dplyr)
data %>%
group_by(study2 = study) %>%
group_modify(~ add_row(.)) %>%
ungroup %>%
select(-study2) %>%
slice(-n())
給予:
# A tibble: 7 x 2
study year
<dbl> <dbl>
1 1 2001
2 1 2001
3 NA NA
4 2 2002
5 NA NA
6 3 2003
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/377260.html
