如何按列名处理R语言DataFrame以转换为指定格式?
常见格式转换方案(以宽表转长表为例)
因为你未明确指定目标DataFrame的格式,这里先针对最常用的宽格式转长格式需求提供解决方案,若你需要其他格式转换,可补充目标结构细节。
方法1:使用Base R的reshape()函数
# 转换为长格式 long_df <- reshape(df, varying = c("a", "b", "c"), v.names = "value", timevar = "variable", times = c("a", "b", "c"), direction = "long") # 重置行名 row.names(long_df) <- NULL
转换后结果:
name variable value 1 A a 1 2 B a 2 3 C a 3 4 A b 4 5 B b 5 6 C b 6 7 A c 7 8 B c 8 9 C c 9
方法2:使用tidyverse的pivot_longer()函数
若习惯tidyverse生态,这个方法更简洁直观:
library(tidyverse) long_df <- df %>% pivot_longer(cols = -name, names_to = "variable", values_to = "value")
输出结果与上述方法完全一致。
内容的提问来源于stack exchange,提问作者Hispania
相关产品推荐
相关产品推荐

