Как отфильтровать два отдельных файла CSV и вернуть вывод? - PullRequest
0 голосов
/ 14 июня 2019

Итак, я очень плохо знаком с R. Так что, может быть, это глупый вопрос. У меня есть задание, которое мне нужно сделать. Идея в том, что у меня есть два csv файла, то есть материалы и кандидаты. Первая - это сумма пожертвований, внесенных кандидату, а вторая - информация о кандидате, включая партию.

Моя задача - отфильтровать только Кандидатов, чья партия обозначена буквой "R", а затем найти среднее количество пожертвований, внесенных в "R".

Я думал об использовании пакета dplyr для этой задачи.

Первая идея, которая у меня возникла, состояла в том, чтобы разделить это на два, то есть захватить кандидатов, партия которых обозначена буквой "R", и сохранить их в кадре данных. Я обнаружил ошибку, хотя

нет применимого метода для 'select_', примененного к объекту класса "c ('mts', 'ts')"

df_donations <- select(filter(dataread_candidates,dataread_candidates$party  =="R"))
dataread_candidates <- read.csv("candidates.csv", header = TRUE)
dataread_contributions <- read.csv("contributions.csv", header = TRUE)

Есть ли способ, которым я могу сделать это в одной строке, или мне нужно разделить это, как я изначально думал делать?

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Это то, что вы ищете?

Donations <- fread("CANDIDATE_NAME  DONATIONS
Trump   100
Sanders 1000
Hillary 890
Lincoln 1500
Bush    600")



Candidates <- fread("CANDIDATE_NAME PARTY
Trump   R
Sanders D
Hillary D
Lincoln R
Bush    R")


Donations %>% inner_join(Candidates, by = "CANDIDATE_NAME") %>%
group_by(PARTY) %>% summarise(AverageDonations = mean(DONATIONS)) %>% filter(PARTY == "R")

 PARTY AverageDonations
  <chr>            <dbl>
1 R                 733.
0 голосов
/ 14 июня 2019

Это будет действительно общий пример без примера структуры ваших данных.Если вы используете пакет data.table, вы можете следовать приведенной ниже концепции и иметь возможность использовать fread() вместо read.csv() (помогает, если у вас более 10 000 доноров).

Концепция кода

dt[ , mean(`Donation`, na.rm = TRUE), by = `party`] 

Если вы предоставите пример набора данных , мы поможем вам лучше.С data.table возможно слияние в одной строке.

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