求助:将数据集NA列的列名与值转换为指定格式
解决宽格式数据集转长格式的问题
可以使用tidyr包中的pivot_longer函数完成这个宽格式到长格式的转换,这是tidyverse生态中处理数据重塑的常用方法:
# 首次使用需先安装tidyr包,取消下方注释执行 # install.packages("tidyr") library(tidyr) # 匹配你提供的数据集结构 rv <- data.frame( id = c(1, 2, 3), group = c("vita", "vitb", "vitc"), cat = NA, value = NA, suppl = c("vita20", "vitb200", "vitc50"), thera = c(0.557, 0.764, 0.351) ) # 执行数据转换 result <- rv %>% pivot_longer( cols = c(suppl, thera), # 指定要转换的宽格式列 names_to = "cat", # 将列名映射为cat字段的取值 values_to = "value" # 将列值映射为value字段的取值 ) %>% select(id, group, cat, value) # 筛选并调整目标列顺序 # 输出结果 print(result)
运行后得到的结果与你的期望格式一致:
id group cat value 1 1 vita suppl vita20 2 1 vita thera 0.557 3 2 vitb suppl vitb200 4 2 vitb thera 0.764 5 3 vitc suppl vitc50 6 3 vitc thera 0.351
内容的提问来源于stack exchange,提问作者Helga Sobetska
相关产品推荐
相关产品推荐

