为何R语言中数据表筛选结果为逻辑值而非目标数据表?
解决R中按年份筛选数据表的问题
你当前的代码仅生成了一个逻辑向量,用来标记每行数据是否满足年份在1970-2014之间的条件,但没有用这个向量去提取原数据表中符合条件的完整行记录。要得到目标数据表,需要对原数据框执行子集化操作,以下是两种常用方法:
方法1:基础R原生子集化
修改代码,将逻辑向量作为行索引传入原数据框:
Gravity_V202211 <- readRDS("G:/My Drive/PhD/Methodology/Netunim/Gravity_V202211.rds") # 生成年份筛选的逻辑条件 filter_condition <- Gravity_V202211$year > 1969 & Gravity_V202211$year < 2015 # 用条件筛选原数据表,逗号表示保留所有列 Gravityfilter1 <- Gravity_V202211[filter_condition, ] # 查看筛选后的完整数据表 View(Gravityfilter1)
方法2:用dplyr包实现更简洁的筛选
如果你习惯tidyverse风格的代码,dplyr的filter()函数会更直观:
# 未安装dplyr的话先执行安装(只需一次) # install.packages("dplyr") library(dplyr) Gravity_V202211 <- readRDS("G:/My Drive/PhD/Methodology/Netunim/Gravity_V202211.rds") # 直接链式调用筛选条件,逗号表示多个条件同时满足 Gravityfilter1 <- Gravity_V202211 %>% filter(year > 1969, year < 2015) View(Gravityfilter1)
内容的提问来源于stack exchange,提问作者yuval finkel
相关产品推荐
相关产品推荐

