首页 > 解决方案 > 用 N 倍分隔符分隔字符串

问题描述

我有用 . 分隔的字符向量\n

x <- "Breakdown\nttm\n31/12/2020\n31/12/2019\n31/12/2018\n31/12/2017\nTotal revenue\n7,37,80,000\n7,36,21,000\n7,71,47,000\n7,95,90,000\n7,91,39,000\nCost of revenue\n3,79,22,000\n3,80,46,000\n4,06,59,000\n4,26,55,000\n4,29,13,000\nGross profit\n3,58,57,000\n3,55,75,000\n3,64,88,000\n3,69,36,000\n3,62,27,000"

所需的输出应为数据帧格式。它是固定的 - 总会有 6 列。前 6 个值将是标题。

数据

标签: r

解决方案


拆分字符串\n,使用前 6 个值作为标题,其余值作为数据帧的一部分,按行填充它们。

tmp <- unlist(strsplit(x, '\n'))

data.frame(matrix(tail(tmp, -6), ncol = 6, byrow = TRUE, 
           dimnames = list(NULL, head(tmp, 6))), check.names = FALSE)

#        Breakdown         ttm  31/12/2020  31/12/2019  31/12/2018  31/12/2017
#1   Total revenue 7,37,80,000 7,36,21,000 7,71,47,000 7,95,90,000 7,91,39,000
#2 Cost of revenue 3,79,22,000 3,80,46,000 4,06,59,000 4,26,55,000 4,29,13,000
#3    Gross profit 3,58,57,000 3,55,75,000 3,64,88,000 3,69,36,000 3,62,27,000

推荐阅读