问题描述
structure(list(AGE_GROUP = c("21-30","31-40","41-50"),DATE = c("12/17/2020","12/17/2020","12/17/2020"),VACCINE_COUNT = c(36L,47L,26L),PERC_TOTAL_VACC = c(24.82758621,32.4137931,17.93103448),RECIPIENT_COUNT = c(NA_integer_,NA_integer_,NA_integer_
),PERC_TOTAL_RECIP = c(NA_real_,NA_real_,NA_real_),RECIP_FULLY_VACC = c(NA_integer_,NA_integer_),PERC_FULLY_VACC = c(NA_real_,NA_real_)),row.names = c(NA,3L),class = "data.frame")
基于年龄组,我想制作一列包含此数字 c(8,12,13,16,14,12) 的列,并重复此列 3 次。所以结果是一个新的列,有 3 次提到的数字。
我已使用此代码 vaccine<-vaccine %>% mutate(new_col = rep(list(vals),n())) %>% unnest()
我有这样的东西
"12/18/2020","12/18/2020"),VACCINE_COUNT = c(421L,421L,421L
),PERC_TOTAL_VACC = c(15.52932497,15.52932497,15.52932497),X = c(NA,NA,NA),X.1 = c(14L,14L,14L),new_col = c(8,13)),-3L),class = c("tbl_df","tbl","data.frame"))```
While I want to keep my data and just repeat the data
解决方法
您的意思是要为数据框中的每一行重复值 c(8,12,13,16,14,12)
吗?试试:
library(dplyr)
library(tidyr)
vals <- c(8,12)
df %>%
mutate(new_col = rep(list(vals),n())) %>%
unnest(new_col)
,
使用 base R
transform(df1[rep(seq_len(nrow(df1)),each = length(vals)),],new_col = vals)
或者用uncount
library(dplyr)
library(tidyr)
df1 %>%
uncount(length(vals)) %>%
mutate(new_col = rep(vals,length.out = n()))
如果我们只需要 rep
licate 和存储列,用一个 list
df1 %>%
mutate(new_col = list(vals))
数据
vals <- c(8,12)