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

所以我需要分开;并替换所有 [ ]

这是我的代码:

读取文件

df<-read.csv("file.csv",sep=";")

替换 [ ]

df_V1 <- gsub(pattern="[",replacement="",df$V1)  #ERROR HERE!
df_V1 <- gsub(pattern="]",replacement=";",df$V1) #Replace the ] to ;

然后合并在一起

df_V1 <- do.call(rbind.data.frame,strsplit(df_V1,split=";"))
Data<- cbind(
                df_V1,
                df[,c(2:ncol(df))])

这是我的输出

View(Data)

 Column A  Column B  Column C  Column D
 [1111111    aaaa       bbbb      cccc
 [2222222    dddd       ffff      gggg

并且不知道为什么第一个 [ 不能被替换,我已经尝试使用 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

数据

lines <- readLines("file1.txt")

关于r 替换字符串中的字符时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43819617/

相关文章:

r - data.frame 中具有多个值的列

css - 如何在 Shiny 中设置动态流体行高度

r - 如何在 QCC Xbar 图表中显示日期

r - 如何查看 quantreg 包中的 .Fortran 函数

R - 时间序列的非线性滤波器 - 滤波器,重叠还是循环?

r - Y轴不会在ggplot中从0开始

删除图例符号的边框

r - 从字符串中删除重复单词的最短方法

r - 如何对这组数据(标称变量)应用 Fisher 检验

R:具有最大值的子集/组数据帧?