簡體   English   中英

如何從數據框列表中選擇一列?

[英]How can I select a column from a list of dataframes?

我的小標題中有幾個小標題作為列表列。 看起來像

# A tibble: 2 x 2
  kind      data                 
  <chr>     <list>               
1 Bernoulli <tibble [3,154 × 13]>
2 Binomial  <tibble [43 × 3]>  

data列中的每個小標題都有一個稱為cigs的列。 我想從每個小標題中提取該列,並將其作為新列包含。 所需的輸出是

  # A tibble: 2 x 2
      kind      data                   cigs
      <chr>     <list>                 <list>
    1 Bernoulli <tibble [3,154 × 13]>  <tibble [3,154 x 1]>
    2 Binomial  <tibble [43 × 3]>      <tibble [43 x 1]>

目前,我這樣做

library(tidyverse)
compare_me %>% 
  mutate(cigs = data %>% map( ~ select(.x,cigs)) )

使用purrr有沒有更簡單的方法?

我不知道您想要它多么容易,但是這只是purrr的一種方法。 您可以映射[函數(相當於執行df$data["cigs"] )並將結果存儲在cigs變量中。 無需dplyr。

library(purrr)

a = tibble::tibble(r = letters, cigs = runif(26))
b = tibble::tibble(r = LETTERS, cigs = rnorm(26))

df = tibble::tibble(kind = c("bernie","binomi"),data = list(a,b))
df$cigs = map(df$data,`[`,"cigs")

#> # A tibble: 2 x 3
#>     kind              data              cigs
#>    <chr>            <list>            <list>
#> 1 bernie <tibble [26 x 2]> <tibble [26 x 1]>
#> 2 binomi <tibble [26 x 2]> <tibble [26 x 1]>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM