我怎样才能让我的代码在 R 中更有效率——这是重复的
How can I make my code more efficient in R - It's to repetitive
我对我的代码效率有疑问。我的环境中有 9 个数据框,我需要为每个数据框执行相同的步骤。步骤和代码是(仅显示两个数据框):
CDL <- aggregate(A$Frequency, by=list(Category=A$Words), FUN=sum)
wordcloud(words = CDL$Category, freq = CDL$x, min.freq = 2,
max.words=250, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(6, "Dark2"))
Ltd <- aggregate(B$Frequency, by=list(Category=B$Words), FUN=sum)
wordcloud(words = Ltd$Category, freq = Ltd$x, min.freq = 2,
max.words=250, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(6, "Dark2"))
我首先聚合所有相同的词,对它们的频率求和,然后根据聚合结果创建一个世界云。
环境中的对象名称从 'A' 开始一直到 'I'。变量 'Frequency' 只是一个数字,变量 'Words' 包含单词列表。
对于词云:
变量 'Category' 包含取自 'Words' 变量的唯一词,'x' 是取自 'Frequency'
的频率总和
有什么方法可以在不重复我的代码的情况下执行相同的操作吗?谢谢
如果我没记错的话,定义一个函数并循环应该可以!
word_cloud <- function(df) {
temp <- aggregate(df[,"Frequency"], by=list(Category=df[,"Words"]), FUN=sum)
result <- wordcloud(words = temp[,"Category"],
freq = temp[,"x"],
min.freq = 2,
max.words=250,
random.order=FALSE,
rot.per=0.35,
colors=brewer.pal(6, "Dark2"))
return(result)
}
input_list <- list(A,B,C,D,E,F,G,H,I)
for (df_inp in input_list) {
word_cloud(df_inp)
}
我不知道wordcloud()的输出模式,所以你可能想将结果保存到列表或绘图!希望对您有所帮助!
我对我的代码效率有疑问。我的环境中有 9 个数据框,我需要为每个数据框执行相同的步骤。步骤和代码是(仅显示两个数据框):
CDL <- aggregate(A$Frequency, by=list(Category=A$Words), FUN=sum)
wordcloud(words = CDL$Category, freq = CDL$x, min.freq = 2,
max.words=250, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(6, "Dark2"))
Ltd <- aggregate(B$Frequency, by=list(Category=B$Words), FUN=sum)
wordcloud(words = Ltd$Category, freq = Ltd$x, min.freq = 2,
max.words=250, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(6, "Dark2"))
我首先聚合所有相同的词,对它们的频率求和,然后根据聚合结果创建一个世界云。
环境中的对象名称从 'A' 开始一直到 'I'。变量 'Frequency' 只是一个数字,变量 'Words' 包含单词列表。
对于词云: 变量 'Category' 包含取自 'Words' 变量的唯一词,'x' 是取自 'Frequency'
的频率总和有什么方法可以在不重复我的代码的情况下执行相同的操作吗?谢谢
如果我没记错的话,定义一个函数并循环应该可以!
word_cloud <- function(df) {
temp <- aggregate(df[,"Frequency"], by=list(Category=df[,"Words"]), FUN=sum)
result <- wordcloud(words = temp[,"Category"],
freq = temp[,"x"],
min.freq = 2,
max.words=250,
random.order=FALSE,
rot.per=0.35,
colors=brewer.pal(6, "Dark2"))
return(result)
}
input_list <- list(A,B,C,D,E,F,G,H,I)
for (df_inp in input_list) {
word_cloud(df_inp)
}
我不知道wordcloud()的输出模式,所以你可能想将结果保存到列表或绘图!希望对您有所帮助!