[英]How to rename column names using my code with purrr::map and colnames
[英]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))
這是我期望的輸出,它具有列名a
和b
:
# 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
似乎被purrr
的set_names
purrr
):
map_dfc(set_names(x), function(x) paste("pre ", x, y))
使用set_names
,如果使用默認參數,則無需指定新名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.