как создать новые переменные из одной переменной - PullRequest
0 голосов
/ 01 февраля 2019

Буду признателен за любую помощь в создании новых переменных из одной переменной в моем фактическом наборе данных, которую можно загрузить здесь .

Учитывая данные этого примера:

dT<-structure(list(A = c("a1", "a2", "a1", "a1", "a2", "a1", "a1", 
    "a2", "a1"), B = c("b2", "b2", "b2", "b1", "b2", "b2", "b1", 
    "b2", "b1"), ID = c("3", "4", "3", "1", "4", "3", "1", "4", "1"
    ), E = c(0.621142094943352, 0.742109450696123, 0.39439152996948, 
    0.40694392882818, 0.779607277916503, 0.550579323666347, 0.352622183880119, 
    0.690660491345867, 0.23378944873769)), class = c("data.table", 
    "data.frame"), row.names = c(NA, -9L))

этот код работает для создания нескольких переменных из переменной E как ожидаемое :

library(data.table)
dcast(dT, A + B + ID ~ paste0("E", rowid(ID)))
#   A  B ID        E1        E2        E3
#1 a1 b1  1 0.4069439 0.3526222 0.2337894
#2 a1 b2  3 0.6211421 0.3943915 0.5505793
#3 a2 b2  4 0.7421095 0.7796073 0.6906605

Однако, когда я применяю тот же кодк большему набору данных - доступно здесь , которое является фактическими данными, к которым я хочу применить операцию, data.table не дает ожидаемого результата, как показано ниже (и доступно здесь ) - это неверный вывод:

library(readr)
mydata <- read_csv("mydata.csv")  
library(data.table)
myDT<-dcast(mydata, A + B + ID ~ paste0("E", rowid(ID)))
View(myDT) 

enter image description here

Я хочу получить этот вывод ( неправильный вывод ) из большего набора данных, структурированный как вывод, который я получаю, когда использую меньший набор данных ( правильный вывод ).

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

Заранее спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...