【发布时间】:2020-06-20 16:07:44
【问题描述】:
我正在打印一个数据框,该数据框应列出任何简单文本文档中的单词、长度和频率。我已经设置了所有内容,但是 1) 长度不计算字符数,我不确定它实际计算的是什么; 2) 我需要将单词列表从最长的单词重新组织到最短的单词列表,以便最终打印出列表。
file <- c(scan("a.txt",character()))
file <- as.data.frame(table(file))
Freq <- file$Freq
Word <- file$file
Len <- sapply(c(Word),nchar)
一个平面a.txt 文件,包含以下内容:
the the the bus ran over two two people and when
打印
Word Len Freq
1 and 1 1
2 bus 1 1
3 over 1 1
4 people 1 1
5 ran 1 1
6 the 1 3
7 two 1 2
8 when 1 1
Len 应该是字母的长度,但在这里它总是计为 1 - 在更长的测试中,它有时会说 2,所以我不确定它算什么。在此之后,它会打印:
[1] and bus over people ran the two when
Levels: and bus over people ran the two when
我正在尝试按从最长到最短的顺序打印完整的单词。我应该可以使用Len 对单词进行排序,但我似乎无法让sapply 正常工作。
【问题讨论】:
-
您能否在问题中提供
dput(head(file)),仅提供前几行和预期答案。 -
单词是向量吗?如果是这样,您应该可以直接使用 nchar 。
标签: r