- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的第一篇 StackOverflow 帖子,所以我希望它不会太难理解。
我有一个大型数据集(约 14,000 行)鸟类观察结果。这些数据是通过站在一个地方(点)并数出您在 3 分钟内看到的鸟类来收集的。在每个点计数中,新的鸟类观察结果会成为一个新行,因此存在许多重复的日期、时间、地点和点(地点内的特定位置)。同样,每个点的计算时间为 3 分钟。因此,如果您在第 1 分钟内看到ye低warbler(编码为 YEWA),那么它将与该特定点计数(日期、站点)的 MINUTE=1 相关联、点和时间)。 ID=观察者缩写,Number=发现的鸟类数量(此处不一定重要)。
但是,如果看到NOBIRDS,则该特定分钟的数据集中会出现“NOBI”。因此,如果整个 3 分钟的点计数都有 NOBI,则它们将是具有相同日期、地点、点和时间的三行,并且三行中每一行的“BIRD”列中都有“NOBI”。
所以我有两个主要问题。 第一个是一些观察者在三分钟内输入一次“NOBI”,而不是三次(每分钟一次)。任何有“分钟”的地方 已留空(成为NA),并且“BIRD”=“NOBI”,我需要添加三行数据,除“MINUTE”之外的所有列都具有相同的值,这应该是1、2 和 3 分别代表各行。
如果它看起来像这样:
ID DATE SITE POINT TIME MINUTE BIRD NUMBER
1 BS 5/9/2018 CW2 U125 7:51 NA NOBI NA
2 BS 5/9/2018 CW1 D250 8:12 1 YEWA 2
3 BS 5/9/2018 CW1 D250 8:12 2 NOBI NA
4 BS 5/9/2018 CW1 D250 8:12 3 LABU 1
它应该看起来像这样:
ID DATE SITE POINT TIME MINUTE BIRD NUMBER
1 BS 5/9/2018 CW2 U125 7:51 1 NOBI NA
2 BS 5/9/2018 CW2 U125 7:51 2 NOBI NA
3 BS 5/9/2018 CW2 U125 7:51 3 NOBI NA
4 BS 5/9/2018 CW1 D250 8:12 1 YEWA 2
5 BS 5/9/2018 CW1 D250 8:12 2 NOBI NA
6 BS 5/9/2018 CW1 D250 8:12 3 LABU 1
注意:如果您想将其中一些数据输入 R 控制台,我在本文末尾使用 dput 包含了一些数据,这应该比复制粘贴上面的内容更容易输入
我尝试重现具有多个条件的 if 语句失败了(基于: R multiple conditions in if statement & Ifelse in R with multiple categorical conditions )我尝试通过多种方式编写此内容,包括使用 dplyr 的管道,但请参阅下面的一些代码、注释和错误消息的示例。
>if(PC$BIRD == "NOBI" & PC$MINUTE==NA){PC$Fix<-TRUE}
Error in if (PC$BIRD == "NOBI" & PC$MINUTE == NA) { :
missing value where TRUE/FALSE needed
In addition: Warning message:
In if (PC$BIRD == "NOBI" & PC$MINUTE == NA) { :
the condition has length > 1 and only the first element will be used
## Then I need to do something like this:
>if(PC$Fix<-TRUE){duplicate(row where Fix==TRUE, times=2)} #I know this isn't
### even close, but I want the row to be replicated two more times so
### that there are 3 total rows witht he same values
### Fix indicates that a fix is needed in this example
# Then somehow I need to assign a 1 to PC$MINUTE for the first row (original row),
# a 2 to the next row (with other values from other columns being the same), and a 3
# to the last duplicated row (still other values from other columns being the same)
第二个问题对我来说似乎更困难,那就是按顺序或以某种方式按日期、地点、点和时间搜索数据集。分钟值应始终从 1... 到 2... 到 3,然后对于下一组日期、时间、地点和点返回到 1。也就是说,每个点计数的所有值应为 1:3。然而,一次计数可能在 MINUTE=1 内有多次目击,因此在 MINUTE=2 之前有 5 或 6(或 20)个 MINUTE=1。但是,同样,当没有 BIRDS (NOBI) 时,此数据集中的一些观察者只是留下一行,而不是为每分钟写一行 BIRD=“NOBI”。也就是说,如果数据集为:
ID DATE SITE POINT TIME MINUTE BIRD NUMBER
...
4 BS 5/9/2018 CW2 U125 7:54 1 AMRO 1
5 BS 5/9/2018 CW2 U125 7:54 1 SPTO 1
6 BS 5/9/2018 CW2 U125 7:57 1 AMRO 1
7 BS 5/9/2018 CW2 U125 7:57 1 SPTO 1
8 BS 5/9/2018 CW2 U125 7:57 1 AMCR 3
9 BS 5/9/2018 CW2 U125 7:57 2 SPTO 1
10 BS 5/9/2018 CW2 U125 7:57 2 HOWR 1
11 BS 5/9/2018 CW2 U125 7:57 3 UNBI 1
我们可以看到 7:57 点计数时间已完成(有 1:3 的 MINUTE 值)。然而,7:54 点计数时间在 MINUTE=1 处停止。意思是,我需要在下面再输入两行,它们具有所有相同的日期、地点、点、时间信息,但第一个添加的行为 MINUTE=2 且 BIRD="NOBI",MINUTE=3 且 BIRD="NOBI "对于第二个添加的行。所以它应该看起来像这样:
ID DATE SITE POINT TIME MINUTE BIRD NUMBER
...
4 BS 5/9/2018 CW2 U125 7:54 1 AMRO 1
5 BS 5/9/2018 CW2 U125 7:54 1 SPTO 1
6 BS 5/9/2018 CW2 U125 7:54 2 NOBI NA
7 BS 5/9/2018 CW2 U125 7:54 3 NOBI NA
8 BS 5/9/2018 CW2 U125 7:57 1 AMRO 1
9 BS 5/9/2018 CW2 U125 7:57 1 SPTO 1
10 BS 5/9/2018 CW2 U125 7:57 1 AMCR 3
11 BS 5/9/2018 CW2 U125 7:57 2 SPTO 1
12 BS 5/9/2018 CW2 U125 7:57 2 HOWR 1
13 BS 5/9/2018 CW2 U125 7:57 3 UNBI 1
最后,我明白这是一个漫长而复杂的问题,我可能没有表达清楚。如果需要任何说明,请告诉我,我很乐意听到任何建议,即使它不能完全解决我的问题。预先感谢您!
<小时/>只有当您想将我的数据样本输入 R 时,此行下面的所有内容才对您有用
<小时/>要将我的数据输入 R 控制台,请复制并粘贴从“结构”函数到代码末尾的所有内容,以将其作为数据框输入 R 控制台,代码为:dataframe<-structure(list...
请参阅Example of using dput()寻求帮助。
PC<-read.csv("PC.csv") ### ORIGINAL FILE
dput(PC)
structure(list(ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "BS", class = "factor"),
DATE = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "5/9/2018", class = "factor"),
SITE = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "CW2", class = "factor"),
POINT = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("M", "U125"), class = "factor"),
TIME = structure(c(8L, 8L, 8L, 9L, 9L, 10L, 10L, 10L, 10L,
10L, 10L, 11L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 4L, 4L,
4L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 7L), .Label = c("6:48", "6:51",
"6:54", "6:57", "7:12", "7:15", "7:18", "7:51", "7:54", "7:57",
"8:00"), class = "factor"), MINUTE = c(1L, 2L, 3L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 3L, 1L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 1L,
1L, 1L, 2L, 3L, 1L, 1L, 1L, 2L, 3L, 3L, NA, NA), BIRD = structure(c(6L,
6L, 6L, 2L, 7L, 2L, 7L, 1L, 7L, 5L, 8L, 8L, 6L, 6L, 6L, 6L,
6L, 6L, 7L, 7L, 7L, 7L, 6L, 8L, 3L, 7L, 9L, 5L, 4L, 2L, 6L,
6L), .Label = c("AMCR", "AMRO", "BRSP", "DUFL", "HOWR", "NOBI",
"SPTO", "UNBI", "VESP"), class = "factor"), NUMBER = c(NA,
NA, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, NA, NA, NA, NA,
NA, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, NA,
NA)), class = "data.frame", row.names = c(NA, -32L))
PCc<-read.csv("PC_Corrected.csv") #### WHAT I NEED MY DATABASE TO LOOK LIKE
dput(PCc)
structure(list(ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L), .Label = "BS", class = "factor"), DATE = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "5/9/2018", class = "factor"),
SITE = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L), .Label = "CW2", class = "factor"), POINT = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("M",
"U125"), class = "factor"), TIME = structure(c(8L, 8L, 8L,
9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L,
1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 7L, 7L, 7L), .Label = c("6:48",
"6:51", "6:54", "6:57", "7:12", "7:15", "7:18", "7:51", "7:54",
"7:57", "8:00"), class = "factor"), MINUTE = c(1L, 2L, 3L,
1L, 1L, 2L, 3L, 1L, 1L, 1L, 2L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 1L, 2L, 3L, 1L, 1L, 2L, 3L, 1L, 1L, 1L,
2L, 3L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), BIRD = structure(c(6L,
6L, 6L, 2L, 7L, 6L, 6L, 2L, 7L, 1L, 7L, 5L, 8L, 8L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 6L, 6L, 7L, 7L, 6L, 8L, 3L,
7L, 9L, 5L, 4L, 2L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("AMCR",
"AMRO", "BRSP", "DUFL", "HOWR", "NOBI", "SPTO", "UNBI", "VESP"
), class = "factor"), NUMBER = c(NA, NA, NA, 1L, 1L, NA,
NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, NA, NA, NA, NA, NA, NA, NA,
NA, 1L, 1L, NA, NA, 1L, 1L, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
NA, NA, NA, NA, NA, NA)), class = "data.frame", row.names = c(NA,
-42L))
最佳答案
这里有一种使用 tidyverse
元包中的 dplyr
和 tidyr
来完成此操作的方法。
# Step one - identify missing rows.
# For each DATE, SITE, POINT, TIME, count how many of each minute
library(tidyverse)
# Convert factors to character to make later joining simpler,
# and fix missing ID's by assuming prior line should be used,
# and make NOBI rows have a count of NA
PC_2_clean <- PC %>%
mutate_if(is.factor, as.character) %>%
fill(ID, .direction = "up") %>%
mutate(NUMBER = if_else(BIRD == "NOBI", NA_integer_, NUMBER))
# Create a wide table with spots for each minute. Missing will
# show up as NA's
# All the NA's here in the 1, 2, and 3 columns represent
# missing minutes that we should add.
PC_3_NA_find <- PC_2_clean %>%
count(ID, DATE, SITE, POINT, TIME, MINUTE) %>%
spread(MINUTE, n)
PC_3_NA_find
# A tibble: 11 x 9
# ID DATE SITE POINT TIME `1` `2` `3` `<NA>`
# <chr> <chr> <chr> <chr> <chr> <int> <int> <int> <int>
# 1 BS 5/9/2018 CW2 M 7:12 3 1 2 NA
# 2 BS 5/9/2018 CW2 M 7:15 NA NA NA 1
# 3 BS 5/9/2018 CW2 M 7:18 NA NA NA 1
# 4 BS 5/9/2018 CW2 U125 6:48 1 1 1 NA
# 5 BS 5/9/2018 CW2 U125 6:51 1 1 1 NA
# 6 BS 5/9/2018 CW2 U125 6:54 2 NA NA NA
# 7 BS 5/9/2018 CW2 U125 6:57 2 1 1 NA
# 8 BS 5/9/2018 CW2 U125 7:51 1 1 1 NA
# 9 BS 5/9/2018 CW2 U125 7:54 2 NA NA NA
# 10 BS 5/9/2018 CW2 U125 7:57 3 2 1 NA
# 11 BS 5/9/2018 CW2 U125 8:00 1 NA NA NA
# Take the NA minute entries and make the desired line for each
PC_4_rows_to_add <- PC_3_NA_find %>%
gather(MINUTE, count, `1`:`3`) %>%
filter(is.na(count)) %>%
select(-count, -`<NA>`) %>%
mutate(MINUTE = as.integer(MINUTE),
BIRD = "NOBI",
NUMBER = NA_integer_)
# Add these lines to the original, remove the NA minute rows
# (these have been replaced with minute rows), and sort
PC_5_with_NOBIs <- PC_2_clean %>%
bind_rows(PC_4_rows_to_add) %>%
filter(MINUTE != "NA") %>%
arrange(ID, DATE, SITE, POINT, TIME, MINUTE, BIRD)
# Check result
PC_5_with_NOBIs %>%
count(ID, DATE, SITE, POINT, TIME, MINUTE) %>%
spread(MINUTE, n)
PC_5_with_NOBIs
# Now to confirm it matches your desired output.
# Note, I convert to character to avoid mismatches between factors
PCc_char <- PCc %>%
mutate_if(is.factor, as.character) %>%
arrange(ID, DATE, SITE, POINT, TIME, MINUTE, BIRD)
identical(PC_5_with_NOBIs, PCc_char)
# [1] TRUE
关于r - 大数据集清洗: How to fill in missing data based on multiple categories and searching by row order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52300467/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 4 年前。 Improve
在 Vim 中,我可以:set wrapscan,这样当我进行增量搜索时,无论第一个匹配项位于光标上方还是下方,光标都会跳转到第一个匹配项。 在 Emacs 中,如果我通过 C-s 开始搜索,如果第一
Elasticsearch 中的页面排名是如何工作的。一旦我们创建了一个索引,就会有一个底层智能层创建一个元数据存储库并提供结果以根据相关性进行查询。我已经创建了几个索引,我想知道在提供查询后结果是如
我们在单个节点上使用 Elasticsearch 对数据进行了索引。我们在后台运行了一个线程,用于使用最近的更改更新索引。 现在我们使用 Elasticsearch API 来运行搜索查询。 {
这突然停止工作,正在工作,但现在却没有: 如果我使用Twitter UI并转到: https://twitter.com/#!/search/%22social%20snap%22%20OR%20%
我在基类中声明了某些字段,并且我想仅为某些子类(实体)注册这些字段。 因此,我不想通过 @Field 注释基类中的这些字段,尽管只需以编程方式注册某些实体就足够了。 但是在基本实体中声明的字段未注册/
我的全文搜索索引有问题。我有一个字符字段大小为 30 的表。我在这个字段上创建了一个全文搜索索引,以便在这个不区分大小写的字段上进行快速搜索操作。现在,当我执行以下查询时:SELECT fieldna
我对SandCaSTLe的输出感到非常满意,但我也想在HTML输出中包含一些搜索功能,这可能吗? 最佳答案 SandCaSTLe帮助文件生成器的网站输出包含 index.aspx 和 index.ht
有没有人遇到过Apache Lucene的功能?我听说它甚至可以与Google Search Appliance(GSA)相提并论。我正在寻找两者之间的明确比较,如果可能的话? 在线上进行的比较非常模
在构建应用程序时,“查找”与“搜索”之间有什么有意义的区别吗?您是否将它们视为同义词? 我在询问应用程序UI和API设计的标签方面。 最佳答案 查找是搜索的完成。 如果您可能无法成功找到某些东西,则将
我想编写一个移动应用程序,它可以拍照并在谷歌图像中搜索类似的图片,然后显示结果。 但是,使用谷歌图像搜索我只能搜索文本字符串,而使用搜索 API 似乎无法搜索相似图片;此功能似乎只能通过网络界面使用。
当我从 Many2one 列表框中选择一个项目时,我想要进行高级搜索。例如,此功能是针对“res.groups”对象实现的。我在/addons 中找不到此功能。 更准确地说,我定义了我的对象 clas
我正在使用 Amazon CloudSearch 存储大量地点。每个地方在一周中的每一天都有开放时间和关闭时间。 我需要按当前时间检索地点。您如何建议对索引进行建模?我想通过创建 7 个文本索引来解决
我见过一些网站,当您执行搜索时会列出相关搜索,即它们会建议您可能感兴趣的其他搜索查询。 我想知道在中型网站中对此进行建模的最佳方法(没有足够的流量来依赖访问者统计数据来推断关系)。我最初的想法是存储每
如何从 Sitecore Lucene 搜索中获取格式化的 url?我创建了一个自定义索引,并在根目录下将其更新为/sitecore/content/websitename/home。 检索到搜索结果
我一直在努力寻找这个并且无法找到我想要的东西。 在我的状态行上,我想要计算当前文件中出现的匹配数。下面的 vim 命令返回我想要的。我需要返回的号码显示在我的状态行中。 :%s/^I^I//n vim
我们有自己的服务器与应用程序一起工作。我们开始使用不同的提供商进行托管,现在我们遇到了上述错误。 关于 同 页面,这有效: 但是这个不 我们无法弄清楚为什么会这样。您
题目地址:https://leetcode.com/problems/search-in-a-binary-search-tree/description/ 题目描述 Given the root
我正在使用很棒的插件 Leaflet.Control.Search为了在我的 map 上搜索标记(来自 geoJson 标记组)——效果很好。 我现在只有一个简单的问题:如何打开搜索结果标记的弹出窗口
我开发了一个允许创建新记录的扩展。 在列表模块中,在记录列表下,有搜索表单。 例如,它适用于 fe 用户,但不适用于我的自定义记录。 是否必须在我的 tca 中添加任何特殊配置才能使此表单与我的自定义
我是一名优秀的程序员,十分优秀!