R столбцы data.frame в один список - PullRequest
1 голос
/ 27 апреля 2020

Я не могу найти ответ, хотя уверен, что его уже спросили ... но я хотел извлечь и объединить подмножество столбцов data.frame в один список без использования каких-либо пакетов. Например:

DF <- data.frame(a = c(1,2,3), b = c(4,5,6), c = c(7,8,9))
test <- c(DF[,1], DF[,2], DF[,3]) # Gives what I want
test <- c(DF[,1:3]) # Doesn't give what I want

Таким образом, желаемым выводом будет один список значений 1: 9. Я бы хотел, чтобы подмножество назначалось динамически, поэтому я не могу сделать это так, как набрал его, даже если он дает желаемый результат. Единственный другой способ, который я мог бы подумать, это иметь все oop и постепенно добавлять по одному столбцу за раз, например, test <- c (test, DF [, i]) </p>

Ответы [ 3 ]

3 голосов
/ 27 апреля 2020

Может быть, вы можете попробовать c в do.call

test <- do.call(c,DF)

, например,

> test
a1 a2 a3 b1 b2 b3 c1 c2 c3 
 1  2  3  4  5  6  7  8  9 
2 голосов
/ 27 апреля 2020

Опция с flatten из purrr

library(dplyr)
library(purrr)
DF %>%
   flatten_dbl
#[1] 1 2 3 4 5 6 7 8 9
2 голосов
/ 27 апреля 2020

Можно просто unlist:

unlist(DF)

# a1 a2 a3 b1 b2 b3 c1 c2 c3 
# 1  2  3  4  5  6  7  8  9 

И избавиться от имен при необходимости:

unlist(DF, use.names = FALSE) # or also unname(unlist(DF))

# [1] 1 2 3 4 5 6 7 8 9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...