【发布时间】:2019-12-22 02:15:32
【问题描述】:
我想使用来自 this 数据帧上的 Código 列的不同长度值来改变一个新列。
ods <- readODS::read_ods('http://www.arcotel.gob.ec/wp-content/uploads/2016/09/proyeccion_cantonal_total_2010-2020_seg%C3%BAn_INEC1.ods', skip = 2)
我尝试过在这样的变异中使用 case_when:
mutate(ods, Provincia = case_when(
length(ods$Código) == 3 ~ str_extract(ods$Código, '[[:digit:]]{1}'),
length(ods$Código) == 4 ~ str_extract(ods$Código, '[[:digit:]]{2}')
))
只要值的长度为 3,就应该使用 Código 的第一个数字创建一个新的 Provincia 列,否则应该提取两个数字。运行上述代码时,我只得到 NA's
【问题讨论】:
-
我想你在这里想要
nchar而不是length -
非常好!您是否会将您的评论作为答案,以便我对其进行投票?