抱歉,这是一个愚蠢的问题!
我的目标与此处的帖子基本相同:Take dates from one dataframe and filter data in another dataframe - R,并继续使用dplr,因为稍后我将使用row_wise()在数据集的所有行上运行此代码
但是,就我而言,我希望从第二个数据框中的2个不同的列中获取“开始”和“结束”年份。
这里有一些虚拟数据(取自原始帖子,并适应了我的问题):
main_data = data.frame(year=c(1966:2017))
second_data = data.frame(Participant = c(1:6),
Start_year = c(2012,1994,1974,1983,1969,2002),
End_year = c(2017,2017,2017,2017,2017,2017))
并根据原始帖子编写了以下代码:
filtered.total =
main_data %>%
rowwise() %>%
mutate(year = any(year >= second_data$Start_year & year <=
second_data$End_year)) %>%
filter(year) %>%
data.frame()
我还在按位置(国家和县)过滤数据,但这只是为我的数据集提供了以下错误消息:
Error in filter_impl(.data, quo) : Result must have length 2299, not 0
以及上面的虚拟数据:
In year <= second_data$End_year :
longer object length is not a multiple of shorter object length
感谢您的帮助-R相当陌生,我的博士现在正在测试我的基本知识!
答案 0 :(得分:0)
您可能需要使用min(second_data$year)
和max(second_data$year)
,因为目前您要提供许多可比较的值,我认为它对此有所抱怨。