Создать фрейм данных с отсутствующими данными - PullRequest
0 голосов
/ 19 сентября 2018

Я очень новичок в R, поэтому, пожалуйста, извините за мой потенциально нубский вопрос.

У меня есть данные от 23 человек о концентрациях гормонов, собираемых ежечасно - я интерполировал между ежечасными сборами, чтобы получить концентрации от 2,0 до 15 пг / мл с интервалами 0,1: это равняется 131 строке данных на человека.

Однако концентрации некоторых лиц не превышают 6,0 пг / мл (например), что означает, что у меня есть кадры данных с неодинаковым количеством строк в лицах.Мне нужно, чтобы у всех людей было 131 строка для следующего шага, где я объединяю все данные.

Я попытался создать фрейм данных NA с 131 строкой и двумя столбцами, а затем добавить интерполированные данные индивида в фрейм данных NA - так, чтобы конечным результатом были данные из 131 строки с отсутствующими данными какНет, но не все так хорошо.

interp_saliva_002_x <- as.tibble(matrix(, nrow = 131, ncol = 1))
interp_sequence <- as.numeric(seq(2,15,.1))
interp_saliva_002_x[1] <- interp_sequence
colnames(interp_saliva_002_x)[1] <- "saliva_conc"

test <- left_join(interp_saliva_002_x, interp_saliva_002, by "saliva_conc")

Можете ли вы помочь мне понять, где я иду не так или есть более логичный способ сделать это?

Спасибо!

1 Ответ

0 голосов
/ 19 сентября 2018

Предположим, у вас есть 3 вектора различной длины:

A<-seq(1,5); B<-seq(2,8); C<-seq(3,5)

Измените длину векторов на желаемую (в вашем случае это 131, я выбрал 7 для простоты):

length(A)<-7; length(B)<-7; length(C)<-7 #this replaces all the missing values to NA 

Далее вы можете привязать векторы к матрице:

 m <-cbind(A,B,C)
#      A B  C
#[1,]  1 2  3
#[2,]  2 3  4
#[3,]  3 4  5
#[4,]  4 5 NA
#[5,]  5 6 NA
#[6,] NA 7 NA
#[7,] NA 8 NA

Вы также можете изменить матрицу на фрейм данных:

df<-as.data.frame(m)    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...