我有csv格式的数据,其中包含recipeid,ingredientname字段。我想对数据进行分析,并且需要格式化,其中一个成分名称是起始节点,另一个作为终点节点,第三列作为配方中这两种成分的出现次数。是否有在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
答案 0 :(得分:4)
我认为这不需要图形对象。只需查看上一行即可到达那里。 E.g:
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)