【发布时间】:2015-10-29 19:02:44
【问题描述】:
我没有得到正确的方法来计算一个新列,该列包含一个数据框中的列的总和,方法是通过 grep 函数聚合另一个列。数据框如下所示:
ID_Oeffnungszeit ID_Einrichtung Anzahl_Std Bez_Oeffnungszeit
1 3000001 0.50 Montag Vormittag
1 3000003 3.00 Montag Vormittag
1 3000008 2.50 Montag Vormittag
2 3000001 1.00 Montag Nachmittag
4 3000003 1.50 Dienstag Vormittag
1 3000023 1.00 Montag Vormittag
1 3000025 1.00 Montag Vormittag
1 3000026 1.00 Montag Vormittag
3 3000001 2.00 Montag Abend
...
1 3000038 3.50 Montag Vormittag
and so on...
变量Bez_Oeffnungszeit有21个特征,但如果包含Vormittag、Nachmittag或Abend这几个词,就可以归类。
所以我想生成一个新列,其中包含每个ID_Einrichtung 的列Anzahl_Std 的总和,具体取决于Bez_Oeffnungszeit 包含的单词。
我很确定我应该使用 grep 和 by 函数,但我无法让它在我的意义上发挥作用......
df <- structure(list(ID_Oeffnungszeit = c("1", "1", "1", "2", "4",
"1", "1", "1", "3"), ID_Einrichtung = c(3000001L, 3000003L, 3000008L,
3000001L, 3000003L, 3000023L, 3000025L, 3000026L, 3000001L),
Anzahl_Std = c(0.5, 3, 2.5, 1, 1.5, 1, 1, 1, 2), Bez_Oeffnungszeit = c("Montag Vormittag",
"Montag Vormittag", "Montag Vormittag", "Montag Nachmittag",
"Dienstag Vormittag", "Montag Vormittag", "Montag Vormittag",
"Montag Vormittag", "Montag Abend")), .Names = c("ID_Oeffnungszeit",
"ID_Einrichtung", "Anzahl_Std", "Bez_Oeffnungszeit"), class = "data.frame", row.names = c(NA,
-9L))
【问题讨论】:
-
如果您使用
dput来包含示例数据会有所帮助,特别是因为您在最后一列中有空格。 -
我为前几行添加了 dput
标签: r data-management