假設我有以下串列“d”:
library(combinat)
d = permn(c("a", "b", "c"))
這看起來如下:
[[1]]
[1] "a" "b" "c"
[[2]]
[1] "a" "c" "b"
[[3]]
[1] "c" "a" "b"
[[4]]
[1] "c" "b" "a"
[[5]]
[1] "b" "c" "a"
[[6]]
[1] "b" "a" "c"
是否可以將每個元素轉換為新的資料框?
這就是我想要做的:
data_1 = data.frame(col1 = c("a", "b", "c"))
data_2 = data.frame(col1 = c("a", "c", "b"))
data_3 = data.frame(col1 = c("c", "a", "b"))
data_4 = data.frame(col1 = c("c", "b", "a"))
data_5 = data.frame(col1 = c("b", "c", "a"))
data_6 = data.frame(col1 = c("b", "a", "c"))
有人可以告訴我如何做到這一點嗎?
謝謝!
uj5u.com熱心網友回復:
你可以list2env進入.GlobalEnvafter make data.frames 和setNames。
lapply(d, \(x) data.frame(col1=x)) |>
setNames(paste0('data', seq_along(d))) |>
list2env(envir=.GlobalEnv)
data1
# col1
# 1 a
# 2 b
# 3 c
R 版本 < 4.1:
list2env(
setNames(
lapply(d, function(x) data.frame(col1=x)),
paste0('data', seq_along(d))),
envir=.GlobalEnv)
uj5u.com熱心網友回復:
一個tidyverse選項:
library(tidyverse)
purrr::map(d, function(x)
as.data.frame(x) %>% rename("col" = x)) %>%
set_names(paste0('data_', seq_along(d))) %>%
list2env(envir = .GlobalEnv)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/397783.html
上一篇:替換R中字串末尾的點
