2016-10-10 3 views
0

У меня 3 вектора: MRI, MRI_high, MRI_low. При этом _low и _high составляют половину длины первого. Моя цель состоит в том, чтобы поместить их в один и тот же элемент, чтобы я мог выполнять итерации (у меня есть куча векторов в том же формате)R data.frame описание результатов

Когда я писал: data.entry(MRI, MRI_high, MRI_low) Окно появилось с моими данными, расположенными в столбцах и правильными длина, проблема, я не могу это использовать. Когда я использовал MRI_vector <- data.frame(MRI, MRI_high, MRI_low) Функция как-то дала мне 3 элемента равной длины, дублируя более короткие списки.

Что такое решение? И нужны ли кадры данных одинаковой длины для своих элементов?

Кроме того, я попытался с помощью списков, однако мои значения тогда не числовая

+1

Dataframe - это таблица, и обычно в таблице каждый столбец имеет одинаковое количество строк - так что да, вам нужна равная длина. –

ответ

0

Один из вариантов будет разместить их в list и площадку с НС, чтобы сделать length s равны перед преобразованием в «data.frame»

lst <- mget(ls(pattern = "MRI.*")) 
df1 <- data.frame(lapply(lst, `length<-`, max(lengths(lst)))) 
+0

Я смущен. Как мне добавить NA, если вычислять корреляции, например, NA игнорируется? – rannoudanames

+0

@rannoudanames Я не уверен, что вы имели в виду. Вышеупомянутое решение создает «data.frame» путем заполнения NA для вектора, который имеет меньшее количество элементов, чтобы сохранить длину равной. – akrun

0

Я нашел решение моей проблемы:

я использовал этот список, однако, при вычислении статистики я использовал as.numeric(unlist()), которая все еще позволяет мне итерацию.

Хотя любые дальнейшие комментарии по этому поводу мне ценят, чтобы понять это странное поведение в области данных!