2016-02-22 4 views
0

3 часа тратят, пытаясь понять, что произошло на моих файлах

НЕПРАВИЛЬНО WAY: подмножество на подмножестве

DataA=subset(Data,Data$var1=="1") 
DataA$newvar=Results$cluster 
DataB=subset(DataA,Data$newvar=="7") 

ХОРОШО ПУТЬ: один подмножестве на объект

DataA_var1=subset(Data,Data$var1=="1") 
DataA_var1$newvar=Results$cluster 
DataB=subset(DataA_var1,Data$newvar=="7") 

Я много читал на $ operator is invalid for atomic vectors этой ошибка была также связана с «неправильным числом измерений» в моем случае (я попробовал трюк as.data.frame()) Я установил последнюю версию RStudio.

Мой пункт: если у вас есть ошибка $ operator is invalid for atomic vectors, это не обязательно typeof() вопрос ... попробовать, чтобы увидеть, если вы использовали дважды subset() на одном объекте.

+1

Внутри 'подмножества' вам не нужно' Data $ '. Сообщение '$ operator ...', которое вы получите, когда используете его на объекте 'matrix'. Пожалуйста, проверьте 'str (Data)' – akrun

+1

. Я действительно не понимаю, о чем вы говорите. Два блока (хорошие и плохие) выглядят одинаково для меня, за исключением имени объекта. Как отметил @akrun, ваше использование 'подмножества 'является ошибочным. Чего вы пытаетесь достичь? Пожалуйста, поделитесь также некоторыми данными и ожидаемым результатом, чтобы вы могли получить полезную помощь. – nicola

+1

Просьба предоставить минимальный, полный и воспроизводимый пример того, что кто-либо еще может просто скопировать и вставить в свою R-сессию для запуска. Все библиографические заявления и материалы должны быть включены. Сократите свои данные до минимума, чтобы проиллюстрировать проблему, если она большая, и если ваш ввод «x», то покажите его, показывая вывод 'dput (x)' в вашем вопросе. См. [Mcve] для общих советов и см. [Как сделать отличный R Воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) для более R ориентированный совет о том, как задать вопрос о SO. –

ответ

0

Вы могли бы попробовать что-то вроде:

DataA <- subset(Data, var1 == "1") 
DataA$newvar <- Results$cluster 
DataB <- subset(DataA, newvar == "7") 

Первая линия должна быть прочитана как «DataA получает подмножество Data где var1 равен 1.»

Для целей синтаксиса я бы предложил «< -» вместо «=» для целей R.

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