Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 提取列表中的数字范围_R_List_Numbers_Extract - Fatal编程技术网

R 提取列表中的数字范围

R 提取列表中的数字范围,r,list,numbers,extract,R,List,Numbers,Extract,我想在列表的所有行中选择数字的一部分 在列表中,我有这样一个数字和字母的组合,但有50000多行: E0091349 W0532050 E0085229 ... 首先,我需要在一个新的列表中提取第一项(字母),然后是另一个列表中的前3个数字,其他的是下2个,最后是其他的是最后2个 我已经尝试过使用Lappy或mapply,但这是我第一次使用r studio,我仍然有点迷路 最后,我应该有4个列表: E0091349 W0532050 E0085229 ... 第一份名单: E W E ... 第

我想在列表的所有行中选择数字的一部分

在列表中,我有这样一个数字和字母的组合,但有50000多行: E0091349 W0532050 E0085229 ... 首先,我需要在一个新的列表中提取第一项(字母),然后是另一个列表中的前3个数字,其他的是下2个,最后是其他的是最后2个

我已经尝试过使用Lappy或mapply,但这是我第一次使用r studio,我仍然有点迷路

最后,我应该有4个列表: E0091349 W0532050 E0085229 ... 第一份名单: E W E ... 第二份名单: 009 053 008 ... 第三名单: 13 20 52 ... 第四名单: 49 50 29

如果要在固定位置拆分字符串,我们可以使用
分离

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"))

df使用
read.table的基本R解决方案

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))

我这样定义数据:longitud_initialsex您需要给出一个列名。第四栏的名字是什么?请尝试使用单独的(纵向、列名称、粘贴(“V”,1:4)、c(1,4,6,8))