R:从复杂的数字/字符串混合数据集中的字符串数据的多个变量中提取数字的斜率

任意

我有一个来自德国经济专家组(SOEP)的18个类似的数据框(每个数据框都代表一个调查年份),它是零件字符串和零件数字。变量(每个DF中超过200个)具有以下值

  • 前4个是人和家庭的数字标识符
  • 有些是数字“ -2”到“ 12”
  • 有些是字符串类型1,例如“ [1] Ja”或“ [-2] Nein”
  • 有些是字符串类型2,例如“ [1] Jan full-time”。或“ [-2]不适用”

我已经尝试了sapply-command,但是我收到了一个可转换为数据帧且没有4个Identifier-Variables的矩阵,并且仍然在我的数字前后加上了方括号(PKAL06是我的起始DF)。

PKs <- sapply(PKAL06[5:225], function(PKAL06) substr (PKAL06,1,3)) 
PKsD <- data.frame(PKs)

同样,我尝试了与的组合gsub,但是它给了我NA而不是字符串。

PKas <- sapply(PKAL06, 
   function(PKAL06) as.numeric(gsub("([0-9]+).*$", "\\1", PKAL06)))

理想情况下,有人可以给我提示如何告诉R通过提取括号之间的内容来将整(!)数据帧的字符串变量更改为数字变量。输出应该是具有所有变量的结构相同的数据框,而不是矩阵,而不是列表。

任何帮助将不胜感激。

耶洛华德

我从SOEP网站收集到数据是机密的,因此请尝试以下操作:

PKas <- sapply(PKAL06, 
   function(PKAL06) as.numeric(gsub("\\[([0-9|\\-]+)\\].+","\\1", PKAL06)))

上面的模式似乎适用于您的示例数据。

str <- c("[1] Ja","[-2] Nein")
as.numeric(gsub("\\[([0-9|\\-]+)\\].+","\\1",str))
# [1]  1 -2

str <- c("[1] Jan Vollzeit erwerbst.","[-2] trifft nicht zu")
as.numeric(gsub("\\[([0-9|\\-]+)\\].+","\\1",str))
# [1]  1 -2

您(似乎……)想要提取方括号之间的所有内容。但是,它[是正则表达式语法中的特殊字符,因此您必须使用\\[对其进行转义\\]上面的代码在仅接受数字或-括号之间更进一步

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从包含“ |”的字符串中提取数字

来自分类Dev

如何从字符串中提取数字

来自分类Dev

c#从字符串中提取多个数字

来自分类Dev

从字符串中提取数字?(JavaScript)

来自分类Dev

如何从字符串中提取数字

来自分类Dev

从字符串中提取多个数字之一

来自分类Dev

r-从文本中提取字母数字字符串

来自分类Dev

从字符串中提取数字[]

来自分类Dev

从可变字符串中提取数字

来自分类Dev

熊猫从字符串中提取数字

来自分类Dev

从字符串中提取数字

来自分类Dev

R问题:从字符串末尾提取数字字符

来自分类Dev

使用stringstream从混合字符串中提取数字

来自分类Dev

从字符串值中提取数字

来自分类Dev

从字符串值中提取数字

来自分类Dev

如何从大型python数据框中的复杂字符串中提取数字

来自分类Dev

包含字符串和数字的聚合数据框

来自分类Dev

R:从数字和字母混合的字符串中提取最大的数字

来自分类Dev

从长数字字符串中提取数字

来自分类Dev

如何从字符串中提取数字

来自分类Dev

从字符串中提取数字

来自分类Dev

从字符串中提取数字?(Javascript)

来自分类Dev

如何从字符串中提取数字

来自分类Dev

Java:从字符串中提取数字

来自分类Dev

如何从字符串中提取多个数字?

来自分类Dev

从字符串中提取非数字字符

来自分类Dev

R:从字符串中提取数字

来自分类Dev

从 URL 中提取数字字符串

来自分类Dev

使用 Query 从变量中提取数字字符串