Как получить количество каждого значения в столбце? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть большой набор данных с гораздо большим количеством столбцов, чем этот, но я упрощу его для целей этого вопроса.

Этническая принадлежность |QuestionID |ResponseID

Я хотел бы использовать R, чтобы найти количество ответов для конкретного вопроса для определенной этнической принадлежности.Т.е. этническая принадлежность == "азиатская", QuestionID == 10, ResponseID == 2

Как бы я поступил так?

Я пытался использовать библиотеку plyr со следующим кодом:

library(plyr)

visData <- read.csv(file="/Users/gtye/Documents/Big Data/Medicare_claims___Vision_and_Eye_Health_Surveillance.csv"), header=TRUE, sep=",")

count(visData, c("RaceEthnicityID", "QuestionID", "ResponseID"))

Но все, что я получаю, это то, чего я не хочу.

enter image description here

До того, как ты меня обожжешьЯ часами оглядывался по сторонам, и я слишком большой нуб, чтобы знать, что вообще искать.Просьба помочь: (

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

Примерно так должно работать:

library(tidyverse)

visData <- visData %>%
  group_by(raceEthnicityID, QuestionID, ResponseID) %>%
  summarize(response_count = n())
0 голосов
/ 26 сентября 2019

Здесь я возьму кадр данных "mtcars", например, так как вы не предоставили данные:

Предположим, для mtcars мне нравится считать строки, где cyl равен 4, а mpg меньше 25.

df = mtcars   
nrow(df[which(df$cyl == 4 & df$mpg< 25), ])
# [1] 5
0 голосов
/ 26 сентября 2019

Я думаю, что это поможет вам и должно работать без ошибок

require(dplyr) ## Same as library

visData_subset <- visData %>% 
                    group_by(raceEthnicityID, QuestionID, ResponseID) %>% 
                    filter(raceEthnicityID=="Asian", QuestionID==10, 
                           ResponseID == 2) %>% 
                    summarize(response_count = n())
...