Saya memiliki daftar kerangka data dan ingin semua nilai unik a di dalamnya

dd <- list()
dd$data <- list(one = data.frame(a = c(1,2,3)),
           two = data.frame(a = c(1,2,4)))
$data
$data$one
  a
1 1
2 2
3 3

$data$two
  a
1 1
2 2
3 4

Dan saya ingin kembali

1 2 3 4

Saya tahu saya dapat mengikat dua kerangka data bersama-sama kemudian mencari nilai unik tetapi dalam kumpulan data saya yang sebenarnya, daftar kerangka data memiliki ukuran yang berbeda dengan kolom yang berbeda, hanya a yang sama jadi saya rasa ini bukan yang paling komputasi solusi elegan

1
MayaGans 4 Maret 2020, 23:33

1 menjawab

Jawaban Terbaik

Kita bisa unlist data.frames dan mendapatkan elemen unique

unique(unlist(dd$data))
#[1] 1 2 3 4

Jika kita hanya perlu mengekstrak kolom 'a'

unique(unlist(lapply(dd$data, `[[`, "a")))
#[1] 1 2 3 4

Atau dengan map/pluck

library(dplyr)
library(purrr)
map(dd$data,  pluck, "a") %>%
    flatten_dbl %>%
    unique
#[1] 1 2 3 4
1
akrun 4 Maret 2020, 20:38