如何从R中输入的固定宽度字符向量创建具有独立列的数据帧?

如何从R中输入的固定宽度字符向量创建具有独立列的数据帧?,r,dataframe,fixed-width,R,Dataframe,Fixed Width,我有一个称为“文本”的固定宽度字符向量输入,看起来像这样: [1] " Report" [2] "Group ID Name" [3] "Number" [4] "AA A134 abcd" [5] "AB A123 def" [6] "AC A

我有一个称为“文本”的固定宽度字符向量输入,看起来像这样:

[1] "           Report"
[2] "Group        ID           Name"
[3] "Number"
[4] "AA          A134          abcd"
[5] "AB          A123          def"
[6] "AC          A345          ghikl"
[7] "BA          B134          jklmmm"
[8] "AD          A987          mn"
我需要创建一个标准的数据帧。我的方法是首先创建一个文本文件,然后使用read.fwf函数从固定宽度的文本文件输入创建一个干净的数据帧。我所做的工作正常,但它迫使我在工作目录中创建一个文本文件,然后将其作为fwf读回:

> cat(text, file = "mytextfile", sep = "\n", append = TRUE)
> read.fwf("mytextfile", skip = 3, widths = c(12, 14, 20))
如果不将中间输出保存到我的工作目录中,是否可以获得相同的结果?我尝试使用paste()和capture.output()但没有成功。当

x = paste(text, collapse = "\n")
一开始似乎很管用,但当我把它传给

read.fwf(x, skip = 3, widths = c(12, 14, 20))
我得到


然后capture.output()让我回到了第一步,一个字符向量。非常感谢您的建议。谢谢。

您可以使用
textConnection
read.fwf
中以文本形式读取文件并提供宽度

data <- read.fwf(textConnection(text), 
                 widths = c(12, 14, 20), strip.white = TRUE, skip = 3)
data
#  V1   V2     V3
#1 AA A134   abcd
#2 AB A123    def
#3 AC A345  ghikl
#4 BA B134 jklmmm
#5 AD A987     mn

数据谢谢。成功了!
data <- read.fwf(textConnection(text), 
                 widths = c(12, 14, 20), strip.white = TRUE, skip = 3)
data
#  V1   V2     V3
#1 AA A134   abcd
#2 AB A123    def
#3 AC A345  ghikl
#4 BA B134 jklmmm
#5 AD A987     mn
text <- c("           Report", "Group        ID           Name", "Number", 
"AA          A134          abcd", "AB          A123          def", 
"AC          A345          ghikl", "BA          B134          jklmmm", 
"AD          A987          mn")