2016-06-25 7 views
0

Мои данные выглядят следующим образом: Столбец 1 - двоичная переменная, а столбец 2 - непрерывная переменная.Извлечь данные столбцов на основе других уровней столбцов в r

Col1 Col2 
0  21 
0  34 
1  36 
0  24 
1  96 
.  . 
.  . 
0  25 

И так далее. Я хочу, чтобы мой результат был в новом кадре данных, где столбец 1 соответствует двум новым столбцам («0» и «1») и соответствующим значениям столбца 2 ниже . Вот воспроизводимый пример:

set.seed(77) 
Col1 <- sample(c(0,1), 50, replace = TRUE) 
Col2 <- round(rnorm(50),2) 
dat <- data.frame(Col1, Col2) 

Таким образом, в основном мой вывод должен выглядеть следующим образом:

"0" "1" 
    21  36 
    34  96    
    24  .    
    .  . 
    .  . 
    25  
+1

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

+0

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

+0

Привет, я добавил свой вывод выше. Благодаря! –

ответ

0

Проведение t.test в R. Это лучше всего чтобы преобразовать вашу факторную переменную (0/1) в коэффициент перед запуском t.test. Функция предполагает, что каждая строка является отдельным человеком и относится к группе, указанной в Col1.

Col1 <- sample(c(0,1), 50, replace = TRUE) 
Col2 <- round(rnorm(50),2) 
dat <- data.frame(Col1, Col2) 

dat$Col1 <- factor(dat$Col1) 
t.test(Col2 ~ Col1, data = dat) 
+0

Спасибо @Twitch_City за руководство. Столбец 1 - это моя двоичная переменная (0-No Rain, 1- Rain) и Column 2 (количество проданных единиц) - непрерывная переменная. В принципе, я хочу найти корреляцию между двумя переменными. Предлагаете ли вы использовать два образца t-теста? –

+0

Вы путаете статистические тесты - на их базовом уровне корреляция заключается в том, чтобы найти связь между двумя переменными, t-тест - искать различия. Итак, если ваша гипотеза: количество расходов зависит от того, есть ли дождь или нет? Тогда t-тест подходит. Вы можете использовать это как корреляцию, но фразировка будет немного иной - по мере увеличения количества дождя, расходы также увеличиваются? Но так как одна из переменных двоична, это называется «точечной бисериальной корреляцией». –

+0

Спасибо, ты прав. Я должен был упомянуть о моей гипотезе в начале. Виноват. Еще раз спасибо за руководство! –

0

Попробуйте это:

dat <- data.frame("0" = data$Col2[data$Col1 == 0], 
        "1" = data$Col2[data$Col1 == 1]) 
head(dat) 
1
df <- data.frame(C1 = c("1","0","0","1","1"), C2 = c(11,21,22,31,35)) 
    df 
    # C1 C2 
    # 1 1 11 
    # 2 0 21 
    # 3 0 22 
    # 4 1 31 
    # 5 1 35 

One <- df[df$C1 == "1","C2"] 
Zero <- df[df$C1 == "0","C2"] 
One 
# [1] 11 31 35 
Zero 
# [1] 21 22 

n <- max(length(One),length(Zero)) 
n 
# 3 

length(One) <- 3 
length(Zero) <- 3 

Result <- cbind(One,Zero) 
Result 
#  One Zero 
# [1,] 11 21 
# [2,] 31 22 
# [3,] 35 NA 
Смежные вопросы