2016-12-05 2 views
0

У меня есть некоторые данные, которые я хочу внести в R, но я не уверен в том, как создать мои переменные. В основном, мои переменные следующим образом:импортировать данные в r с некоторыми переменными в виде списка/векторов

ItemName: "c34" 
    Item Height: 170 
    ItemX = list(0, 1, 2, 3, 5) 
    ItemY = list(50, 30, 20, 10, 5) 
    (...) 
    ItemName: "c36" 
    Item Height: 180 
    ItemX = list(0, 1, 2, 3, 5, 8) 
    ItemY = list(55.2, 30.1, 20, 10, 5, 0.1) 

Если не для двух переменных, что список переменной длины, я просто иметь решение с dataframe, который имеет названия столбцов:

["ItemName", "ItemHeight", "ItemX", "ItemY"] 

Теперь, «ItemX» и «ItemY» - это списки/векторы переменной длины, что лучший способ импортировать их в R, чтобы я мог делать простые вещи, например, для построения ItemY или ItemX для каждого элемента или для регрессии ItemY ~ ItemX?

Благодаря

GT

+0

На что мы смотрим? Часть вашего файла? –

+0

@Rich Scriven, да, это часть файла, который я хочу проанализировать в R. Я добавил ключевое слово «list» только для указания, но значения фактически хранятся в файле как отдельные значения coma. – user1301295

+0

Возможно, вы захотите предоставить образец файла, и люди могут быть более полезными в отношении точных способов импорта. –

ответ

0

Может быть, я бы попытаться прочитать ItemX и ItemY как строки в data.frame df, а затем оценить каждый элемент:

df[, c("ItemX", "ItemY")] <- as.data.frame(apply(df[, c("ItemX", "ItemY")], 
               1:2, 
               function(x) eval(parse(text = x)))) 

ли, если не знаете это будет работать, если у вас есть разные длины списков для каждого предмета ...

Надеюсь, это поможет!

+0

Я работаю над попыткой опубликовать здесь позже. благодаря – user1301295

1

Вы можете попытаться просмотреть ваши данные под другим углом и использовать пакет tidyr и подход. Вот статья из R-Studio, которая объясняет подход более подробно: R-Studio: Introducing Tidyr

Ваш формат данных будет кадр данных, которые будут выглядеть следующим образом:

ItemName ItemHeight ItemX ItemY 
"c34"  170   0  50 
"c34"  170   1  30 

Повторяя столбцы ITEMNAME и ItemHeight и добавив новую строку для каждой пары x, y, вы можете иметь все свои данные и не зависеть от данных с разными номерами x, y пар.