R中如何用列名向量与值向量创建单行data.frame(tibble)
R实现方案
下面分两种常用场景,分别对应tibble和基础data.frame需求:
- 方法1:tidyverse生态下生成tibble(推荐)
配合tibble包的tibble_row()和命名向量展开操作实现,示例代码如下:
逻辑说明:# 加载所需包 library(tibble) # 示例向量 variables <- c("col1", "col2", "col3") values <- c("val1", "val2", "val3") # 生成单行tibble single_row_tbl <- tibble_row(!!!set_names(values, variables))set_names(values, variables)会给values的每个元素加上对应的列名作为名称,!!!操作符会把命名向量拆分为多个独立参数传入tibble_row(),直接生成符合要求的单行tibble。 - 方法2:基础R生成data.frame
不需要额外加载包的原生实现方案:
逻辑说明:先用# 示例向量同上 variables <- c("col1", "col2", "col3") values <- c("val1", "val2", "val3") # 生成单行data.frame single_row_df <- as.data.frame(t(values), col.names = variables, check.names = FALSE, stringsAsFactors = FALSE)t()将列形式的values转为行矩阵,再转换为data.frame时指定列名即可。check.names = FALSE可以避免R自动修改不符合命名规范的列名,stringsAsFactors = FALSE适配R4.0之前的版本,避免字符值自动转为因子类型。如果需要转换为tibble,在外部套一层as_tibble()即可。
内容的提问来源于stack exchange,提问作者gota
相关产品推荐
相关产品推荐

