r - 通过多个特定字符拉取大数据子集
问题描述
我有一个大型数据库,它将文件分成块以便于分析/存储,并且我试图从单个列中提取以字符格式存储的多个特定值,以获取整体数据的一部分以进行进一步分析。
在这些文件中,我有兴趣拉出所有行,其中“Cat”列等于任意数量的字符(每个拉取和每个文件都不同)。
文件设置(例如)为:
2001_x.sas
2002_x.sas
....
2018_x.sas
目前,我正在执行以下操作:
#Create a list of files- fill out pattern to chose specific files with similar names
'x<-list.files(pattern = "_x.sas")'
#Read and subset files when Cat is C21 C98 or D27 etc
'z<-lapply(x, function(x) {
a<-read.sas(x)
c<-subset(a, (Cat=="C21" | Cat=="C98 | Cat=="D27))
})'
#Bind df's into master df
'y<-bind_rows(z)'
y 是一次从多个文件中提取的非常好的方法。由于总数据集为数 TB,这样做的好处是它可以在单个文件中工作,并且不会压倒我桌面上的内存。
问题是我不能总是使用只有三个值的 Cat 等于变量。有时,我需要输入数百个值,这非常繁琐。我试过用列表或向量替换它。
理想情况下,如果您知道我的意思,我希望代码看起来更像这样,但这不起作用:
'b<-List or vector with character values of interest
z<-lapply(x, function(x) { a<-read.sas(x) subset(a, Cat==any(b)) })
y<-bind_rows(z)'
这样,如果列表 b 中的任何值等于 Cat。但是,我只能让它与 Cat 等于变量和 or 符号一起使用。
谢谢!
解决方案
推荐阅读
- python - 在不知道 discord.py 中的参数的情况下在命令中调用命令
- python - 在我的解决方案中报告错误以查找树的直径
- maven - Intellij Idea 2020 社区版中的 Glassfish 5(Payara 服务器)
- javascript - Javascript Axios如何从函数返回状态404
- kerberos - 为什么 kerberos 集合没有列出有效的主体?
- python - 将 postgres 表导出到 yaml 文件
- python - SQLite 和 Python 的问题
- c# - C# 调用字典
基于从另一个字典返回的值 - python - Instabot 信号仅在主线程中有效
- json - 如何使用 JMeter 中的 JSON 提取器提取 JSON 响应中的嵌套元素