У меня есть этот цикл для вычисления среднего значения для каждого столбца, который работает.
for (i in 1:length(DF1)) {
tempA <- DF1[i] # save column of DF1 onto temp variable
names(tempA) <- 'word' # label temp variable for inner_join function
DF2 <- inner_join(tempA, DF0, by='word') # match words with numeric value from look-up DF0
tempB <- as.data.frame(t(colMeans(DF2[-1]))) # compute mean of column
DF3<- rbind(tempB, DF3) # save results togther
}
Скрипт использует пакет dplyr для inner_join
.
- DF0 - это справочная база данных с 3 столбцами ( слово, значение1, значение2, значение3 ).
- DF 1 - это текстовые данные с одним словомза клетку.
- DF3 - это выход.
Теперь я хочу вычислить медиану вместо среднего.Это казалось достаточно простым с функцией colMedians из 'robustbase ', но я не могу заставить работать нижеприведенное.
library(robustbase)
for (i in 1:length(DF1)) {
tempA <- DF1[i]
names(tempA) <- 'word'
DF2 <- inner_join(tempA, DF0, by='word')
tempB <- as.data.frame(t(colMedians(DF2[-1])))
DF3<- rbind(tempB, DF3)
}
Сообщение об ошибке гласит:
Ошибка в colMedians (tog [-1]): аргумент 'x' должен быть матрицей.
Я пытался отформатировать DF2 как матрицу до функции colMedians, но все равно получаю сообщение об ошибке:
Ошибка в colMedians (tog [-1]): Аргумент 'x' долженбудь матрицей.
Я не понимаю, что здесь происходит.Спасибо за помощь!
Рад предоставить примеры данных и отслеживание ошибок, но стараюсь сделать их максимально четкими и простыми.