如何将数据框列名粘贴到列值中?R语言实现求助
解决方法
你的问题出在使用map时无法同时获取列名和对应值——map仅遍历列的数值,无法拿到列名。可以用以下两种方法实现需求:
方法一:使用purrr的imap函数
imap系列函数可以同时访问元素的名称和值,刚好匹配我们的拼接需求:
library(purrr) library(dplyr) df <- structure(list(`Student Enrollment` = 750, `Faculty Number` = 21, Graduated = 65), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame")) # 生成拼接后的字符向量 result <- df %>% imap_chr(~paste0(.y, "(N=", .x, ")")) # 转为右侧示例的单列数据框格式 result_df <- tibble(Info = result)
方法二:Base R 实现
如果不想加载额外包,用基础R代码也能完成:
df <- structure(list(`Student Enrollment` = 750, `Faculty Number` = 21, Graduated = 65), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame")) # 拼接列名和数值 result_base <- paste0(names(df), "(N=", unlist(df), ")") # 转为单列数据框 result_base_df <- data.frame(Info = result_base)
两种方法最终都会得到你需要的单列结构,Info列的内容就是Student Enrollment(N=750)这类拼接后的字符串。
内容的提问来源于stack exchange,提问作者Stataq
相关产品推荐
相关产品推荐

