Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 - Fatal编程技术网

R 基于索引的字符串拆分

R 基于索引的字符串拆分,r,R,我有一个DF,它由一列字母数字值组成。我想拆分这些值并将其存储在单独的列中 我有一个数据框,它有一列字母数字值。我希望分割该值并将其存储到新列中,如示例中所示 str一个选项是使用从tidyverse中分离 library(tidyverse) tibble(col1 = str) %>% separate(col1, into = paste0("col", 0:7), c(4, 8, 16, 20, 26, 30, 32)) %>% select(-1) # A t

我有一个DF,它由一列字母数字值组成。我想拆分这些值并将其存储在单独的列中

我有一个数据框,它有一列字母数字值。我希望分割该值并将其存储到新列中,如示例中所示


str一个选项是使用
tidyverse
中分离

library(tidyverse)
tibble(col1 = str) %>%
   separate(col1, into = paste0("col", 0:7), c(4, 8, 16, 20, 26, 30, 32)) %>% 
   select(-1)
# A tibble: 6 x 7
#  col1  col2     col3  col4   col5  col6  col7                                   
#  <chr> <chr>    <chr> <chr>  <chr> <chr> <chr>                                  
#1 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#2 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#3 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#4 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#5 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#6 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077

一种选择是使用
tidyverse

library(tidyverse)
tibble(col1 = str) %>%
   separate(col1, into = paste0("col", 0:7), c(4, 8, 16, 20, 26, 30, 32)) %>% 
   select(-1)
# A tibble: 6 x 7
#  col1  col2     col3  col4   col5  col6  col7                                   
#  <chr> <chr>    <chr> <chr>  <chr> <chr> <chr>                                  
#1 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#2 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#3 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#4 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#5 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077
#6 AA00  100BC300 AA01  111000 AA02  99    F40400F4053DF40C0000F4030000F40680F4077

使用一行示例输出查找字段宽度。由于示例输出中似乎缺少输入的前4个字符,因此以4开头。然后在
read.fwf
中使用它。如果您确实不希望输入的前4个字符出现在输出中,则将
read.fwf
行替换为
read.fwf(textConnection(str),widths)[-1]
。没有使用任何软件包

sample.out <- "AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077"
widths <- c(4, sapply(read.table(text = sample.out, as.is = TRUE), nchar))

read.fwf(textConnection(str), widths)

使用一行示例输出查找字段宽度。由于示例输出中似乎缺少输入的前4个字符,因此以4开头。然后在
read.fwf
中使用它。如果您确实不希望输入的前4个字符出现在输出中,则将
read.fwf
行替换为
read.fwf(textConnection(str),widths)[-1]
。没有使用任何软件包

sample.out <- "AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077"
widths <- c(4, sapply(read.table(text = sample.out, as.is = TRUE), nchar))

read.fwf(textConnection(str), widths)

您提供的第一个解决方案是为我工作。。。。非常感谢…你提供的第一个解决方案是为我工作。。。。谢谢。。。。
    V1   V2       V3   V4     V5   V6 V7                                      V8
1 1001 AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077
2 1001 AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077
3 1001 AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077
4 1001 AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077
5 1001 AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077
6 1001 AA00 100BC300 AA01 111000 AA02 99 F40400F4053DF40C0000F4030000F40680F4077