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 - Fatal编程技术网

R根据模式拆分列

R根据模式拆分列,r,R,我用str_extract_all()得到了一长串向量 标题(列表)输出如下: [1] "ARGENTINA" [[2]] [1] "BUENOS " "AIRES" "BUENOS " "AIRES" "ARGENTINA" [[3]] [1] "ARGENTINA" "ARGENTINA" [[4]] [1] "ARGENTINA" "ARGENTINA" [[5]] [1] "ARGENTINA" [[6]] [1] "ARGENTINA" 现在,我想将

我用str_extract_all()得到了一长串向量

标题(列表)输出如下:

[1] "ARGENTINA"

[[2]]
[1] "BUENOS "   "AIRES"     "BUENOS "   "AIRES"     "ARGENTINA"

[[3]]
[1] "ARGENTINA" "ARGENTINA"

[[4]]
[1] "ARGENTINA" "ARGENTINA"

[[5]]
[1] "ARGENTINA"

[[6]]
[1] "ARGENTINA"
现在,我想将输出移动到excel,使每个元素在同一行中占据不同的列。例如:

p1          p2         p3       p4     p5
ARGENTINA   NA         NA       NA     NA
BUENOS      AIRES      BUENOS   AIRES  ARGENTINA
ARGENTINA   ARGENTINA  ARGENTINA NA    NA
但我在尝试执行此操作时出现以下错误:

数据帧错误(“阿根廷”,c(“布宜诺斯艾利斯”,“布宜诺斯艾利斯”, “AIRES”,:参数表示不同的行数:1、5、2、3, 6,4,0,9,8,7,38


任何帮助都将不胜感激。

由于
列表
元素的长度不同,我们可能需要在
rbind
之前的末尾添加
NA
,因为结果来自
stru extract\u all
,只需使用
simplify=T
参数,它将返回一个矩阵而不是列表. 矩阵将由空字符串组成,而不是
NA
。您可以替换它们,然后将其转换为数据帧

mat <- str_extract_all(your_string, pattern, simplify = TRUE)

mat[mat == ""] <- NA_character_

df <- as.data.frame(mat)
mat
library(stringi)
stri_list2matrix(lst, byrow=TRUE)
lst <- list("ARGENTINA", c("BUENOS ", "AIRES", "BUENOS ", "AIRES", 
   "ARGENTINA"
 ), c("ARGENTINA", "ARGENTINA"), c("ARGENTINA", "ARGENTINA"), 
    "ARGENTINA", "ARGENTINA")
mat <- str_extract_all(your_string, pattern, simplify = TRUE)

mat[mat == ""] <- NA_character_

df <- as.data.frame(mat)