我想遍历数据帧,如果 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?
如何得到这个?以及如何获得每种语言的计数,有多少是英语,印度尼西亚语和苏格兰语?
我假设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)
希望有帮助。
另一种基本R方法是使用subset
。
new_df <- subset(merged_Df, language %in% c("english", "indonesian", "scots"))
然后计算结果中每种语言的出现次数
table(new_df$language)
已经列出的选项有效,但这是另一个选项:
library(dplyr)
new_df <- merged_Df %>% filter(language %in% c("english", "indonesian", "scots"))
counts <- new_df %>% group_by(language) %>% 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())