#r #list #dataframe #subset
Вопрос:
Мне интересно, как разделить свою игрушку data
ниже, чтобы я получил список меньших данных.в каждом из которых содержится уникальная пара group
в нем?
Мой desired_output
показан ниже. Возможно ли такое подмножество в R
?
Поскольку это игрушка data
, я высоко ценю функциональный ответ, в котором названия столбцов или их номера могут отличаться от этой игрушки data
.
m= " y group time outcome 7 a 1 A 3 a 0 B 6 a 1 B 5 b 0 A 9 b 1 A 4 b 0 B" data lt;- read.table(text = m, h=T) desired_output lt;- list( data.frame(y = 5 , group = "b" , time = 0 , outcome = "A" ), data.frame(y = c(7,9), group = c("a","b"), time = c(1,1), outcome = c("A","A")), data.frame(y = c(3,4), group = c("a","b"), time = c(0,0), outcome = c("A","A")), data.frame(y = 6 , group = "a" , time = 1 , outcome = "B")) [[1]] y group time outcome 1 5 b 0 A [[2]] y group time outcome 1 7 a 1 A 2 9 b 1 A [[3]] y group time outcome 1 3 a 0 A 2 4 b 0 A [[4]] y group time outcome 1 6 a 1 B
Комментарии:
1. Что вы имеете в виду под уникальной парой групп? Перестановка или комбинация? Для меня ваш список[2] и список[3] имеют одинаковое групповое сопряжение, поэтому неясно, в чем разница. Также в списке[1] и списке[4] даже нет «пары» групп …?
2. @tjebo, если вы посмотрите на мой
desired_output
, вы увидите, что все возможныеgroup
значения всегда сопоставляются , например,list[[2]]
иlist[[3]]
, в то время как другие переменные (в этой игрушкеdata
outcome
иtime
) остаются для них одинаковыми. Когдаgroup
значения не могут быть сопоставлены (как вlist[[1]]
иlist[[4]]
), данные возвращаются нетронутыми.
Ответ №1:
Предполагая, что вопрос заключается в том, чтобы разделить входные данные на строки, у которых одинаковое время и результат, мы можем использовать split
следующее. Никакие пакеты не используются.
split(data, data[3:4])
дающий:
#r #list #dataframe #subset
Вопрос:
Мне интересно, как разделить свою игрушкуdata
ниже, чтобы я получил список меньших данных.в каждом из которых содержится уникальная параgroup
в нем? Мойdesired_output
показан ниже. Возможно ли такое подмножество вR
? Поскольку это игрушкаdata
, я высоко ценю функциональный ответ, в котором названия столбцов или их номера могут отличаться от этой игрушкиdata
.m= " y group time outcome 7 a 1 A 3 a 0 B 6 a 1 B 5 b 0 A 9 b 1 A 4 b 0 B" data lt;- read.table(text = m, h=T) desired_output lt;- list( data.frame(y = 5 , group = "b" , time = 0 , outcome = "A" ), data.frame(y = c(7,9), group = c("a","b"), time = c(1,1), outcome = c("A","A")), data.frame(y = c(3,4), group = c("a","b"), time = c(0,0), outcome = c("A","A")), data.frame(y = 6 , group = "a" , time = 1 , outcome = "B")) [[1]] y group time outcome 1 5 b 0 A [[2]] y group time outcome 1 7 a 1 A 2 9 b 1 A [[3]] y group time outcome 1 3 a 0 A 2 4 b 0 A [[4]] y group time outcome 1 6 a 1 B
Комментарии:
1. Что вы имеете в виду под уникальной парой групп? Перестановка или комбинация? Для меня ваш список[2] и список[3] имеют одинаковое групповое сопряжение, поэтому неясно, в чем разница. Также в списке[1] и списке[4] даже нет "пары" групп ...?
2. @tjebo, если вы посмотрите на мой
desired_output
, вы увидите, что все возможныеgroup
значения всегда сопоставляются , например,list[[2]]
иlist[[3]]
, в то время как другие переменные (в этой игрушкеdata
outcome
иtime
) остаются для них одинаковыми. Когдаgroup
значения не могут быть сопоставлены (как вlist[[1]]
иlist[[4]]
), данные возвращаются нетронутыми.Ответ №1:
Предполагая, что вопрос заключается в том, чтобы разделить входные данные на строки, у которых одинаковое время и результат, мы можем использовать
split
следующее. Никакие пакеты не используются.split(data, data[3:4])
дающий:
0.A` y group time outcome 4 5 b 0 A
#r #list #dataframe #subset
Вопрос:
Мне интересно, как разделить свою игрушку
data
ниже, чтобы я получил список меньших данных.в каждом из которых содержится уникальная параgroup
в нем?Мой
desired_output
показан ниже. Возможно ли такое подмножество вR
?Поскольку это игрушка
data
, я высоко ценю функциональный ответ, в котором названия столбцов или их номера могут отличаться от этой игрушкиdata
.m= " y group time outcome 7 a 1 A 3 a 0 B 6 a 1 B 5 b 0 A 9 b 1 A 4 b 0 B" data lt;- read.table(text = m, h=T) desired_output lt;- list( data.frame(y = 5 , group = "b" , time = 0 , outcome = "A" ), data.frame(y = c(7,9), group = c("a","b"), time = c(1,1), outcome = c("A","A")), data.frame(y = c(3,4), group = c("a","b"), time = c(0,0), outcome = c("A","A")), data.frame(y = 6 , group = "a" , time = 1 , outcome = "B")) [[1]] y group time outcome 1 5 b 0 A [[2]] y group time outcome 1 7 a 1 A 2 9 b 1 A [[3]] y group time outcome 1 3 a 0 A 2 4 b 0 A [[4]] y group time outcome 1 6 a 1 B
Комментарии:
1. Что вы имеете в виду под уникальной парой групп? Перестановка или комбинация? Для меня ваш список[2] и список[3] имеют одинаковое групповое сопряжение, поэтому неясно, в чем разница. Также в списке[1] и списке[4] даже нет "пары" групп ...?
2. @tjebo, если вы посмотрите на мой
desired_output
, вы увидите, что все возможныеgroup
значения всегда сопоставляются , например,list[[2]]
иlist[[3]]
, в то время как другие переменные (в этой игрушкеdata
outcome
иtime
) остаются для них одинаковыми. Когдаgroup
значения не могут быть сопоставлены (как вlist[[1]]
иlist[[4]]
), данные возвращаются нетронутыми.Ответ №1:
Предполагая, что вопрос заключается в том, чтобы разделить входные данные на строки, у которых одинаковое время и результат, мы можем использовать
split
следующее. Никакие пакеты не используются.split(data, data[3:4])
дающий:
1.A` y group time outcome 1 7 a 1 A 5 9 b 1 A
#r #list #dataframe #subset
Вопрос:
Мне интересно, как разделить свою игрушку
data
ниже, чтобы я получил список меньших данных.в каждом из которых содержится уникальная параgroup
в нем?Мой
desired_output
показан ниже. Возможно ли такое подмножество вR
?Поскольку это игрушка
data
, я высоко ценю функциональный ответ, в котором названия столбцов или их номера могут отличаться от этой игрушкиdata
.m= " y group time outcome 7 a 1 A 3 a 0 B 6 a 1 B 5 b 0 A 9 b 1 A 4 b 0 B" data lt;- read.table(text = m, h=T) desired_output lt;- list( data.frame(y = 5 , group = "b" , time = 0 , outcome = "A" ), data.frame(y = c(7,9), group = c("a","b"), time = c(1,1), outcome = c("A","A")), data.frame(y = c(3,4), group = c("a","b"), time = c(0,0), outcome = c("A","A")), data.frame(y = 6 , group = "a" , time = 1 , outcome = "B")) [[1]] y group time outcome 1 5 b 0 A [[2]] y group time outcome 1 7 a 1 A 2 9 b 1 A [[3]] y group time outcome 1 3 a 0 A 2 4 b 0 A [[4]] y group time outcome 1 6 a 1 B
Комментарии:
1. Что вы имеете в виду под уникальной парой групп? Перестановка или комбинация? Для меня ваш список[2] и список[3] имеют одинаковое групповое сопряжение, поэтому неясно, в чем разница. Также в списке[1] и списке[4] даже нет "пары" групп ...?
2. @tjebo, если вы посмотрите на мой
desired_output
, вы увидите, что все возможныеgroup
значения всегда сопоставляются , например,list[[2]]
иlist[[3]]
, в то время как другие переменные (в этой игрушкеdata
outcome
иtime
) остаются для них одинаковыми. Когдаgroup
значения не могут быть сопоставлены (как вlist[[1]]
иlist[[4]]
), данные возвращаются нетронутыми.Ответ №1:
Предполагая, что вопрос заключается в том, чтобы разделить входные данные на строки, у которых одинаковое время и результат, мы можем использовать
split
следующее. Никакие пакеты не используются.split(data, data[3:4])
дающий:
0.B` y group time outcome 2 3 a 0 B 6 4 b 0 B
#r #list #dataframe #subset
Вопрос:
Мне интересно, как разделить свою игрушку
data
ниже, чтобы я получил список меньших данных.в каждом из которых содержится уникальная параgroup
в нем?Мой
desired_output
показан ниже. Возможно ли такое подмножество вR
?Поскольку это игрушка
data
, я высоко ценю функциональный ответ, в котором названия столбцов или их номера могут отличаться от этой игрушкиdata
.m= " y group time outcome 7 a 1 A 3 a 0 B 6 a 1 B 5 b 0 A 9 b 1 A 4 b 0 B" data lt;- read.table(text = m, h=T) desired_output lt;- list( data.frame(y = 5 , group = "b" , time = 0 , outcome = "A" ), data.frame(y = c(7,9), group = c("a","b"), time = c(1,1), outcome = c("A","A")), data.frame(y = c(3,4), group = c("a","b"), time = c(0,0), outcome = c("A","A")), data.frame(y = 6 , group = "a" , time = 1 , outcome = "B")) [[1]] y group time outcome 1 5 b 0 A [[2]] y group time outcome 1 7 a 1 A 2 9 b 1 A [[3]] y group time outcome 1 3 a 0 A 2 4 b 0 A [[4]] y group time outcome 1 6 a 1 B
Комментарии:
1. Что вы имеете в виду под уникальной парой групп? Перестановка или комбинация? Для меня ваш список[2] и список[3] имеют одинаковое групповое сопряжение, поэтому неясно, в чем разница. Также в списке[1] и списке[4] даже нет "пары" групп ...?
2. @tjebo, если вы посмотрите на мой
desired_output
, вы увидите, что все возможныеgroup
значения всегда сопоставляются , например,list[[2]]
иlist[[3]]
, в то время как другие переменные (в этой игрушкеdata
outcome
иtime
) остаются для них одинаковыми. Когдаgroup
значения не могут быть сопоставлены (как вlist[[1]]
иlist[[4]]
), данные возвращаются нетронутыми.Ответ №1:
Предполагая, что вопрос заключается в том, чтобы разделить входные данные на строки, у которых одинаковое время и результат, мы можем использовать
split
следующее. Никакие пакеты не используются.split(data, data[3:4])
дающий:
1.B` y group time outcome 3 6 a 1 B