R:使用 Apply Function 清理李克特答案

R: Using Apply Function to clean likert answers

我有一项调查,用户填写了李克特量表的问题答案。当我想要的只是数字时,我们使用的软件已将文本放入答案中,因此示例是 NEITHER AGREE NOR DISAGREE4。我想将其转换为 4

我有 R 代码执行此操作,它在数据框的单元格中查找第 18 列的数字,如果存在则从中提取数字

as.numeric(ifelse(grepl("[0-9]",df[,18]),as.numeric(gsub(x = df[,18],"[A-z]","")), df[,18]))

我希望能够为 cols 执行此操作 18:134

我想我可以用 for 循环来做到这一点,但我认为这是如何使用应用函数之一的完美示例,我想学习。

谢谢

尝试

apply(df[,18:134], 2, function(x) gsub("[^0-9]", "", x))