首页 > 解决方案 > 什么命令可以解析出字符变量中的字母和数字?

问题描述

我在 R 中有一个包含数字和字母的字符(字符串)对象。在 R 环境中查看时,它返回为:

 [1] " Sample Size =   955"
 [2] " Importance      0.861"
 [3] " Value      0.475 " 

这个对象中有更多的行,但这就是格式。基本上每一行都以双引号“ some text with digital inside”开始和结束,但所有这些数据都在一个R对象中,即字符。我想要的是只从这个对象中提取数字。所以对于上面的例子,我想得到另一个对象,比如说,z 只包含 955、0.861、0.475。同样,是否有一个函数只从每一行中提取文本?所以我会得到一个对象,y,它包含样本大小、重要性、值?

数据

x <- c(" Sample Size =   955", " Importance      0.861", " Value      0.475 ")

标签: rregex

解决方案


修剪末尾的所有空格,删除所有等号并用逗号替换最后一个空格(如果逗号可以出现,则替换为其他字符)。然后在 using 中阅读它read.table。不使用任何包。

read.table(text = sub("=", "", sub("(.*) ", "\\1,", trimws(x))), 
  sep = ",", as.is = TRUE, strip.white = TRUE)

给予:

           V1      V2
1 Sample Size 955.000
2  Importance   0.861
3       Value   0.475

如果DF是结果数据框,那么DF$V1DF$V2是两列。


推荐阅读