我正在读取一个结构如下的文件:
[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/