我得到一个字符串,它是一个数字列表:
s <- "[14,7,5,3,4,0,1,7,2,3,1,18,13,4,23,7,8,8,11,18,15,6,2,10,2,4,8,5,11,5,1,5,2,4,3,1,6,8,5,5,3,1,1,4,5,2,9,3,4,11,11,14,3,12,2,6,0,0,15,1,18,5,3,6,6,6]"
请指导我如何将其转换回常规的 list
数字?
我试过使用 strsplit
, as.data.frame
但它看起来很长。
我想要一些高效且有创意的东西。
最佳答案
1) JSON 问题中显示的输入是 JSON 格式,因此请使用 jsonlite 或 rjson 包,它将为您执行所需的字符串处理。
library(jsonlite)
fromJSON(s)
给予:
[1] 14 7 5 3 4 0 1 7 2 3 1 18 13 4 23 7 8 8 11 18 15 6 2 10 2
[26] 4 8 5 11 5 1 5 2 4 3 1 6 8 5 5 3 1 1 4 5 2 9 3 4 11
[51] 11 14 3 12 2 6 0 0 15 1 18 5 3 6 6 6
2) strapply 如果您无论如何都想使用字符串处理,那么一个选项是strapply
提取所有数字序列"\\d+"
并转换为数字,给出与上面相同的输出。
library(gsubfn)
strapply(s, "\\d+", as.numeric, simplify = c)
3) 扫描或不带任何包或正则表达式:
scan(text = chartr("[]", " ", s), sep = ",", quiet = TRUE)
关于r - 给定一个字符串列表,如何转换回数字列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49606200/