簡體   English   中英

R purrr映射在輸出中顯示列名稱

[英]R purrr map show column names in output

我試圖跨向量輸入運行purrr map ,在輸出中我希望輸出列具有有意義的名稱。

x <- c("a", "b")
y <- "end."

map_dfc(x, function(x) paste("pre ", x, y))

names(x) <- x
map_dfc(x, function(x) paste(x, y))

這是我期望的輸出,它具有列名ab

# A tibble: 1 x 2
# a      b     
# <chr>  <chr> 
# pre  a end. pre  b end.

有沒有辦法避免運行的需要

names(x) <- x

x <- c("a", "b")
y <- "end."

map_dfc(x, function(x) paste("pre ", x, y))
# A tibble: 1 x 2
# a      b     
# <chr>  <chr> 

產生具有已附加列名的data.frame / tibble嗎?

我經常使用地圖,並且經常忘記輸入向量是否具有名稱。

一種簡單的方法是命名輸入元素。 這通常會導致代碼更加一致。

library(purrr)
x <- setNames(c("a", "b"), nm = c("a", "b"))
# x <- setNames(nm = c("a", "b")) # this is short cut of above
y <- "end."
map_dfc(x, function(x) paste("pre ", x, y))

除了@RonakShah的建議setNames()的注釋之外,您也可以不使用purrr::map()處理此問題:

paste("pre ", x, y) %>% 
  as.list() %>%
  as.data.frame(col.names = x, stringsAsFactors = F)

purrr方式是在注釋中使用set_names (盡管正確的setNames似乎被purrrset_names purrr ):

map_dfc(set_names(x), function(x) paste("pre ", x, y))

使用set_names ,如果使用默認參數,則無需指定新名稱。

暫無
暫無

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

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