У меня есть датафрейм, и я хочу извлечь каждую строку в список, приведенный как вектор.Для этого я хочу использовать только пакеты tidyverse
и purrr
.
У меня есть следующее reprex
, где я пытался это сделать:
library(magrittr)
library(tidyverse)
# Create the raw dummy data frame
df <- data.frame(
x = c("apple", "banana", "cherry"),
pattern = c("p", "n", "h"),
replacement = c("x", "f", "q"),
stringsAsFactors = FALSE
)
# Define the function to extract the specific row index
# of the dataframe as a vector
get_row_vec <- function(df, row_idx){
df %>%
dplyr::slice(row_idx) %>%
base::unlist() %>%
base::as.vector()
}
# Try and apply get_row_vec rowwise on the dataframe
# NOTE: This does not work! Need help to fix this
purrr::pmap(.l = df, ~get_row_vec(df = .l, row_idx = 1))
#> Error in eval(lhs, parent, parent): object '.l' not found
Может ли кто-нибудь помочь исправить вышеприведенный код и помочь мне понять, как это сделать с purrr
?
РЕДАКТИРОВАТЬ: Согласно комментариям ниже, это идеальный вывод, который я ищучерез purrr
# MANUAL version of desired output
output <- list(get_row_vec(df, 1),
get_row_vec(df, 2),
get_row_vec(df, 3))
output
#> [[1]]
#> [1] "apple" "p" "x"
#>
#> [[2]]
#> [1] "banana" "n" "f"
#>
#> [[3]]
#> [1] "cherry" "h" "q"
Спасибо