在data.frame中将带括号的因子转换为数值

在data.frame中将带括号的因子转换为数值,r,dataframe,R,Dataframe,我在dataframe中有一列,它的地理坐标值在导入时转换为如下所示的因子 [ [ -106.2432752 , 39.0077354]] [ [ -106.1867662 , 38.8326113]] 我想把它们转换成一个数字列表,但想不出办法。 我尝试用gsub删除括号,但它返回字符串。试试看gregexpr定位模式的位置。然后regmatches提取模式并返回列表。按行绑定这些列表,并使用应用中的函数将其转换为.numeric > tmp

我在dataframe中有一列,它的地理坐标值在导入时转换为如下所示的因子

[ [ -106.2432752 , 39.0077354]]
[ [ -106.1867662 , 38.8326113]]
我想把它们转换成一个数字列表,但想不出办法。
我尝试用gsub删除括号,但它返回字符串。

试试看
gregexpr
定位模式的位置。然后
regmatches
提取模式并返回列表。按行绑定这些列表,并使用
应用中的
函数将其转换为.numeric

> tmp
                           V1
1 [ [ -106.2432752 , 39.0077354]]
2 [ [ -106.1867662 , 38.8326113]]

apply(do.call(rbind,regmatches(as.character(tmp[,1]),gregexpr("[-]*[0-9]*[.]{1}[0-9]+",as.character(tmp[,1])))),2,as.numeric)

         [,1]     [,2]
[1,] -106.2433 39.00774
[2,] -106.1868 38.83261
选中此项:在数据上添加一个dput(),以便更容易查看R当前如何存储数据。