相关疑难解决方法(0)

计算每组观察/行数,并将结果添加到数据框

说我有一个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)

现在我想计算每个组合的观察次数nametype.这可以这样做:

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完成的.

aggregate r count r-faq

46
推荐指数
4
解决办法
9万
查看次数

用dplyr总结一个因子的计数

我想按列(所有者)对数据帧进行分组,并输出一个新数据帧,该数据帧在每次观察时都会计算每种类型因子的计数.真实的数据框架相当大,有10个不同的因素.

这是一些示例输入:

library(dplyr)
df = tbl_df(data.frame(owner=c(0,0,1,1), obs1=c("quiet", "loud", "quiet", "loud"), obs2=c("loud", "loud", "quiet", "quiet")))

  owner  obs1  obs2
1     0 quiet  loud
2     0  loud  loud
3     1 quiet quiet
4     1  loud quiet
Run Code Online (Sandbox Code Playgroud)

我一直在寻找看起来像这样的输出:

out = data.frame(owner=c("0", "0", "1", "1"), observation=c("obs1", "obs2", "obs1", "obs2"), quiet=c(1, 0, 1, 2), loud=c(1, 2, 1, 0))

  owner observation quiet loud
1     0        obs1     1    1
2     0        obs2     0    2
3     1        obs1     1    1
4     1        obs2     2    0
Run Code Online (Sandbox Code Playgroud)

融化让我在那里中途:

melted = tbl_df(melt(df, …
Run Code Online (Sandbox Code Playgroud)

r dplyr

16
推荐指数
2
解决办法
4万
查看次数

R中匹配行的数量

下面是样本表/数据框.第三个属性(count)将给出相似行的计数(attribute1 + attribute2)

?????????????????????????????????????????????????????????????????
? ID ? Attribute 1 ? Attribute 2 ? count(Attribute1+Attribute2) ?
?????????????????????????????????????????????????????????????????
?  1 ? A           ? AA          ?                            3 ?
?  2 ? B           ? CC          ?                            1 ?
?  3 ? C           ? BB          ?                            2 ?
?  4 ? A           ? AA          ?                            3 ?
?  5 ? C           ? BB          ?                            2 ?
?  6 ? D           ? AA          ?                            1 ?
?  7 ? B           ? AA          ?                            1 ?
? …
Run Code Online (Sandbox Code Playgroud)

r

0
推荐指数
1
解决办法
179
查看次数

标签 统计

r ×3

aggregate ×1

count ×1

dplyr ×1

r-faq ×1