Как рассчитать общий балл и подклассы анкеты путем суммирования всех и выбора столбцов в R? - PullRequest
0 голосов
/ 26 мая 2019

Я новичок в R и у меня небольшая проблема.Я надеюсь, что некоторые из вас могут помочь мне!

У меня есть data.frame, включающий ответы на одну анкету.

В строках указаны участники.
В первых столбцах указан идентификатор участника.
В следующих столбцах содержатся ответы на каждый элемент вопросника (item.1 до item.20).

Мне нужно создать два новых вектора:

  1. total.score <- сумма всех 20 значений для каждого участника </li>
  2. subscore <- сумма некоторых элементов </li>

Я хотел бы использовать функцию, например sum(A:T) в Excel.

Просто подведу итог, я 'Я использую R, а не другое программное обеспечение.

Я уже сделал это, суммируя каждый вектор только с символом +

(данные $ item.1 + данные $ item.2 + данные $ item.3 и т. Д.)

но это медленный способ сделать это.

Ответы варьируются от 0 до 3 для каждого элемента, поэтому я ожидаю, что общий балл варьируется от 0 до 60.

Заранее спасибо !!

1 Ответ

0 голосов
/ 03 июня 2019

Давайте использовать в качестве примера эти данные национального опроса с анкетой

Если вы загрузите файл .csv в свой рабочий каталог

data <- read.csv("2016-SpanishSurveyBreastfeedingKnowledge-AELAMA.csv", sep = "\t")

Имена элементовp01, p02, p03 ... Представьте, что вы хотите подытог первых пяти вопросов (от p01 до p05)

Вы можете дать имя группе:

FirstFive <- c("p01", "p02", "p03", "p04", "p05")

Я думаю, что это стоит того, потому что, вероятно, вы захотите выполнить больше задач с этой группой (анализ, добавить или удалить вопрос из группы ...), а также потому, что это поможет вам предоставить значимые имена (дляЭкземпляр «знание», «отношение» ...)

А затем создайте переменную промежуточного итога:

data$subtotal1 <- rowSums(data[ , FirstFive])

Вы можете проверить, что новая переменная является суммой

head(data[ , c(FirstFive, "subtotal2")])

(обратите внимание, что FirstFive не заключено в кавычки, потому что это объект вне данных, но subtotal2 заключено в кавычки, потому что это имя переменной в данных)

Вы можете вычислить больше промежуточных итогови использовать их для вычисления общего балла


Вы могли бы бСохраните несколько нажатий клавиш, если вы знаете, что эти переменные являются столбцами с 20 по 24:

names(data)[20:24]

, а затем сложите их как

rowSums(data[ , c(20:24)])

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

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