【问题标题】:Convert data by counting number of occurrence of a combination in R通过计算 R 中组合出现的次数来转换数据
【发布时间】:2017-01-19 09:53:43
【问题描述】:

我有 csv 格式的数据,其中包含字段 recipeid、成分名称。我想对数据进行分析,并需要将其格式化,其中一个成分名称是起始节点,另一个作为结束节点,第三列作为配方中这两种成分的出现次数。在 R 中是否有执行此操作的命令?

当前数据如下所示:

recipeid | ingredientname
-------- | ---------------
01       | A
01       | B
01       | C
02       | A
02       | B
02       | D
03       | B
03       | D

我想要:

StartNode | EndNode | Occurrence
----------|---------|------------
   A      |   B     | 2
   B      |   D     | 2
   B      |   C     | 1

【问题讨论】:

标签: r dataframe frequency reshape


【解决方案1】:

我认为这不需要图形对象。您只需查看前一行即可到达那里。例如:

tmp <- data.frame(
  start=ave(dat$ingredientname, dat$recipeid, FUN=function(x) c(NA,head(x,-1)) ),
  end=dat$ingredientname
)
aggregate(count ~ ., data=transform(tmp,count=1), FUN=sum)

#  start end count
#1     A   B     2
#2     B   C     1
#3     B   D     2

dat 在哪里:

dat <- read.table(text="recipeid  ingredientname
01        A
01        B
01        C
02        A
02        B
02        D
03        B
03        D",header=TRUE,stringsAsFactors=FALSE)

【讨论】:

    猜你喜欢
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多