r - 从多个文件中提取列并绘制它们
问题描述
我正在运行一个生成文本文件作为输出的模型,报告了 17 个变量,不同的名称(即variable1_X.out、variable2_.out .....variable17_X.out)是X对应于指定参数的文件编号模拟,它是可变的。由于我使用的文件很少,因此我使用基本脚本从我需要的变量中提取数据并绘制数据,但是,通过改变一些模型参数,现在我正在生成可变数量的文件,因此,我的脚本不再有用,并且每次运行都更新它是不切实际的。
我设法使用lapply将我想要的所有文件导入到 R 中,但是我想知道是否有一个工具/脚本可以从我需要的每个文件中提取特定列,然后将它们完全绘制出来。问题是输出文件中列的名称顺序不是恒定的,它会从一个变量变为另一个变量。但是,大多数文件中的名称是相同的,因此应根据特定名称列表(化学物质如 Al+++、Ca++、Na+....)进行选择。R不是我的专业领域。
解决方案
如果文件之间的变量名称相同或不同,我会有些困惑。也就是说,您可以使用 dplyr 从数据框中选择特定列。您也可以重命名它们。像这样(或某种组合)可能会起作用。
如果变量名不同,导入合并成一个大数据框
library(dplyr)
df1 = rio::import("df1.csv")
df2 = rio::import("df2.csv")
# first cbind the different files into one big dataframe for ease of access
df = cbind(df1, df2)
# Gives you the columns you select
filtered_df = df %>% dplyr::select(v1,v2,v3)
如果变量的名称相同。分别导入和选择变量。
df1 = rio::import("df1.csv")
df1_select = df1 %>% select(v1,v2,v3)
df2 = rio::import("df2.csv")
df2_select = df2 %>% select(v1,v2,v3)
df2 %>% Rename ("v1_df2" = "v1")
df2 %>% Rename ("v2_df2" = "v1")
df2 %>% Rename ("v3_df2" = "v1")
# cbind the renamed columns
cbind(df1,df2)
推荐阅读
- vue.js - vuepress中的IMG没有显示
- mysql - 在 Laravel PHP 中从 Controller 内部创建一个临时表
- python - HTTPError:由 urllib2.urlopen() 永久引发的移动
- oracle - 如何授予对表的触发器访问权限
- javascript - 从高度嵌套的外部文件中选择 JSON 节点
- angular - 如何从自定义 Angular 库中导入功能模块?
- laravel-mix - 如何从生产中删除 console.log?
- javascript - PHP MySQL查询在实际提交的行之前插入3行(来自w2ui表)
- node.js - Node.js 中的 Mongoose MongoDB - 在本地时区保存日期时间
- java - Graphql 使用 Input 类型搜索数据