我想在R中执行以下任务.这是字符向量:
a <- c("a", "1", "2", "3", "b", "5", "6", "7", "c", "8", "9", "11")
Run Code Online (Sandbox Code Playgroud)
将a转换为如下所示的数据框:
a 1 2 3
b 5 6 7
c 8 9 11
Run Code Online (Sandbox Code Playgroud)
我们可以用 matrix
as.data.frame(matrix(a, ncol = 4, byrow = TRUE), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
基于OP的初始帖子,似乎数据是单个字符串.如果是这样的话
a <- "a; 1; 2; 3; b; 5; 6; 7; c; 8; 9; 11"
library(data.table)
fread(gsub(";", "", gsub("((\\S+\\s+){3}\\S+)(\\s)", "\\1\n ", a, perl = TRUE)))
# V1 V2 V3 V4
#1: a 1 2 3
#2: b 5 6 7
#3: c 8 9 11
Run Code Online (Sandbox Code Playgroud)