R 如何将txt文件转换为漂亮的数据帧
我有一个包含曲目ID、歌曲ID、艺术家名称和歌曲名称的txt文件。我想把它转换成R中的数据帧来做一些分析。使用什么样的函数来分离数据?下面是数据集的顶行。谢谢R 如何将txt文件转换为漂亮的数据帧,r,text-mining,R,Text Mining,我有一个包含曲目ID、歌曲ID、艺术家名称和歌曲名称的txt文件。我想把它转换成R中的数据帧来做一些分析。使用什么样的函数来分离数据?下面是数据集的顶行。谢谢 TRMMMKD128F425225D<SEP>SOVFVAK12A8C1350D9<SEP>Karkkiautomaatti<SEP>Tanssi vaan trmmmkd128f425dsovfvak12a8c1350d9karkkiautomatantiansi-vaan 我们可以使用单独的 li
TRMMMKD128F425225D<SEP>SOVFVAK12A8C1350D9<SEP>Karkkiautomaatti<SEP>Tanssi vaan
trmmmkd128f425dsovfvak12a8c1350d9karkkiautomatantiansi-vaan
我们可以使用单独的
library(tidyr)
separate(df1, 'Col1', into = c('TrackID', 'SongID', 'ArtistName', 'SongName'),
"\\<SEP\\>")
library(tidyr)
分离(df1,'Col1',into=c('TrackID','SongID','ArtistName','SongName'),
"\\")
我们可以使用单独的
library(tidyr)
separate(df1, 'Col1', into = c('TrackID', 'SongID', 'ArtistName', 'SongName'),
"\\<SEP\\>")
library(tidyr)
分离(df1,'Col1',into=c('TrackID','SongID','ArtistName','SongName'),
"\\")
我们可以使用read.table
将文件作为数据帧直接读取,但列之间的分隔符(sep
)只能是一个字符
因此,我们可以首先使用readLines
读取文本文件,使用gsub
替换'
为单个字符('\t'
),然后使用read.table
指定列名
data <- read.table(text = gsub('<SEP>', '\t',
readLines('filename.txt'), fixed = TRUE),
col.names = c('TrackID', 'SongID', 'ArtistName', 'SongName'),sep = "\t")
data
# TrackID SongID ArtistName SongName
#1 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
data我们可以使用read.table
将文件作为数据帧直接读取,但是列之间的分隔符(sep
)只能是一个字符
因此,我们可以首先使用readLines
读取文本文件,使用gsub
替换'
为单个字符('\t'
),然后使用read.table
指定列名
data <- read.table(text = gsub('<SEP>', '\t',
readLines('filename.txt'), fixed = TRUE),
col.names = c('TrackID', 'SongID', 'ArtistName', 'SongName'),sep = "\t")
data
# TrackID SongID ArtistName SongName
#1 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
data您可以使用readLines
和strsplit
rw <- readLines("X:/foo.txt")
nice.df <- setNames(as.data.frame(do.call(rbind, strsplit(rw, "<SEP>"))),
c("Track.ID", "Song.ID", "Artist.Name", "Song.name"))
nice.df
# Track.ID Song.ID Artist.Name Song.name
# 1 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
# 2 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
# 3 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
# 4 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
rw您可以使用readLines
和strsplit
rw <- readLines("X:/foo.txt")
nice.df <- setNames(as.data.frame(do.call(rbind, strsplit(rw, "<SEP>"))),
c("Track.ID", "Song.ID", "Artist.Name", "Song.name"))
nice.df
# Track.ID Song.ID Artist.Name Song.name
# 1 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
# 2 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
# 3 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
# 4 TRMMMKD128F425225D SOVFVAK12A8C1350D9 Karkkiautomaatti Tanssi vaan
rw trackID在哪里结束,歌曲id在哪里开始更新样本行。行中的“”分隔了不同的变量。trackID结束和song id开始的位置更新了样本行。行中的“”分隔不同的变量。