我想从数据集创建一个包含单词和单词频率的列表。我做到了,并保存在名为“mylist”的val中。现在我想根据单词的频率对列表进行排序,并从具有较高频率的10个单词中创建条形图。无法对列排序R
但我没有成功排序。我尝试了很多方法来将“mylist”的类型更改为data.frame或date.table,但仍保留列表的频率列。 为了总结我有包含它的DT var是一个有2列的列表x-包含字和类型是字符。 第2列是'v' - 包含频率,它是一个列表。 我没有成功按频率排序。 请帮助我。
library(ggplot2)
libary(MASS)
#get the data
data.uri = "http://www.crowdflower.com/wp-content/uploads/2016/03/gender-classifier-DFE-791531.csv"
pwd = getwd()
data.file.name = "gender.csv"
data.file = paste0(pwd, "./", data.file.name)
download.file(data.uri, data.file)
data = read.csv(data.file.name)
#manipulate the data
data <- data[data$X_unit_id < 815719694,]
print(data$X_unit_id)
#get all female has white sidebar
female_colors <- subset(data, data$gender=="female")
female_colors$fav_number
#get all male fav_numbers
male_colors <- subset(data, data$gender=="male")
male_colors$fav_number
text_male = subset(data, data$gender=="male")
text_male = text_male$text
print(text_male[1])
print(length(text_male))
v <- text_male[1:length(text_male)]
print(v)
print (v[1])
count_of_list = 0;
x = list()
for (i in v) {
# Merge the two lists.
x <- c(x,unlist(strsplit(i," ")))
}
count = 0;
mylist = list()
for (word in x){
for (xWord in x){
if (word == xWord)
count = count + 1;
}
key <- word
value <- count
mylist[[ key ]] <- value
count = 0;
}
libary(data.table)
require(data.table)
DT = data.table(x=c(names(mylist)),v=c(mylist))
DT
您能否提供一个最简单的例子,即只有数据集(例如dput())和您试图对其进行排序的代码?这太难以解决了。编辑:如果你需要一些帮助,[这里是一个很好的指导,做一个最小的,可重复的例子](http://stackoverflow.com/a/5963610/5805670)。 – Laterow