我想在列表的所有行中选择一部分数字
在列表中,我将数字和字母组合在一起,但是有超过50000行: E0091349 W0532050 E0085229 ... 首先,我需要在新列表中提取第一个项目(字母),然后在另一个列表中提取3个第一个数字,另一个与下一个2,最后一个与最后2个。
我已经尝试使用lapply或mapply,但这是我第一次在r studio中使用,但我仍然有些失落
最后我应该有4个列表: E0091349 W0532050 E0085229 ... 第一个清单: Ë w ^ Ë ... 第二个清单: 009 053 008 ... 第三清单: 13 20 52 ... 第四名: 49 50 29 ...
答案 0 :(得分:1)
使用read.table
read.table(text = sub('(.{1})(.{3})(.{2})(.{2})', '\\1 \\2 \\3 \\4', d1$x),
colClasses = rep('character', 4))
# V1 V2 V3 V4
#1 E 009 13 49
#2 W 053 20 50
#3 E 008 52 29
数据:
dput(d1)
structure(list(x = c("E0091349", "W0532050", "E0085229")), class = "data.frame", row.names = c(NA,
-3L))
答案 1 :(得分:0)
如果您想在固定位置分割字符串,可以使用separate
tidyr::separate(df, col, paste0("V", 1:4), c(1, 4, 6, 8))
# V1 V2 V3 V4
#1 E 009 13 49
#2 W 053 20 50
#3 E 008 52 29
数据
df <- data.frame(col = c("E0091349", "W0532050", "E0085229"))