使用数据(R)将具有两列的data.frame重新整形为多列

 继续微笑丶保持硪的骄傲_195 发布于 2023-02-12 21:23

一个微不足道的问题,但我还是找不到答案.

我想将数据框列'year'拆分为一组新列,每年列名称和后面的数据:

    Year     FQ
   1975  3.156
   1975  8.980
   1977 10.304
   1977  7.861
   1979  4.729
   1979  7.216
   1981  4.856
   1981  3.438
   1983  9.887
   1983  3.850

期望的输出:

1975    1977    1979   1981    1983 

3.156   10.304  4.729  4.856   9.887
8.980   7.861   7.216  3.438   3.850

样本数据:

d<-structure(list(Year = structure(1:10, .Label = c("1975", "1975", 
"1977", "1977", "1979", "1979", "1981", "1981", "1983", "1983", 
"1985", "1985", "1987", "1987", "1988", "1988", "1991", "1991", 
"1993", "1993", "1995", "1995", "1997", "1997", "2000", "2000", 
"2001", "2001", "2003", "2003", "2005", "2005", "2007", "2007", 
"2009", "2009", "2011", "2011"), class = "factor"), FQ = c(3.156, 
8.98, 10.304, 7.861, 4.729, 7.216, 4.856, 3.438, 9.887, 3.85)), .Names = c("Year", 
"FQ"), class = "data.frame", row.names = c(1L, 62L, 123L, 184L, 
245L, 306L, 367L, 428L, 489L, 550L))

我试过融化数据:

melt(d, id.vars = "Year")

然后使用演员表:

cast(d, Year~value) 

并重塑

d1<-reshape(d, idvar="Year", timevar="FQ", direction="wide")

但无济于事

1 个回答
  • 你没有真正的"ID"变量,所以你需要创建一个.如果Yearcharacter变量会更容易,所以除了添加"ID"变量之外,我还在下面进行了这种转换:

    d <- within(d, {
      Year <- as.character(Year)
      ID <- ave(Year, Year, FUN=seq_along)
    })
    

    从这里,它很容易dcast直接使用...

    library(reshape2)
    dcast(d, ID ~ Year, value.var="FQ")
    #   ID  1975   1977  1979  1981  1983
    # 1  1 3.156 10.304 4.729 4.856 9.887
    # 2  2 8.980  7.861 7.216 3.438 3.850
    

    ......或reshape.

    reshape(d, direction  = "wide", idvar="ID", timevar="Year")
    #    ID FQ.1975 FQ.1977 FQ.1979 FQ.1981 FQ.1983
    # 1   1   3.156  10.304   4.729   4.856   9.887
    # 62  2   8.980   7.861   7.216   3.438   3.850
    

    2023-02-12 21:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有