【发布时间】:2019-07-26 14:51:59
【问题描述】:
我正在尝试根据两个分组变量(传感器位置和日期)创建分层随机文件样本。并非所有传感器都有相同数量的观察结果(电池在最后一天耗尽)。
我正在做的主要工作是使用 dplyr 来处理我的数据,通过获取每个传感器日组合的一些观察结果,并过滤掉那些少于我最终分层样本所需的观察结果。
这是我正在处理的数据的负责人:
structure(list(fullPath = c("S4A00440_20180508_123353.flac",
"S4A00440_20180508_123353.wav", "S4A00440_20180508_130000.flac",
"S4A00440_20180508_133000.flac", "S4A00440_20180508_140000.flac",
"S4A00440_20180508_143000.flac", "S4A00440_20180508_150000.flac",
"S4A00440_20180508_153000.flac", "S4A00440_20180508_160000.flac",
"S4A00440_20180508_163000.flac", "S4A00440_20180508_170000.flac",
"S4A00440_20180508_173000.flac", "S4A00440_20180508_180000.flac",
"S4A00440_20180508_183000.flac", "S4A00440_20180508_190000.flac",
"S4A00440_20180508_193000.flac", "S4A00440_20180508_200000.flac",
"S4A00440_20180508_203000.flac", "S4A00440_20180508_210000.flac",
"S4A00440_20180508_213000.flac", "S4A00440_20180508_220000.flac",
"S4A00440_20180508_223000.flac", "S4A00440_20180508_230000.flac",
"S4A00440_20180508_233000.flac", "S4A00466_20180508_130000.flac",
"S4A00466_20180508_130000.wav", "S4A00466_20180508_133000.flac",
"S4A00466_20180508_140000.flac", "S4A00466_20180508_143000.flac",
"S4A00466_20180508_150000.flac", "S4A00466_20180508_153000.flac",
"S4A00466_20180508_160000.flac", "S4A00466_20180508_163000.flac",
"S4A00466_20180508_170000.flac", "S4A00466_20180508_173000.flac",
"S4A00466_20180508_180000.flac", "S4A00466_20180508_183000.flac",
"S4A00466_20180508_190000.flac", "S4A00466_20180508_193000.flac",
"S4A00466_20180508_200000.flac", "S4A00466_20180508_203000.flac",
"S4A00466_20180508_210000.flac", "S4A00466_20180508_213000.flac",
"S4A00466_20180508_220000.flac", "S4A00466_20180508_223000.flac",
"S4A00466_20180508_230000.flac", "S4A00466_20180508_233000.flac"),
sensorName = c("S4A00440", "S4A00440", "S4A00440", "S4A00440",
"S4A00440", "S4A00440", "S4A00440", "S4A00440", "S4A00440", "S4A00440",
"S4A00440", "S4A00440", "S4A00440", "S4A00440", "S4A00440", "S4A00440",
"S4A00440", "S4A00440", "S4A00440", "S4A00440", "S4A00440", "S4A00440",
"S4A00440", "S4A00440", "S4A00466", "S4A00466", "S4A00466", "S4A00466",
"S4A00466", "S4A00466", "S4A00466", "S4A00466", "S4A00466", "S4A00466",
"S4A00466", "S4A00466", "S4A00466", "S4A00466", "S4A00466", "S4A00466",
"S4A00466", "S4A00466", "S4A00466", "S4A00466", "S4A00466", "S4A00466",
"S4A00466"),
Date = structure(c(1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600, 1525737600, 1525737600, 1525737600, 1525737600,
1525737600, 1525737600),
class = c("POSIXct", "POSIXt"), tzone = "UTC")),
row.names = c(1114L, 1115L, 1116L, 1117L, 1118L, 1119L, 1120L, 1121L, 1122L, 1123L,
1124L, 1125L, 1126L, 1127L, 1128L, 1129L, 1130L, 1131L, 1132L,
1133L, 1134L, 1135L, 1136L, 1137L, 1395L, 1396L, 1397L, 1398L,
1399L, 1400L, 1401L, 1402L, 1403L, 1404L, 1405L, 1406L, 1407L,
1408L, 1409L, 1410L, 1411L, 1412L, 1413L, 1414L, 1415L, 1416L,
1417L), class = "data.frame")
我是如何尝试采样的
foo_strat <- foo %>%
select(fullPath, sensorName, Date) %>%
group_by(sensorName, Date) %>%
summarise(num_recs = length(fullPath)) %>%
dplyr::filter(num_recs > 12) %>%
sample_n(12)
但是,我收到了这个错误:
错误:“大小”必须小于或等于 7(数据大小),设置
replace= TRUE 以使用带替换的采样
我检查了this issue,这表明我正在尝试做的可能不是函数的行为,在这种情况下,我不确定最好的方法是什么
【问题讨论】:
-
您的输入不完整。请复制/粘贴完整的 dput 输出
-
谢谢。我重新格式化并向 dput 添加了更多数据,这应该使错误更具重现性。
-
是的,每个组的
summarise步骤之后只有一行