通过计算R中某个组合的出现次数来转换数据



我有csv格式的数据字段recipeid,成分名称。我想对数据进行分析,并需要对其进行格式化,其中一个成分名称是开始节点,另一个作为结束节点,第三列作为这两种成分在食谱中的出现次数。在R中有这样的命令吗?

当前数据如下所示:

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

and I want

StartNode | EndNode | Occurrence
----------|---------|------------
   A      |   B     | 2
   B      |   D     | 2
   B      |   C     | 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)

相关内容

  • 没有找到相关文章

最新更新