我在 R 中有一个数据框,其中一列数据是这样的
"828/km (2,140/sq mi)" "365/km (950/sq mi)" "1,102/km (2,850/sq mi)"
"1,029/km (2,670/sq mi)" "236/km (610/sq mi)" "555/km (1,440/sq mi)"
我想修剪这个数据,使它变成这样
828 365 1102 1029 236 555
我该怎么做?
我尝试在这段代码中使用 gsub 和 grepl 函数
grepl("[0-9]+/km",Population.Density.a.), as.numeric(gsub("[^0-9]","",Population.Density.a.))
尝试过 str_extract 函数
population_density<-str_extract(states_data$Population.Density.a.,"[0-9]+/km")
得到这个结果
"828/km" "365/km" "102/km" "029/km" "236/km" "555/km" "201/km" "319/km" "308/km" "303/km"
应该是
"828/km" "365/km" "1,102/km" "1,029/km" "236/km" "555/km" "201/km" "319/km" "308/km" "303/km"
尝试过
population_density<-str_extract(states_data$Population.Density.a.,"\\d+\\,\\d+")
得到这个结果
"2,140" NA "1,102" "1,029" NA "1,440" NA NA NA NA
你可以做这样的事情...
x <- c("828/km (2,140/sq mi)", "365/km (950/sq mi)", "1,102/km (2,850/sq mi)",
"1,029/km (2,670/sq mi)", "236/km (610/sq mi)", "555/km (1,440/sq mi)")
as.numeric(gsub("(\\d+).+", "\\1", gsub(",", "", x)))
[1] 828 365 1102 1029 236 555
最简单的方法是先删除逗号,然后删除第一串数字之后的所有内容。