【问题标题】:Reorganize data.frame into tabulation of values将 data.frame 重组为值列表
【发布时间】:2017-02-06 20:36:59
【问题描述】:
df <- data.frame(x=c(1,2,1,2,3,3), y = c(letters[1:5],'a'), val = c(1:5, 9))
print(df)
  x y val
  1 a   1
  2 b   2
  1 c   3
  2 d   4
  3 e   5
  3 a   9

我想创建一个函数fun(df, rowname, colname, valname),它接受一个数据框、行名、列名和值输入,并返回一个带有行名、列名和值的数据框或矩阵,如下所示

fun(df, "x","y","val") should return

    1 2 3
 a  1 NA 9
 b  NA 2 NA
 c  3 NA NA
 d  NA 4  NA  
 e  NA NA 5

【问题讨论】:

  • 看看reshape2包,函数castmelt可能就是你要找的。​​span>
  • 库(dplyr);传播(df,x,val)

标签: r


【解决方案1】:

reshape2 库允许这种操作:

library(reshape2)

dcast(data=df, y~x, value.var = "val")

  y  1  2  3
1 a  1 NA  9
2 b NA  2 NA
3 c  3 NA NA
4 d NA  4 NA
5 e NA NA  5

【讨论】:

  • 带有基数 R 的 reshape: reshape(df, direction="wide", idvar="y", timevar="x")
猜你喜欢
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
相关资源
最近更新 更多