Я хочу записать различные файлы .csv, основанные на комбинации значений и столбцов. Пример таблицы tbl можно найти ниже:
# libs
library(tidyverse)
library(data.table)
# tbl
tbl <- tibble(
Record = 1:100,
B1 = c(rep("B1", 10), rep(NA, 90)),
B2 = c(rep("B2", 20), rep(NA, 80)),
B3 = c(rep("B3", 40), rep(NA, 60)),
B4 = c(rep("B4", 70), rep(NA, 30)),
B5 = c(rep("B5", 95), rep(NA, 5))
)
tbl
Написание различных файлов CSV один за другим можно сделать так:
B1 <- tbl %>%
filter(B1 == "B1") %>%
select(Record, B1) %>%
fwrite(., file = "B1.csv")
Однако я хочу повторить этот процесс, сделав пользовательская функция и запись различных файлов .csv по одному для каждой комбинации столбцов значений. Я попробовал что-то вроде этого ниже.
Batch <- "B1"
f_stack <- function(Batch) {
batch <- tbl %>%
filter(Batch == Batch) %>%
select(Record, Batch)
return(batch)
}
f_stack(Batch)
Однако он не фильтрует правильные записи. Я пропустил строку кода fwrite
, потому что она не возвращает правильную таблицу. Кто-нибудь знает, как вытащить это из (желательно с purrr
) Любые предложения будут высоко оценены.