Как построить подмножество фрейма данных в R?

есть ли простой способ сделать это в R:

plot(var1,var2, for all observations in the data frame where var3 < 155)

возможно путем создания новых данных newdata <- data[which( data$var3 < 155),] но тогда я должен переопределить все переменные newvar1 <- newdata$var1 etc.

4 ответов


with(dfr[dfr$var3 < 155,], plot(var1, var2)) следует сделать трюк.

редактировать по поводу нескольких условий:

with(dfr[(dfr$var3 < 155) & (dfr$var4 > 27),], plot(var1, var2))

самый простой вариант:

plot(var1[var3<155],var2[var3<155])

это не выглядит хорошо из-за избыточности кода, но это нормально для fastnгрязные взлома.


вот как я бы это сделал, чтобы попасть в ограничение var4:

dfr<-data.frame(var1=rnorm(100), var2=rnorm(100), var3=rnorm(100, 160, 10), var4=rnorm(100, 27, 6))
plot( subset( dfr, var3 < 155 & var4 > 27, select = c( var1, var2 ) ) )

Rgds, Райнер!--2-->


этот кусок должен выполнить работу:

plot(var2 ~ var1, data=subset(dataframe, var3 < 150))

Мои наилучшие пожелания.

Как это работает:

  1. Fisrt, мы делаем выбор, используя функцию подмножества. Другие возможности могут быть использованы, например, подмножество (dataframe, var4 == "some" & var5 > 10). В "&" оператор может использоваться для выбора всех "некоторых"и более 10. Также оператор "| "может использоваться для выбора "некоторые"или "за 10".
  2. следующий шаг-построить результаты подмножества, используя оператор Тильды ( ~ ), который просто подразумевает формулу, в этом случае var.ответ ~ ВАР.индепендет. Конечно, это не формула, но отлично работает для этого случая.