tibble
প্যাকেজের মাধ্যমে একটি ফাংশন আছে enframe()
যে সমাধান নেস্টেড উপর চাপ করে আপনি এই সমস্যার list
নেস্টেড করার বস্তু tibble
( "পরিপাটি" তথ্য ফ্রেম) বস্তু। ডেটা সায়েন্সের জন্য আর এর সংক্ষিপ্ত উদাহরণ এখানে :
x <- list(
a = 1:5,
b = 3:4,
c = 5:6
)
df <- enframe(x)
df
#> # A tibble: 3 × 2
#> name value
#> <chr> <list>
#> 1 a <int [5]>
#> 2 b <int [2]>
#> 3 c <int [2]>
যেহেতু আপনার তালিকায় বেশ কয়েকটি বাসা রয়েছে তাই আপনি কেবল একটি একক শ্রেণিবদ্ধ তালিকা পেতে অপ্রয়োজনীয় বাসা বাঁধতে এবং l
ব্যবহার করতে পারেন । আমি আউটপুটটিকে একক স্তরের "পরিপাটি" ডেটা ফ্রেমে আনইনস্ট করতে ব্যবহার করি , এতে আপনার দুটি কলাম রয়েছে (একটি দলের জন্য এবং একটি দলগুলির সাথে পর্যবেক্ষণের জন্য )। আপনি যদি কলামগুলি প্রশস্ত করে তুলতে চান তবে আপনি 132 বার মানগুলির ক্রম পুনরাবৃত্তি করে একটি কলাম যুক্ত করতে পারেন । তারপর শুধু মান।unlist(recursive = FALSE)
enframe()
tidyr::unnest()
name
value
add_column()
spread()
library(tidyverse)
l <- replicate(
132,
list(sample(letters, 20)),
simplify = FALSE
)
l_tib <- l %>%
unlist(recursive = FALSE) %>%
enframe() %>%
unnest()
l_tib
#> # A tibble: 2,640 x 2
#> name value
#> <int> <chr>
#> 1 1 d
#> 2 1 z
#> 3 1 l
#> 4 1 b
#> 5 1 i
#> 6 1 j
#> 7 1 g
#> 8 1 w
#> 9 1 r
#> 10 1 p
#> # ... with 2,630 more rows
l_tib_spread <- l_tib %>%
add_column(index = rep(1:20, 132)) %>%
spread(key = index, value = value)
l_tib_spread
#> # A tibble: 132 x 21
#> name `1` `2` `3` `4` `5` `6` `7` `8` `9` `10` `11`
#> * <int> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 1 d z l b i j g w r p y
#> 2 2 w s h r i k d u a f j
#> 3 3 r v q s m u j p f a i
#> 4 4 o y x n p i f m h l t
#> 5 5 p w v d k a l r j q n
#> 6 6 i k w o c n m b v e q
#> 7 7 c d m i u o e z v g p
#> 8 8 f s e o p n k x c z h
#> 9 9 d g o h x i c y t f j
#> 10 10 y r f k d o b u i x s
#> # ... with 122 more rows, and 9 more variables: `12` <chr>, `13` <chr>,
#> # `14` <chr>, `15` <chr>, `16` <chr>, `17` <chr>, `18` <chr>,
#> # `19` <chr>, `20` <chr>