r编程-如何根据唯一字符将向量的每个元素拆分为子集

r编程-如何根据唯一字符将向量的每个元素拆分为子集,r,R,我有一个包含许多元素的向量。每个元素都是一个字符串。例如,考虑以下向量: [1] "1 \t1.02 \t2.2 \t1.2 \t1.01 \t1.08 \t785 \t" [2] "2 \t1.03 \t5 \t2.6 \t1.5 \t1.01 \t948 \t" [3] "3 \t1.03 \t11 \t2.9 \t1.6 \t1.01 \t942 \t" [4] "4 \t1.04 \t7 \t3

我有一个包含许多元素的向量。每个元素都是一个字符串。例如,考虑以下向量:

[1] "1 \t1.02  \t2.2 \t1.2 \t1.01 \t1.08 \t785 \t"                
[2] "2 \t1.03  \t5 \t2.6 \t1.5 \t1.01 \t948 \t"             
[3] "3 \t1.03  \t11 \t2.9 \t1.6 \t1.01 \t942 \t"              
[4] "4 \t1.04  \t7 \t3.7 \t1.6 \t1.01 \t848 \t"
我想把这个向量转换成一个数据帧。每个元素代表一行。请注意,在向量的每个元素中,是文本\t的组合;这表示列的结尾。在上面的示例中,向量将成为如下所示的数据帧:

    C1   C2   C3   C4    C5     C6     C7
1   1   1.02  2.2  1.2   1.01   1.08   785                
2   2   1.03  5    2.6   1.5    1.01   948             
3   3   1.03  11   2.9   1.6    1.01   942              
4   4   1.04  7    3.7   1.6    1.01   848 

提前感谢

扩展@RichardScriven的评论,您可以在您的案例中获得如下数据帧:

df <- read.table(text=sapply(1:length(v), function(x) c(v[x],"\n")))
names(df) <- paste0("C",1:ncol(df))
#> df
#  C1   C2   C3  C4   C5   C6  C7
#1  1 1.02  2.2 1.2 1.01 1.08 785
#2  2 1.03  5.0 2.6 1.50 1.01 948
#3  3 1.03 11.0 2.9 1.60 1.01 942
#4  4 1.04  7.0 3.7 1.60 1.01 848

我还没有找到一个可以让我开始的例子。数据来源是什么?这些只是制表符。
do.call(rbind,strsplit(c('1 3 5','4 5 6'),'')
是获取矩阵的一种方法,您可以将其强制为一个数据帧。
read.table(text=x)
应该可以,其中
x
是向量。或者您可以
粘贴
而不是
sapply
,即
read.table(text=paste)(gsub('+\t$,'',v),collapse='\n'),sep='\t',col.names=paste0('C',1:7))
确实更好。
v <- vector()
v[1] <- "1 \t1.02  \t2.2 \t1.2 \t1.01 \t1.08 \t785 \t"
v[2] <- "2 \t1.03  \t5 \t2.6 \t1.5 \t1.01 \t948 \t"
v[3] <- "3 \t1.03  \t11 \t2.9 \t1.6 \t1.01 \t942 \t"
v[4] <- "4 \t1.04  \t7 \t3.7 \t1.6 \t1.01 \t848 \t"