【问题标题】:How to build frequency matrix in R?如何在R中建立频率矩阵?
【发布时间】:2017-09-07 12:43:03
【问题描述】:

假设名为A的现有数据框包含以下数据:

Time    Var
T1      loc1
T1      loc2
T1      loc3
T2      loc2
T2      loc2
T2      loc3
T3      loc1
T3      loc3
T3      loc3

我想要R中的输出频率矩阵如下格式

      loc1    loc2    loc3
T1     1       1       1
T2     0       2       1
T3     1       0       2

我尝试使用apply()table(),但无法理解如何使用它们来获得所需的输出。 有人可以建议我使用 R 中的一些函数来获得所需的输出吗?

【问题讨论】:

  • 只需table(A)
  • 相当于做:table(A$Time, A$Var)
  • 或等效:with(A, table(Time, Var))

标签: r frequency crosstab


【解决方案1】:

您可以在基本 R 中选择 xtabs

xtabs(~Time+Var, A)

#    Var
#Time loc1 loc2 loc3
#  T1    1    1    1
#  T2    0    2    1
#  T3    1    0    2

dcast 来自data.table

library(data.table)
dcast(A, Time~Var)

【讨论】:

  • dcast 正在提供所需的输出。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多