cпривязать вектор разной длины к кадру данных

У меня есть кадр данных, состоящий из двух образцов. Только одна выборка ответила на вопросник о состоянии тревожности. Для этого случая я рассчитал вектор соматической тревожности с помощью следующей функции «rowSums»:

som_lp <- rowSums(sample1[,c(1, 7, 8, 10 )+108], na.rm = TRUE)

Теперь я хотел бы добавить это к моему существующему фрейму данных «данные», но функция «cbind» здесь не работает из-за разной длины (фрейм данных 88, som_lp 59).

data <- cbind(data, som_lp) 

Может ли кто-нибудь помочь мне, и есть ли другой вариант расчета «som_lp», чтобы избежать разной длины?


person C.Meadow    schedule 09.06.2016    source источник
comment
Как фрейм данных должен знать, к каким случаям относятся оценки тревоги? Один из способов сделать это явным — сначала выполнить data$som_lp <- NA (создание пустого столбца), а затем что-то вроде data$som_lp[ind] <- som_lp, где ind — ваш индексный вектор (скажем, ind <- 1:length(som_lp)). В противном случае задание будет неоднозначным.   -  person SimonG    schedule 09.06.2016


Ответы (1)


Мы можем использовать cbind.fill из rowr

library(rowr)
cbind.fill(data, som_lp, fill = NA)
person akrun    schedule 09.06.2016
comment
Большое спасибо! Это сработало. Но как рассчитать описательную статистику (среднее значение, стандартное отклонение, медиана и т. д.) для этого вектора? - person C.Meadow; 09.06.2016
comment
@C.Meadow Вы можете использовать summary(som_lp) - person akrun; 09.06.2016
comment
Просто будьте осторожны при использовании cbind.fill. Посмотрите, как он заполняет data.frame: sample1 <- data.frame((seq(10))); sample2 <- seq(7); cbind.fill(sample1,sample2). Я не думаю, что это то, как вы хотите, чтобы это работало. - person Therkel; 09.06.2016
comment
@Therkel Вы можете добавить опцию fill= NA - person akrun; 09.06.2016
comment
К сожалению, пакет rowr больше недоступен в CRAN. - person Alex W; 23.10.2020