【发布时间】:2014-10-08 14:48:33
【问题描述】:
我有来自德国经济小组 (SOEP) 的 18 个类似的数据框(每个代表一个调查年份),其中一部分是字符串,一部分是数字。变量(每个 DF 中超过 200 个)具有以下值
- 前 4 个是个人和家庭的数字标识符
- 有些是数字“-2”到“12”
- 有些是字符串类型 1,如“[1] Ja”或“[-2] Nein”
- 有些是字符串类型 2,如“[1] Jan Vollzeit erwerbst”。或“[-2] trifft nicht zu”
我已经尝试了sapply-command,但是我收到了一个可转换为没有 4 个标识符变量的数据帧的矩阵,并且我的数字周围仍然有括号(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 将整个(!)数据帧的字符串变量更改为数字变量。输出应该是与之前所有变量相同结构的数据框,而不是矩阵,而不是列表。
任何帮助将不胜感激。
【问题讨论】:
-
请考虑发布一些示例数据。
标签: r string numeric substr gsub