Что я хочу сделать, так это применить функцию графика только к определенному выбору записей в наборе данных. Скажем, у меня есть столбец длины (числовой), столбец массы тела (числовой) и столбец пола (M или F) (какого-либо животного). Я хочу рассчитать длину и массу, но только для M, так что F не появится на графике. Как мне это сделать?В R, как мне создать сюжет только для одной группы?
0
A
ответ
0
Есть несколько способов подмножества dataframe:
mydata <- data.frame(
length = rnorm(100 , 100 , 20),
mass = rnorm(100 , 80,5),
sex = sample(factor(c("male", "female")) , 100 , replace=TRUE)
)
with(mydata[ mydata$sex=="male", ] , plot(mass , length ))
# or
with(subset(mydata , sex=="male") , plot(mass, length))
# or make a new dataset
mydata2 <- mydata[ mydata$sex=="male" , ]
plot(mydata2$mass , mydata2$length)
В каждом случае mydata$sex=="male"
делает вектор TRUE
и FALSE
длиной nrow(mydata)
, который используется, чтобы выбрать соответствующие строки в dataframe как это:
logical_vec_to_select <- mydata$sex=="male"
mydata[ logical_vec_to_select , ]
И та же техника может использоваться для подмножества столбцов матрицы данных или матрицы.
скажите, что ваши данные являются рамками данных с полом в качестве символьной переменной, которая принимает значения «M» и «F». 'plot (dataset [dataset $ sex ==" M ",] $ length, dataset [dataset $ sex ==" M ",] $ mass)' будет достигать того, чего вы хотите. в общем, вы должны прочитать о подмножестве в R http://adv-r.had.co.nz/Subsetting.html – bjoseph