如何解决将所有单词放在变量/数据框中,并计算单词在 R 中的 twitter 数据框中出现的次数 更新数据
所以我有 10k 条推文,我希望能够将我想要查找的所有单词放在一个变量中,并计算这些单词在所有推文中出现的次数。
我有这个,但我不想每次都复制和粘贴这两行,尤其是当我数到 50 个字时:
不是理想的代码:
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;
public class JSplitPaneRight {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new JSplitPaneRight();
});
}
public JSplitPaneRight() {
initComponents();
}
public void initComponents() {
JFrame frame = new JFrame("JSplitPane Right");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(createSplitPane(),BorderLayout.CENTER);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private JSplitPane createSplitPane( ) {
JSplitPane splitpane = new JSplitPane();
splitpane.setPreferredSize(new Dimension(640,480));
int width = splitpane.getPreferredSize().width;
System.out.println(width); // prints 0
splitpane.setDividerLocation(width - 120);
return splitpane;
}
}
请帮我制作一个,我可以将所有单词放在一个框架中。
预期输出:
coffee <- grepl("coffee",tweetsDF$text,ignore.case=TRUE)
sum(coffee) / nrow(text)
mug <- grepl("mug",ignore.case=TRUE)
sum(mug) / nrow(text)
解决方法
我们可以使用 lapply
来做到这一点
out <- stack(lapply(setNames(words,words),function(x)
mean(grepl(x,tweetsDF$text,ignore.case = TRUE))))[2:1]
names(out) <- c("words","perc")
-输出
out
# words perc
#1 coffee 0.4
#2 mug 0.6
更新
如果要检查的单词是基于文件名读取文件的,则通过循环遍历lapply
中的文件名,将输出存储在list
('lst1')中,然后得到sum
来自 grepl
的逻辑向量,它与 'text' 列中的相应文件名相匹配,stack
将其files <- c("coffee.csv","mug.csv")
words <- tools::file_path_sans_ext(files)
lst1 <- lapply(files,read.csv)
out_lst <- Map(function(x,y) sum(grepl(y,x$text,ignore.case = TRUE)),lst1,words)
names(out_lst) <- words
out <- stack(out_lst)
匹配到一个两列的 data.frame
words <- c("coffee","mug")
tweetsDF <- data.frame(text = c("mug shot","mug2","coffee pot","mug3","coffee stand"))
数据
{{1}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。