我试图仅将我的 sf data.table 中的某些列从字符强制转换为数字。当我在没有函数的情况下编写代码时,它可以工作。
columns <- c("STATEFP", "COUNTYFP", "TRACTCE", "BLKGRPCE", "GEOID", "ALAND", "AWATER", "INTPTLAT", "INTPTLON")
for (i in columns){ sfphl[[i]] <- as.numeric(sfphl[[i]])}
当我将相同的代码加载到函数中时,它不再起作用。
col_conv <- function(x){
columns <- c("STATEFP", "COUNTYFP", "TRACTCE", "BLKGRPCE", "GEOID", "ALAND", "AWATER", "INTPTLAT", "INTPTLON")
for (i in columns){
x[[i]] <- as.numeric(x[[i]])
}
}
col_conv(sfphl)
我的函数可能遗漏了一些东西,我尝试在函数末尾使用 return(x) 或 x 无济于事。我不认为这与 data.table 是一个简单的功能有关,但它可能是。