我有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)