r - 从 data.frame 列中的字符串中检索数字
问题描述
我有来自特定文件格式的 4 列:
=1 =1 =1 =1
4G 4B 4d 2g
4E 8cL 4e .
. 8BJ . .
4F# 4A 4d 4dd
=2 =2 =2 =2
4G 4G 2d 4.b
4D 4F# . .
. . . 8a
4E 4G 4B 4g
我想将其转换为以下data.frame:
1 1 1 1
4 4 4 2
4 8 4 .
. 8 . .
4 4 4 4
2 2 2 2
4 4 2 4
4 4 . .
. . . 8
4 4 4 4
我想有一个图书馆可以做这种事情。我已经尝试为此创建一个函数,但无法正常工作。任何贡献都会得到回报。
解决方案
我们可以parse_number
从readr
包中使用。
library(readr)
library(dplyr)
df %>%
mutate_all(parse_number)
# V1 V2 V3 V4
#1 1 1 1 1
#2 4 4 4 2
#3 4 8 4 NA
#4 NA 8 NA NA
#5 4 4 4 4
#6 2 2 2 2
#7 4 4 2 4
#8 4 4 NA NA
#9 NA NA NA 8
#10 4 4 4 4
我们还可以使用lapply
将函数应用于所有列
df[] <- lapply(df, parse_number)
推荐阅读
- keras - 无法在 Modelcheckpoint 中创建文件和使用文件路径
- java - 新材质依赖项不适用于 CoordinatorLayout 预览
- python - ValueError:检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到了形状为 (454、512、512) 的数组
- php - 返回重定向取决于 HomeController Laravel 中的会话语言
- octave - Octave 无法使用 GraphicsMagick 读取文件
- matlab - MATLAB:在 x 轴上绘制日期的问题(折线图)
- c++ - 在 void 函数 C++ 中使用#include 变量
- c++ - 通过在 C++ 中重命名符号来减少二进制大小
- r - 从 sendCustomMessage() 在 htmlwidgets/plotly 对象中定义 hoverinfo
- rust - 是否有更简单的方法来获取 Actix-Web HTTP 标头的字符串值?