如何在R中对具有非数字因子的行求和?

时间:2016-02-10 03:27:41

标签: r

我有这样的数据框:

   Port   Type
1  Port1   ssh
2  Port1   ftp
3  Port2  http
4  Port1  http
5  Port2   ssh
6  Port3   ssh
7  Port3 https
8  Port4  http
9  Port2   ftp
10 Port3   ssh
11 Port3   ftp
12 Port4   ssh

我希望有这样的总和:

Port     ssh    ftp     http    https
Port1    1      1       1       0
Port2    1      1       1       0
Port3    2      1       0       1
Port4    1      0       0       1

我选择了R,因为还有其他一些数字值的列,我可以使用R来非常方便地计算均值/中值/分位数。我搜索并找到了这个:Sum of rows based on column value,但是那里的代码似乎只对数字元素起作用。

非常感谢你的回答。

1 个答案:

答案 0 :(得分:2)

我们可以使用table

table(df1)
#          Type
#Port    ftp http https ssh
#  Port1   1    1     0   1
#  Port2   1    1     0   1
#  Port3   1    0     1   2
#  Port4   0    1     0   1

其他选项包括dcast

library(reshape2)
dcast(df1, Port~Type, value.var='Type', length)