R - Excel CSV句子列表 - 到数组

时间:2017-05-01 03:59:23

标签: arrays r csv

我有一张excel表,已经转换为csv。它有5行句子,标题称为问题。如何将data.frame转换为数组,以便我可以使用我的数组进行lapply访问它。

目前我可以读取和创建矢量但不能将其作为数组访问它返回所有元素。

这怎么会变成阵列?

> loremData <- read.csv("lorem.csv")
> head(loremData)
                                               Questions
1 Lorem ipsum dolor sit amet, consectetur affectum elit.
2             Itaque contra est, ac dicitis consectetur;
3                Beatus sibi videtur esse moriens igitur
4                    naturam affectum esse possit Beatus
5         moriens consectetur. Quo igitur, inquit, modo?
> mydata <- c(loremData)
> head(mydata)
$Questions
[1] Lorem ipsum dolor sit amet, consectetur affectum elit.
[2] Itaque contra est, ac dicitis consectetur;            
[3] Beatus sibi videtur esse moriens igitur               
[4] naturam affectum esse possit Beatus                   
[5] moriens consectetur. Quo igitur, inquit, modo?        
5 Levels: Beatus sibi videtur esse moriens igitur ...

> mydata[1]
$Questions
[1] Lorem ipsum dolor sit amet, consectetur affectum elit.
[2] Itaque contra est, ac dicitis consectetur;            
[3] Beatus sibi videtur esse moriens igitur               
[4] naturam affectum esse possit Beatus                   
[5] moriens consectetur. Quo igitur, inquit, modo?        
5 Levels: Beatus sibi videtur esse moriens igitur ...

2 个答案:

答案 0 :(得分:1)

你有理由使用

mydata <- c(loremData)

如果不这样做,可以使用loremData数据帧并使用行号(如

)逐行读取
loremData[1,]

您可以像这样使用lapply访问它,例如

lapply(seq_along(loremData), function(x) print(loremData[1,][x]))

用于分割为单词(你需要在这里做更多的工作来摆脱逗号等特殊字符。)

a<-lapply(seq_along(loremData), function(x) strsplit(loremData[x],split='\\s+'))

您可以按

获取频次数
table(as.data.frame(a))

答案 1 :(得分:1)

要将每个单词放入矩阵,您可以使用str_split包中stringr之类的函数:

stringr::str_split(loremData$Questions, pattern = "\\s+", simplify = TRUE)

我无法保证这对大型数据集有效。您可能需要simplify = FALSE,以便不会得到与最长句子一样宽的矩阵。