首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分隔符[::]分隔列在R中的MovieLens-1M数据中

分隔符[::]分隔列在R中的MovieLens-1M数据中
EN

Stack Overflow用户
提问于 2015-05-08 13:24:41
回答 2查看 663关注 0票数 0

我是R编程的新手,不幸的是,我不得不处理电影镜头-100万数据。在这里,我想问一下如何在分隔符::In movies.dat处拆分列。我已经尝试过这样的代码:

代码语言:javascript
复制
> moviesDF<-read.delim("movies.dat", sep="|", header=F, stringsAsFactors=FALSE)
> str(moviesDF)
'data.frame':   3998 obs. of  3 variables:
 $ V1: chr  "1::Toy Story (1995)::Animation" "2::Jumanji (1995)::Adventure" "3::Grumpier Old Men (1995)::Comedy" "4::Waiting to Exhale (1995)::Comedy" ...
 $ V2: chr  "Children's" "Children's" "Romance" "Drama" ...
 $ V3: chr  "Comedy" "Fantasy" "" "" ...

所需的输出如下:

代码语言:javascript
复制
V1: Movie ID
V2: Title
V3: Genre

另外,我的目标是提供推荐系统。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-08 13:40:55

您可以从我的"splitstackshape“包中尝试cSplit。使用情况如下:

代码语言:javascript
复制
library(splitstackshape)
cSplit(moviesDF, "V1", "::")
#            V2      V3 V1_1                     V1_2      V1_3
# 1: Children's  Comedy    1         Toy Story (1995) Animation
# 2: Children's Fantasy    2           Jumanji (1995) Adventure
# 3:    Romance            3  Grumpier Old Men (1995)    Comedy
# 4:      Drama            4 Waiting to Exhale (1995)    Comedy
票数 1
EN

Stack Overflow用户

发布于 2015-05-08 13:43:27

问题在于导入函数。read.delim(sep="|")没有正确读取数据集,因为|只在V3中分隔所需的不同值。您应该使用readLines导入数据集。

代码语言:javascript
复制
moviesDF <- readLines("movies.dat")
moviesDF <- as.data.frame(do.call("rbind",strsplit(moviesDF,"::")),stringsAsFactors = FALSE)
names(moviesDF) <- c("V1","V2","V3")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30124989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档