Как уже упоминалось @Gregor, вы можете попробовать jsonlite
library(jsonlite)
library(data.table)
df1 <- rbindlist(lapply(df$values, function(x) as.data.frame(fromJSON(x))), fill = T)
который дает
> df1
ssdata.v1 ssdata.v2 sdata.v3 sdata.v4 sdata.v5 sdata.v6 ssdata.v3
1: -49.88 00.02 59 26.4 24.40 61.34 <NA>
2: -49.76 00.00 60 26.4 24.40 62.13 <NA>
3: -49.76 00.06 54 28.0 25.97 56.72 <NA>
4: <NA> 46.42 25.40 <NA> 14
5: <NA> 0.40 108.94 <NA> 14
Пример данных:
df <- structure(list(values = c("{"ssdata":[{"v1":"-49.88","v2":"00.02"}],"sdata":[{"v3":"59","v4":"26.4","v5":"24.40","v6":"61.34"}]}",
"{"ssdata":[{"v1":"-49.76","v2":"00.00"}],"sdata":[{"v3":"60","v4":"26.4","v5":"24.40","v6":"62.13"}]}",
"{"ssdata":[{"v1":"-49.76","v2":"00.06"}],"sdata":[{"v3":"54","v4":"28.0","v5":"25.97","v6":"56.72"}]}",
"{"ssdata":[{"v1":"","v2":"","v3":"14"}],"sdata":[{"v4":"46.42","v5":"25.40"}]}",
"{"ssdata":[{"v1":"","v2":"","v3":"14"}],"sdata":[{"v4":"0.40","v5":"108.94"}]}"
)), .Names = "values", class = "data.frame", row.names = c(NA,
-5L))