2013-06-11 2 views
4

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

sigData <- data[which(abs(data$wc2) > 3*wc2_sd),] 


sigData <- data[which(abs(data$wc2) > 3*wc2_sd)] 
+0

Это довольно простой вопрос, и это тот, который поможет быстрый поиск в Google или введение в R. В будущем, пожалуйста, сделайте некоторые исследования самостоятельно. – Justin

+2

Эй, кривая обучения для R очень высока, и нет хорошей документации. Никаких преувеличений для простого вопроса :) Может быть, я пойду возьму вставку в книгу R. Какие-либо предложения? – SwimBikeRun

ответ

4

Тянущаяся запятой в первой строке указывает, что вы Подменю по строкам (помните [ это функция, которая означает, что подмножество)

Отсутствие замыкающей запятой во второй строке указывает, что вы Подменю по столбцам. Вторая строка будет эквивалентна использованию ведущей запятой внутри скобок.

sigData <- data[, which(abs(data$wc2) > 3*wc2_sd)] 
+0

ах очень здорово. Получил это спасибо – SwimBikeRun

+3

Только если вы работаете с фреймом данных. Как правило, подмножество без запятой означает, что вы индексируете данные как плоский вектор: т. Е. 'M <- матрица (c (1,2,3,4), 2, 2); m [3] 'даст вам 3-й элемент, как если бы матрица была вектором –

+0

Я не уверен, что это правильно, даже в контексте DataFrame. См.: 'test = data.frame (matrix (seq1: 6), 2) >>> typeof (test [c (1)]) [1]" list " >>> typeof (test [, c (1)]) [1] "integer" ' – Alexander

Смежные вопросы