说我有一个data.frame对象:
df <- data.frame(name=c('black','black','black','red','red'),
type=c('chair','chair','sofa','sofa','plate'),
num=c(4,5,12,4,3))
Run Code Online (Sandbox Code Playgroud)
现在我想计算每个组合的观察次数name和type.这可以这样做:
table(df[ , c("name","type")])
Run Code Online (Sandbox Code Playgroud)
或者也可能plyr,(虽然我不确定如何).
但是,如何将结果合并到原始数据框中?这样结果将如下所示:
df
# name type num count
# 1 black chair 4 2
# 2 black chair 5 2
# 3 black sofa 12 1
# 4 red sofa 4 1
# 5 red plate 3 1
Run Code Online (Sandbox Code Playgroud)
这里count现在存储从聚集的结果.
一个解决方案plyr也可能很有趣,但我希望看到这是如何用基础R完成的.
我有一个数据框,每行是关于瞳孔的观察.数据框中的一个向量是学校的id.我已经获得了一个新的载体,每个学校的计数如下:
tbsch <- table(dt$school)
Run Code Online (Sandbox Code Playgroud)
现在我想将相关的计数值添加到每一行dt.我已经使用for()循环遍历每一行dt并创建一个包含相关计数的新向量并最终使用cbind()它来添加它dt,但我认为这是非常低效的.有这么聪明/简单的方法吗?