R фрейм данных выбирается по глобальной переменной - PullRequest
2 голосов
/ 03 апреля 2010

Я не уверен, как это сделать без ошибки. Вот упрощенный пример моей проблемы.

Скажите, у меня есть этот фрейм данных DF

a   b  c  d
1   2  3  4
2   3  4  5
3   4  5  6

Тогда у меня есть переменная

x <- min(c(1,2,3))

Теперь я хочу сделать следующее

y <- DF[a == x]

Но когда я пытаюсь обратиться к некоторой переменной, такой как "x", я получаю ошибку, потому что R ищет столбец "x" в моем фрейме данных. Я получаю сообщение об ошибке "выбраны неопределенные столбцы"

Как мне сделать то, что я пытаюсь сделать в R?

Ответы [ 2 ]

4 голосов
/ 03 апреля 2010

Вы можете извлечь выгоду из чтения Введение в R , особенно в отношении матриц, фреймов данных и индексирования. Ваш a является столбцом data.frame, ваш x является скаляром. Сравнение у вас там не работает.

Может быть, вы имели в виду

R> DF$a == min(c(1,2,3))
[1]  TRUE FALSE FALSE
R> DF[,"a"] == min(c(1,2,3))
[1]  TRUE FALSE FALSE
R> 

, который говорит вам, что первый ряд подходит, но не другой. Заключив это в which(), вы получите индексы.

2 голосов
/ 05 апреля 2010

Я думаю, это то, что вы ищете:

> x <- min(DF$a)
> DF[DF$a == x,]
  a b c d
1 1 2 3 4

Более простой способ (без переменной 'x') был бы таков:

> DF[which.min(DF$a),]
  a b c d
1 1 2 3 4

или это:

> subset(DF, a==min(a))
  a b c d
1 1 2 3 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...