r - 将列字符串转换为 r 数据框中的数字

标签 r dataframe tuples

我有一个数据框,其中有一列字符串如下:

    mydata <- c("-1.356670,35.355030",
            "-1.356670,35.355030", 
            "-1.356620,35.355890", 
            "-1.356930,35.358660", 
            "-1.357000,35.359060"
    )

    df <- data.frame(mydata)

我想将其转换为包含两列“longlat 的数据框,每列都是数字类型。最好的方法是什么?我已尝试使用 lapply,但似乎无法正常工作。

最佳答案

使用基础 R,您可以:

df$Long <- as.numeric(sapply(strsplit(as.character(df$mydata), ","), function(x) x[1]))
df$Lat <- as.numeric(sapply(strsplit(as.character(df$mydata), ","), function(x) x[2]))

               mydata     Long      Lat
1 -1.356670,35.355030 -1.35667 35.35503
2 -1.356670,35.355030 -1.35667 35.35503
3 -1.356620,35.355890 -1.35662 35.35589
4 -1.356930,35.358660 -1.35693 35.35866
5 -1.357000,35.359060 -1.35700 35.35906

或者使用 data.table 中的 tstrsplit():

df$Long <- as.numeric(tstrsplit(df$mydata, ",")[[1]])
df$Lat <- as.numeric(tstrsplit(df$mydata, ",")[[2]])

还有@clmarquart 提出的data.table 中的tstrsplit():

setDT(df)[, c("lat", "long") := tstrsplit(mydata, ",", fixed = TRUE)]

关于r - 将列字符串转换为 r 数据框中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617973/

相关文章:

r - 在Linux上安装R : configure: WARNING: you cannot build PDF versions of the R manuals

python - 根据列的唯一值分配增量值

struct - 有没有一种优雅的方法可以在没有 PhantomData 的情况下使用未使用的类型制作通用元组结构?

python - 在函数末尾将元组打印到数据帧中

r - 在我的混合模型上使用 lme4 预测函数时遇到问题

r - 如何根据正值和负值求R中的条件和

r - 检测前两列数字组合相同的行,选择第三列数字最大的行

arrays - Julia - 如何将数据帧转换为数组?

python - 如何通过指定关键字对 pandas 数据框中的列名称进行排序

python - 为什么列表理解中的元组需要括号?