r替换字符串上的字符时出错

r替换字符串上的字符时出错,r,R,我正在读取一个结构如下的文件: [1111111]aaaa;bbbb;cccc [2222222]dddd;ffff;gggg Column A Column B Column C Column D 1111111 aaaa bbbb cccc 2222222 dddd ffff gggg 我想要一个这样的数据框: [1111111]aaaa;bbbb;cccc [2222222]dddd;ffff;gggg Column A

我正在读取一个结构如下的文件:

[1111111]aaaa;bbbb;cccc
[2222222]dddd;ffff;gggg
Column A  Column B  Column C  Column D
1111111    aaaa       bbbb      cccc
2222222    dddd       ffff      gggg
我想要一个这样的数据框:

[1111111]aaaa;bbbb;cccc
[2222222]dddd;ffff;gggg
Column A  Column B  Column C  Column D
1111111    aaaa       bbbb      cccc
2222222    dddd       ffff      gggg
所以我需要分开;并替换所有[]

这是我的代码:

读取文件

df<-read.csv("file.csv",sep=";")
不知道为什么第一个[不能被替换,我已经尝试过使用gsub并删除字符串的第一个字符,但似乎没有任何解决方法。有什么想法吗


感谢您的时间

我们可以先使用
readLines
读取数据,然后使用
gsub
更改字符串,然后使用
read.csv

read.csv(text=sub(";", "", gsub("[][]", ";", lines)), 
   sep=";", header=FALSE, col.names = paste0("Column", LETTERS[1:4]), stringsAsFactors=FALSE)
#  ColumnA ColumnB ColumnC ColumnD
#1 1111111    aaaa    bbbb    cccc
#2 2222222    dddd    ffff    gggg
数据
行如果列的长度确实是固定的,那么在库readr中读取fwf是有用的

library(readr)
read_fwf(
"[1111111]aaaa;bbbb;cccc
[2222222]dddd;ffff;gggg
", fwf_cols("Column A"=c(2,8), "Column B"=c(10,13), "Column C"=c(15,18), "column D"=c(20,23)))

#    `Column A` `Column B` `column C` `Column D`
#        <int>      <chr>      <chr>      <chr>
# 1    1111111       aaaa       bbbb       cccc
# 2    2222222       dddd       ffff       gggg
库(readr)
read_fwf(
“[1111111]aaaa;bbbb;中交
[222222]dddddd;ffff;gggg
,fwf_cols(“A列”=c(2,8),“B列”=c(10,13),“c列”=c(15,18),“D列”=c(20,23)))
#`A列`B列`C列`D列`
#                          
#1111111 aaaa bbbb CCC
#22222222 dddd ffff gggg

谢谢,你解决了我的问题!:)谢谢你的时间
lines <- readLines("file1.txt")
library(readr)
read_fwf(
"[1111111]aaaa;bbbb;cccc
[2222222]dddd;ffff;gggg
", fwf_cols("Column A"=c(2,8), "Column B"=c(10,13), "Column C"=c(15,18), "column D"=c(20,23)))

#    `Column A` `Column B` `column C` `Column D`
#        <int>      <chr>      <chr>      <chr>
# 1    1111111       aaaa       bbbb       cccc
# 2    2222222       dddd       ffff       gggg