我对 R 还很陌生。我试图用 ; 取出值并将其作为值添加到新列中,直到遇到另一个带有 ; 的值。现在前面的值;将是该新列中的值。
谢谢!
结果:
最佳答案
我们根据 ;
的出现创建一个组,然后获取“v1”的第一个元素作为新列
library(dplyr)
df1 %>%
group_by(grp = cumsum(grepl(";", v1))) %>%
mutate(new = as.numeric(sub(";", "", first(v1)))) %>%
filter(!grepl(";", v1)) %>%
ungroup %>%
select(-grp)
# A tibble: 9 x 2
# v1 new
# <chr> <dbl>
#1 12345 10
#2 67890 10
#3 11121314 10
#4 85642 10
#5 19654 10
#6 5642 11
#7 9987 11
#8 22365 11
#9 5589 13
数据
df1 <- data.frame(v1 = c('10;', 12345, 67890, 11121314, 85642, 19654,
'11;', 5642, 9987, 22365, '13;', 5589), stringsAsFactors = FALSE)
关于R列 split ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50742379/