按分隔符转置字符串,生成含重复列的长格式tibble/dataframe
将指定字符串转换为长格式数据框/tibble
原始输入字符串
Hallux OtherToes Transmetatarsal Forefoot BelowKnee SkewFlap ThroughKnee AboveKnee Other YN.
实现方法(R语言)
提供两种常见实现方式,分别基于基础R和tidyverse工具包:
方法1:基础R实现
# 定义输入字符串 input_str <- "Hallux OtherToes Transmetatarsal Forefoot BelowKnee SkewFlap ThroughKnee AboveKnee Other YN." # 按空格拆分字符串为向量(兼容多空格情况) str_vec <- strsplit(input_str, "\\s+")[[1]] # 构造数据框:取前N-1个元素作为variable列,最后一个元素重复填充format_id列 result_df <- data.frame( variable = str_vec[-length(str_vec)], format_id = str_vec[length(str_vec)], stringsAsFactors = FALSE ) # 查看结果 print(result_df)
方法2:tidyverse实现
library(tibble) library(stringr) # 定义输入字符串 input_str <- "Hallux OtherToes Transmetatarsal Forefoot BelowKnee SkewFlap ThroughKnee AboveKnee Other YN." # 拆分字符串并构造tibble str_vec <- str_split(input_str, "\\s+")[[1]] result_tbl <- tibble( variable = str_vec[-length(str_vec)], format_id = str_vec[length(str_vec)] ) # 查看结果 print(result_tbl)
运行结果
两种方法都会生成符合要求的长格式结构:
variable format_id 1 Hallux YN. 2 OtherToes YN. 3 Transmetatarsal YN. 4 Forefoot YN. 5 BelowKnee YN. 6 SkewFlap YN. 7 ThroughKnee YN. 8 AboveKnee YN. 9 Other YN.
内容的提问来源于stack exchange,提问作者jackahall
相关产品推荐
相关产品推荐

