【问题标题】:From frequency table to obervations从频率表到观察
【发布时间】:2020-03-26 22:10:54
【问题描述】:

我正在尝试有效地构建一个可以代表 R 中频率表来源的数据框。

简单示例:

A <- data.frame(Age=c(20,60,20,60), Health=c("Good","Good","Bad","Bad"), Frequency=c(53,13,23,31))

我想要的是一个可以生成上述分布的矩阵。 有什么快速的方法吗?

【问题讨论】:

标签: r


【解决方案1】:

这个 apply 方法怎么样?

B <- apply(A,1,function(x){matrix(c(x[1],x[2]),ncol = 2, nrow = as.numeric(x[3]), byrow = TRUE)})
B <- do.call(rbind,B)
colnames(B) <- c("Age","Health")

【讨论】:

  • 这可行,但如果列联表中有 10 个不同的变量怎么办?无论维度数量如何,我都在寻找一种快速的方法......理想情况下使用单个函数
  • 是的,在这种情况下,请按照@Ben 的建议使用data.frame.table
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2014-01-28
相关资源
最近更新 更多