Зацикливайтесь на dataframe и, если я получаю желаемое значение, извлекаем строку в новый dataframe - PullRequest
0 голосов
/ 24 июня 2018

Я хочу пройтись по циклу данных, и если язык merged_Df $ равен английскому, индонезийскому и scots, я хочу извлечь эти строки из блока данных и поместить его в другой новый кадр данных. Фрейм данных выглядит следующим образом:

   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 &amp; 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?

Как это получить? и как подсчитать для каждого языка сколько это английского, индонезийского и шотландского?

Ответы [ 3 ]

0 голосов
/ 24 июня 2018

Другой базовый способ R - использовать subset.

new_df <- subset(merged_Df, language %in% c("english", "indonesian", "scots"))

А затем подсчитайте вхождения каждого языка в результате с помощью

table(new_df$language)
0 голосов
/ 24 июня 2018

Опции, перечисленные выше, работают, но здесь есть еще один вариант:

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())
0 голосов
/ 24 июня 2018

Я предполагаю, что столбец 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)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...