首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一组字符串生成数据帧

从一组字符串生成数据帧
EN

Stack Overflow用户
提问于 2014-08-01 08:59:36
回答 2查看 98关注 0票数 0

我在文件中有一组字符串,如下所示:

  • 三星液晶TV40 B450
  • 小型14英寸WEGASONIC电视
  • SOINY液晶TV22 T400A
  • 索尼BRAVIA TV32 T550
  • 索尼BRAVIA TV40 S530
  • 索尼BRAVIA TV40 S530
  • 索尼BRAVIA TV42 S530A
  • 索尼BRVIA TV32 S550A
  • 索尼液晶TV19 T400A
  • 索尼液晶TV22 BX300
  • 索尼液晶TV22 T400A
  • 索尼液晶TV22 T400A
  • 索尼液晶TV22 T550
  • 索尼液晶TV26 BX300
  • 索尼液晶TV32 BX300
  • 索尼液晶TVV19 BX300
  • 2103 P星电视21型
  • TELESTAR 141486彩电
  • 电视14 1486
  • 电视14 1486

我需要将这些字符串转换为数据框架,其中上面列表中的每个惟一单词都会变成列名。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2014-08-01 09:43:48

假设你的字符串是在一个向量中组织的,并且你实际上想为每个唯一的单词建立一个列,你可以这样做。

代码语言:javascript
复制
strVec <- c("SONY BRAVIA TV32 T550","SONY BRAVIA TV40 S530","SONY BRAVIA TV40 S530","SONY BRAVIA TV42 S530A") 
words <- sapply(strVec,FUN=function(x) strsplit(x," ")) #split strings at " "
uniqueWords <- unique(unlist(words)) # get the unique words
mydf <- data.frame(matrix(nrow=0,ncol=length(uniqueWords))) # create new df
colnames(mydf) <- uniqueWords # give it the right colnames
票数 1
EN

Stack Overflow用户

发布于 2014-08-01 14:08:32

不完全确定你想要什么。此外,您还有SOINYSONYTVnumber之间的空格。希望您的实际数据集中不是这种情况。

代码语言:javascript
复制
Lines <- readLines(n=20)
SAMSUNG LCD TV40 B450
SMALL 14 INCH WEGASONIC TVS
SONY LCD TV22 T400A
SONY BRAVIA TV32 T550
SONY BRAVIA TV40 S530
SONY BRAVIA TV40 S530
SONY BRAVIA TV42 S530A
SONY BRVIA TV32 S550A
SONY LCD TV19 T400A
SONY LCD TV22 BX300
SONY LCD TV22 T400A
SONY LCD TV22 T400A
SONY LCD TV22 T550
SONY LCD TV26 BX300
SONY LCD TV32 BX300
SONY LCD TVV19 BX300
STAR TV 21 MODEL 2103P
TELESTAR 14 1486 COLOUR TV
TELESTAR TV 14 1486
TELESTAR TV 14 1486

library(stringr) 
Lines <- str_trim(Lines) #removes trailing and leading spaces
Un <- unique(scan(text=Lines, what="")) #extractunique words

res <- sapply(Un, function(.pat) grepl(.pat, Lines)) +0

 res[1:3,1:3]
 #      SAMSUNG LCD TV40
 #[1,]       1   1    1
 #[2,]       0   0    0
 #[3,]       0   1    0

 as.data.frame(res) #converts to dataframe.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25076508

复制
相关文章

相似问题

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