我有一个搜索使用which
,另一个搜索使用grep
,如下所示:
dates <- myframe[grepl(abreviation,myframe$geo),"date"]
dates <- c(dates, myframe[which(myframe$geo == fullname),"date"])
abreviation
和fullname
是两个不同的字符串。
我尝试使用返回0条目的|
。我也尝试了endsWith
,但是这返回了警告,只有顶级结果才会被使用,而且列表只有一个结果。
我遇到的问题是它没有以字符串格式返回日期,这是date
,而是数字整数。
我需要做些什么才能获得这些日期的向量
编辑:这是一个示例数据集 -
pastebin.com/yXq6khNV
答案 0 :(得分:1)
which
输出一个整数向量,而grepl
输出一个布尔值。要让它们匹配并协同工作,请在没有which
调用的情况下进行尝试。您还需要整理NA
列中的geo
个{我还将您的fullname
更改为&#34;纽约,纽约&#34;自&#34;纽约,USA&#34;没有出现在你的表中):
dates <- myframe[ !is.na( myframe$geo ) &
( grepl(abbreviation,myframe$geo) | myframe$geo == fullname ),
"date" ]
哪个给出(tibble格式是因为我使用readr
来读取数据集):
> dates
# A tibble: 1 × 1
date
<chr>
1 12/30/10 02:37 PM
如果由于某种原因您在途中丢失了格式,您可以指定它,虽然它不是Date
格式,所以我只指定{{1这里:
character
答案 1 :(得分:0)
我通过将已经过滤的数据框传递给grepl
来解决了这个问题:
dates <- myframe[grepl(abreviation,myframe[which(myframe$geo == fullname),]),"date"]