【发布时间】:2017-11-04 21:56:55
【问题描述】:
在我的数据框中,我有一个字符列。我想使用我自己编写的函数从现有字符列创建一个新列。
我的功能
lat_finder <- function(coord){
return(as.numeric(substr(strsplit(coord,",")[[1]][1],2,10)))}
测试数据框
test <- data.frame('loc' = c("(37.7862913318072, -122.401375181471)","(37.7646938184545, -122.449439257453)","(37.7860078381928, -122.430650176965)"))
我正在尝试这个
test['Lat'] <- lapply(test['loc'],lat_finder)
结果是一个新列,但只有第一行函数的结果,即第一个 lat 应该是 37.786... 这是新列中每一行的值。我知道一个 for 循环会起作用,因为我以前做过这个操作,但它需要很长时间,所以我真的很想加快速度。我确信很明显我在这里遗漏了一些东西,所以除了修复之外,我希望能解释一下我的代码正在做什么。
【问题讨论】:
-
注意:在原始帖子中,我错误地引用了我正在使用的整个数据框。应该是 lapply(test['loc']....) 并且已经更正了。