如何用R语言将含apple、orange、age的数据集转为指定结构新数据框?
R语言实现宽表转长表方案
针对你需要将包含apple、orange、age列的宽数据集转换为FRUITS、AGE、USE列的长数据框的需求,可以用tidyr包的pivot_longer函数快速实现,无需手动编辑行。
步骤1:构造示例数据(替换为你的真实数据集即可)
# 模拟你的原始数据框 df <- data.frame( apple = c(3, 4, 8), orange = c(2, 5, 9), age = c("1-3", "4-6", "7-9") )
步骤2:宽转长处理
# 首次使用需先安装tidyr包 # install.packages("tidyr") library(tidyr) # 执行宽表转长表操作 new_df <- pivot_longer( data = df, cols = c(apple, orange), # 指定需要转换的水果列 names_to = "FRUITS", # 原列名存入新列FRUITS values_to = "USE" # 原列对应的值存入新列USE ) # 调整列顺序并修改age列名为AGE new_df <- new_df[, c("FRUITS", "age", "USE")] colnames(new_df)[2] <- "AGE"
最终输出结果
运行上述代码后,new_df就是你需要的目标数据框:
# A tibble: 6 × 3 FRUITS AGE USE <chr> <chr> <dbl> 1 apple 1-3 3 2 orange 1-3 2 3 apple 4-6 4 4 orange 4-6 5 5 apple 7-9 8 6 orange 7-9 9
这个方法能自动处理30行的真实数据集,完全不需要手动添加行,效率很高。
内容的提问来源于stack exchange,提问作者Raze
相关产品推荐
相关产品推荐

