Я ищу более элегантный способ вычисления взвешенной оценки в 7 столбцов следующим образом.
Каждый столбец представляет оценку состояния (от 1 до 7), наблюдения представляют процентную долю, наблюдаемую при этой оценке (каждая строка должна составлять 1).
Взвешенная оценка - это просто сумма каждой переменной строки, умноженная на ее оценку состояния.
Создать набор данных:
rand.sum <- function(n) {
x <- sort(runif(n-1))
c(x,1) - c(0,x)
}
df <- t(replicate(10,rand.sum(7)))
colnames(df)<-c(1:7) # Change the column names to reflect condition value
df <- as.data.frame(df)
Создать столбец взвешенной оценки (по-моему ...):
df$weightedCondScore <- ((df[,1]) * 1) + ((df[,2]) * 2) +
((df[,3]) * 3) + ((df[,4]) * 4) +
((df[,5]) * 5) + ((df[,6]) * 6) +
((df[,7]) * 7)
Есть ли лучший способ вычислить взвешенную оценку, ссылаясь на имена столбцов (оценки) и функцию цикла? Набор данных содержит намного больше столбцов, и я не хочу исправлять нумерацию индекса в случае, если она изменяется при добавлении дополнительных переменных.