我想遍历数据框,如果merged_Df $ language等于英语,印尼语和苏格兰语,我想提取这些数据框行并将其放入另一个新的数据框。数据框如下所示:
language text
1| english | 11 point agenda of #PTI for upcoming Election. 1-Education 2-Healthcare 3-Tax Reform 4-Corruption Control 5-Economy 6-Employment 7-Tourism 8-Agriculture 9-Federation & Provincial Reform 10-Justice 11-Women Empowerment -- Corrupt Gang #PMLn #MQM #ANP #MMA #JUIF #JI #PPP
2| indonesian | @Tadaporn_K <U+0E43><U+0E0A><U+0E48> 555555555 <U+0E41><U+0E15><U+0E48><U+0E15><U+0E2D><U+0E19><U+0E19><U+0E35><U+0E49><U+0E40><U+0E1B><U+0E48><U+0E32><U+0E40><U+0E1B><U+0E32><U+0E21><U+0E32><U+0E41><U+0E23><U+0E07><U+0E21><U+0E32><U+0E01> <U+0E41><U+0E0B
3| french | RT @runawaymau: jviens de revoir ça dans ma tl @louehxoioi jui mort
4| scots | RT @soloistkji: do they live together or?
5| spanish | @Jetzmmt La última vez no pude porque me jui al rancho <U+2639><U+FE0F><f0><U+009F><U+0098><U+0082>
所需的新数据框为:
language text
1| english | 11 point agenda of #PTI for upcoming Election. 1-Education 2-Healthcare 3-Tax Reform 4-Corruption Control 5-Economy 6-Employment 7-Tourism 8-Agriculture 9-Federation & Provincial Reform 10-Justice 11-Women Empowerment -- Corrupt Gang #PMLn #MQM #ANP #MMA #JUIF #JI #PPP
2| indonesian | @Tadaporn_K <U+0E43><U+0E0A><U+0E48> 555555555 <U+0E41><U+0E15><U+0E48><U+0E15><U+0E2D><U+0E19><U+0E19><U+0E35><U+0E49><U+0E40><U+0E1B><U+0E48><U+0E32><U+0E40><U+0E1B><U+0E32><U+0E21><U+0E32><U+0E41><U+0E23><U+0E07><U+0E21><U+0E32><U+0E01> <U+0E41><U+0E0B
4| scots | RT @soloistkji: do they live together or?
如何获得此?以及如何获得每种语言的计数,英语,印尼语和苏格兰语是多少?
答案 0 :(得分:2)
我认为language
列不是文本,而是一个因素。在这种情况下,有很多选择,但是最简单的恕我直言是使用以下代码:
new_df <- merged_Df[merged_Df$language %in% c("english", "indonesian", "scots"), ]
现在,您可以使用以下简单但乏味的代码进行计数了:
english_cnt <- sum(merged_Df$language == "english")
indonesian_cnt <- sum(merged_Df$language == "indonesian")
scots_cnt <- sum(merged_Df$language == "scots")
或者这个有点高级但更通用的
aggregate(x=new_df[, "language"], by=list(language = new_df$language), FUN=length)
希望有帮助。
答案 1 :(得分:1)
另一种基本的R方法是使用subset
。
new_df <- subset(merged_Df, language %in% c("english", "indonesian", "scots"))
然后使用
计算结果中每种语言的出现次数
table(new_df$language)
答案 2 :(得分:0)
已经列出的选项起作用了,但这是另一个选项:
library(dplyr)
new_df <- merged_Df %>% filter(language %in% c("english", "indonesian", "scots"))
counts <- new_df %>% group_by(language) %>% count()
这将使您成为一个具有过滤数据的新数据框,然后是每种语言出现次数的摘要表。
如果您希望count的名称不同于“ n”,则可以在rename
之后加上summarise
。
#option 1
counts <- new_df %>% group_by(language) %>% count() %>% rename(num_occur = n)
#option2
counts <- new_df %>% group_by(language) %>% summarise(num_occur = n())