我不知道词汇,否则我相信我能够有效地搜索它。到目前为止,我还没有找到任何东西,而且我已经没时间了。
所以我有16列信息,其中1列是因子列,我们假设日期,其他15个是小时(上午6点 - 晚上8点,仅代表小时),有1或0 ,表示活动状态或非活动状态。我想做的是
如果您能提供帮助,请使用词汇表,这样我不仅可以自己学习,还可以查阅文档并将其传授给其他人。
一个例子是
Date Hour1 Hour2 Hour3 Hour4 Hour5 ... Hour15
9-15 0 0 0 1 1 ... 0
9-15 0 1 1 1 1 ... 0
9-16 0 1 1 1 0 ... 0
9-16 0 0 0 0 0 ... 1
9-16 1 1 0 0 0 ... 1
9-18 0 1 0 1 1 ... 0
.
.
.
11-7 0 1 1 1 0 ... 0
我想要的是
Hour1 Hour2 Hour3 Hour4 Hour5 ... Hour15
9-15 5 10 15 25 45 ... 20
9-16 5 6 25 28 15 ... 11
9-17 3 45 42 6 17 ... 32
9-18 5 10 15 25 45 ... 20
.
.
.
11-7 12 36 84 9 7 ... 21
其中每个条目是列变量的总和,而不是1或零频率计数。
答案 0 :(得分:0)
您可以使用dplyr轻松完成此操作 - 首先按列分组"日期"然后使用sum
汇总每个其他列:
require(dplyr)
df %>%
group_by(Date) %>%
summarise_each(funs(sum))
#Source: local data frame [4 x 7]
#
# Date Hour1 Hour2 Hour3 Hour4 Hour5 Hour15
#1 11-7 0 1 1 1 0 0
#2 9-15 0 1 1 2 2 0
#3 9-16 1 2 1 1 0 2
#4 9-18 0 1 0 1 1 0
df <- structure(list(Date = structure(c(2L, 2L, 3L, 3L, 3L, 4L, 1L), .Label = c("11-7",
"9-15", "9-16", "9-18"), class = "factor"), Hour1 = c(0L, 0L,
0L, 0L, 1L, 0L, 0L), Hour2 = c(0L, 1L, 1L, 0L, 1L, 1L, 1L), Hour3 = c(0L,
1L, 1L, 0L, 0L, 0L, 1L), Hour4 = c(1L, 1L, 1L, 0L, 0L, 1L, 1L
), Hour5 = c(1L, 1L, 0L, 0L, 0L, 1L, 0L), Hour15 = c(0L, 0L,
0L, 1L, 1L, 0L, 0L)), .Names = c("Date", "Hour1", "Hour2", "Hour3",
"Hour4", "Hour5", "Hour15"), class = "data.frame", row.names = c(NA,
-7L))