У меня есть проблема при использовании подмножества data.frame
в R.Нежелательные элементы на участке
Подмножества будет создаваться и отображаться правильно, но когда я пытаюсь построить его с помощью qplot()
, строки, которые не были выбраны по subset()
также отображаются вдоль одной оси.
Фактический файл Читаю в это журнал веб-сервера, но я создал небольшой пример, чтобы проиллюстрировать мою проблему:
Это файл ITEMSSOLD.CSV
я прочитал в:
CUST,DT,ITEM,PRICE
BigJoe,10/13/2010,Pickup Truck,20000
TightWad,10/13/2010,USB Drive,12
Jane,10/13/2010,Smart Car,30000
Scrooge,10/13/2010,Gumdrops,1
GeekyMan,10/13/2010,Smart Car,30000
I читать это в кадр данных следующим образом:
sales_df <- read.table("C:/R_Expt/ItemsSold.csv", header=TRUE, sep=",")
я тогда подмножество, чтобы получить детали высокого билета следующим образом:
big_sales_df <- subset(sales_df, PRICE>100)
big_sales_df
big_sales_df
CUST DT ITEM PRICE
1 BigJoe 10/13/2010 Pickup Truck 20000
3 Jane 10/13/2010 Smart Car 30000
5 GeekyMan 10/13/2010 Smart Car 30000
Так что все в порядке.
Когда я пытаюсь построить его через qplot
следующим образом:
qplot(nrow, ITEM, data = ddply(big_sales_df, .(ITEM), "nrow"))
полученный график показывает всех предметов по оси Y, а не только пикапа и автомобиля Smart.
одна ddply()
производит следующий вывод:
ddply(big_sales_df, .(ITEM), "nrow")
ITEM nrow
1 Pickup Truck 1
2 Smart Car 2
Поскольку пример имеет небольшое количество деталей, сюжет остается читаемым, но и в реальной жизни, я пытаюсь построить имена медленной сети страниц и, к сожалению, qplot()
пытается поместить имена всех веб-страниц вдоль оси Y, и это станет черным размытием.
Я попытался sqldf()
также:
qplot(NSOLD, ITEM, data = sqldf('select ITEM, count(*) as NSOLD from big_sales_df group by ITEM order by count(*) desc'))
, но это производит один и тот же сюжет.
Я понял, что subset()
как-то несет полную родительскую информацию внутри, а не только соответствующие строки.
Есть ли способ сообщить subset()
, что он должен хранить только соответствующую информацию?
Или любой другой способ обойти subset()
, несущий пустые элементы?
Я знаю, что метод грубой силы может заключаться в том, чтобы записать результат subset()
в другой CSV-файл, а затем прочитать его обратно в data.frame
, но я уверен, что есть более простой способ.
Большое спасибо всем вашим гуру R там!
Атиш
Большое спасибо Brandon, что работал просто отлично! – Atish
Я опубликовал другой ответ, который делает то же самое, но in situ в сюжете. IN qplot() заменить ITEM на коэффициент (ITEM) –