2015-10-09 2 views
0

Я пытаюсь найти среднюю цену для цен на автомобиль с задним приводом в предварительно заданном кадре данных Cars93. Вот что я пробовал ... Я получаю неожиданное сообщение об ошибке.Не удалось создать петлю цикла в R

library(MASS) # has Cars93 data 

rearcar <- c() 
for(train in 1:nrow(Cars93)){ 
    if(Cars93$DriveTrain[train] == Rear){ 
    rearcar <- c(rearcar, train) 
    } 
} 

rearcarprice <- c() 
for (train in rearcar){ 
    rearcarprice <- c(rearcarprice, Cars93[train,6]) 
} 

mean(rearcarprice) 
+0

Прежде всего, у вас есть несогласованные фигурные скобки. Во-вторых, вам следует отправить примерный набор данных 'Cars93'. – bourbaki4481472

+2

Когда вы задаете вопрос, где вы получаете сообщение об ошибке, добавьте текст ошибки. – Gregor

+0

Вы забыли цитаты: 'if (Cars93 $ DriveTrain [train] ==" Rear ")' – RHertel

ответ

2

Вы не должны использовать петлю для всех для этого.

Это дает подмножество данных с трансмиссией «Задний»:

Cars93[Cars93$DriveTrain == "Rear", ] 

Это столбец «Цена» для этого подмножества данных:

Cars93[Cars93$DriveTrain == "Rear", "Price"] 

Таким образом, это средняя цена для этого подмножества:

mean(Cars93[Cars93$DriveTrain == "Rear", "Price"]) 
# 28.95 

Все что вам нужно, это последняя строка кода.

+0

спасибо, понял это сразу после того, как я разместил вопрос – USER8000

0

Похоже, у вас есть скобка с обратной связью на первом цикле.

Текущий

for(train in 1:nrow(Cars93)) 
    } 
    if(Cars93$DriveTrain[train] == Rear){ 
    rearcar <- c(rearcar, train) 
    }} 

Try:

for(train in 1:nrow(Cars93)) 
{ 
if(Cars93$DriveTrain[train] == Rear){ 
rearcar <- c(rearcar, train) 
}} 
1

Попробуйте исправляя свои несовпадающие фигурные скобки в качестве отправной точки. А также обязательно поставьте Rear в кавычки.

library(MASS) 
rearcar<-c() 
for(train in 1:nrow(Cars93)) 
{ 
    if(Cars93$DriveTrain[train] == 'Rear'){ 
    rearcar <- c(rearcar, train) 
    } 
} 
rearcarprice <- c() 
for (train in rearcar) { 
    rearcarprice <- c(rearcarprice, Cars93[train,6]) 
} 
mean(rearcarprice) 
Смежные вопросы