r - 无法将数据集中的字母数字值仅转换为数字
问题描述
我正在尝试将实验的 m/z 值和强度绘制为 x 和 y 坐标。我使用 Cardinal MSI 包来加载我的数据,因为没有其他东西可以读取我的数据文件并为每个 m/z 值平均跨数据集的所有强度。这很好用,但是我留下了一个值,其中包含 m/z 值的格式“m/z = 900.01”和强度的数字。
到目前为止,我已经尝试使用
data <- gsub("m/z = ", "", data)
这完全消除了 m/z 值。我还尝试转换为数据框而不是值,这很好用,但 m/z 值是强度的一组标题。同样,尝试 gsub 会完全删除 m/z 值。是否有另一种方法可以删除“m/z =”并仅获取它后面的数字,而该数字仍与强度值相关?谢谢!
解决方案
看起来您有一个命名的 vector,例如,名称"m/z = 899.91"
具有 value 0.6186...
,名称"m/z = 900.36"
具有 value1.35811...
等。您的向量是数字的,并且值都是小于一的部分。
899.91、900.36 等是名称的一部分。所以as.numeric(gsub("m/z = ", "", names(data)))
应该给你名字的数字部分。
您可能希望创建一个数据框,其中一列用于 m/z,一列用于强度:
my_data = data.frame(
mz = as.numeric(gsub("m/z = ", "", names(data))),
intensity = data
)
然后,您可以plot(my_data)
或制作其他更精美的情节。
推荐阅读
- android - TabLayout - 动画圆形指示器(更改为药丸形状)
- python - 我想将列表保存在 .csv 文件中。列表中的每个 \n 都应在文件中创建一个新行
- ruby-on-rails - flash[:notice] 消息不会显示
- javascript - 在 JavaScript 模块中正确导入 Firebase 存储
- reactjs - InvalidOperationException:NPM 脚本“启动”退出,但未指示 create-react-app 服务器正在侦听请求
- matlab - 当使用 fig2plotly 函数生成绘图图表时,当我的 MATLAB 绘图的轴是日期时间变量时它失败了
- groovy - 使用 GroovyClassLoader 加载类后应该调用 close 方法吗?
- x86 - 存储缓冲区是否保存现代 x86 上的物理或虚拟地址?
- excel - 将表格数据从 Wikipedia 复制到 Excel 时,是否有一种简单的方法可以消除 miniflags?
- pandas - Pandas:2 列到键值对