将.txt文件读入带制表符分隔符的R中,每列以非数值开头

将.txt文件读入带制表符分隔符的R中,每列以非数值开头,r,R,我有一个唯一的文本文件,其中非数字短语作为列标题,制表符分隔的数字向量作为每个向量中的值,但非数字标题与每个向量中的最终数字值相邻。下面的示例(text_文件)类似于此的简单版本。该文件保存为“txt”文件,我希望将其转换为R格式的矩阵或data.frame格式(示例提供了所需的格式)。有人知道怎么做吗 我尝试了很多方法,但不确定如何实现这一点 text_file <- 'cat .210 -.123 .456dog 1.22 2.32 3.33\'\'\ 4.11 .021 .000'

我有一个唯一的文本文件,其中非数字短语作为列标题,制表符分隔的数字向量作为每个向量中的值,但非数字标题与每个向量中的最终数字值相邻。下面的示例(text_文件)类似于此的简单版本。该文件保存为“txt”文件,我希望将其转换为R格式的矩阵或data.frame格式(示例提供了所需的格式)。有人知道怎么做吗

我尝试了很多方法,但不确定如何实现这一点

text_file <- 'cat .210 -.123 .456dog 1.22 2.32 3.33\'\'\ 4.11 .021 .000'
#then, assume that is saved as a '.txt' file in directory
data <- read.table ('text_file.txt')

#desired output looks like so#
what_data_should_resemble = as.data.frame(matrix( c(.210, -.123, .456, 1.22, 2.32, 3.33, 4.11, .021, .000), 
                             nrow=3,              
                             ncol=3,              
                             byrow = TRUE))
colnames(what_data_should_resemble) <- c('cat', 'dog', '')
what_data_should_resemble

text\u文件您可以使用
readLines()
读取中的数据,然后用新行替换列名,然后使用
read.table()
再次读取


谢谢你的快速回复。但是,我没有让读取行正确地将“txt”文件作为保存的“txt”文件读取。但更重要的是,实际文件将有数千个列名,因此我希望有一个更自动的解决方案。@Drew-just
text thelatemail-谢谢。当我第一次运行它时,出现了一个错误,我从未检查过实际的对象。这部分工作正常,只是没有一个流线型的整体solution@Drew-
read.table(text=gsub(([^0-9.-]+),“\\1”,text),col.names=letters[1:4])
或类似的东西在数字和单词之间添加空格将有助于使此更加自动化。谢谢-是的,这主要是这样做的。稍作调整即可复制正确的数据帧:d
text_to_read <- 'cat .210 -.123 .456dog 1.22 2.32 3.33\'\'\ 4.11 .021 .000'

text <- readLines(textConnection(text_to_read))

read.table(text=gsub("cat|dog|''", "\n", text), col.names = c("cat", "dog", "x"))

   cat    dog     x
1 0.21 -0.123 0.456
2 1.22  2.320 3.330
3 4.11  0.021 0.000
read.table(text=gsub("[^\\d.\\-\\s]+", "\n", text, perl = TRUE))